2018青岛acm

Function and Function

#include<cstdio>
int a[11]={1,0,0,0,1,0,1,0,2,1};
long long f(long long x){
	long long ans=0;
	while(x>0){
		ans+=a[x%10];
		x/=10;
	}
	return ans;
}
int main(){
	int T;
	scanf("%d",&T);
	while(T--){
		int sum=0,ans;
		long long s,k;
		scanf("%lld%lld",&s,&k);
		if(k==0)
		printf("%lld\n",s);
		else {
			while(s>=2&&k>0){
			s=f(s);
			k--;
		}
		int ans=s;
		if(s>=2)
		printf("%lld\n",ans);
		else {
				if(k%2==0)
		{
			if(ans==1)
			ans=1;
			else ans=0;
		}
		else{
			if(ans==1)
			ans=0;
			else ans=1;
		}
		printf("%d\n",ans);
		}
	}	
}
		
}

Books

#include<cstdio>
#include<algorithm>
using namespace std;
int main(){
	int T;
	int a[100005];
	scanf("%d",&T);
	while(T--){
		int n,m,s=0,tot=0,flag=0;
		long long sum=0;
		int minn=0x3f3f3f3f;
		scanf("%d%d",&n,&m);
		for(int i=0;i<n;i++){
			scanf("%d",&a[i]);
			if(a[i]==0)
			s++;
		}if(n==m)	
		{
			flag=1;
			//printf("Richman\n");
			//continue;
		}
		if(s>m){
			flag=2;
			//printf("Impossible\n");
			//continue;
		}
		else m-=s;
		 
		if(!flag){
			for(int i=0;i<n;i++){
				if(flag)
				break; 
				if(a[i]==0)
				continue;
				tot++;
				if(tot<=m)
				sum+=a[i];
				else{
					minn=min(minn,a[i]);
				}
			}
		}
		if(minn==0)
		flag=2;
		else sum+=minn-1;
		if(flag==2)
		printf("Impossible\n");
		else if(flag==1)
		printf("Richman\n");
		else printf("%lld\n",sum);
	}	
} 

Flippy Sequence

#include<cstdio>
#include<cstring>
int main(){
	int T;
	char a[1000005],b[1000005];
	scanf("%d",&T);
	while(T--){
		int n;
		scanf("%d",&n);
		
		scanf("%s%s",a,b);
		int x=0,y=0;
		for(int i=0;a[i]!='\0';i++){
			if(a[i]==b[i]){
				if(y!=0){
					x++;
					y=0;
				}	
			}
			else y++;
		}
		if(y!=0)x++;
		if(x==2)
		printf("6\n");
		else if(x==0)
		printf("%d\n",n*(n+1)/2);
		else if(x==1)
		printf("%d\n",(n-1)*2);
		else printf("0\n");
	}
}

猜你喜欢

转载自blog.csdn.net/bailichuan266/article/details/83961651