1. 程式人生 > >2017鄭州輕工業新生賽題目答案

2017鄭州輕工業新生賽題目答案

A沙漠

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
	int n,v;
	scanf("%d%d",&n,&v);
	int i,a[1005];
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	int b[1005],sum=0;
	for(i=0;i<n-1;i++)
	{
		b[i]=a[i+1]-a[i];
		sum+=b[i];
	}	
	int flag=0;
	for(i=0;i<n-1;i++)
		if(b[i]>v)
			flag=1;
	if(flag==1)
		printf("-1\n");
	else
		printf("%d\n",sum);
        return 0;
} 

B水果行的新活動

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
	int n,q;
	scanf("%d%d",&n,&q);
	int a[1005],i;
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	while(q--)
	{
		int len,x,ans=0;
		scanf("%d%d",&len,&x);
		for(i=0;i<n;i++)
			if(a[i]%(int)pow(10,len)==x)
				ans++;
		printf("%d\n",ans);
	} 
	return 0;
}

C優美的Json串

#include<stdio.h>
#include<string.h>
#include<math.h>
struct name{
	char a[100];
	char b[1000];
}s[205];
int main()
{
	char str[1005];
	gets(str);
	gets(str);
	int j=0;
	while(str[0]!='}')
	{	
		int i=3;
		int k=0;			
		while(str[i]!='"')		
			s[j].a[k++]=str[i++];
		s[j].a[k]='\0';
//		printf("%s\n",s[j].a);
		i+=4;
		k=0;
		if(str[i]=='"')
		{
			i++;
			while(str[i]!='"')
				s[j].b[k++]=str[i++];
		}
		else
		{
			i+=2;
			while(str[i]!=']')
			{				
				if(str[i]=='"'||(str[i]==' '&&str[i-1]==','))	
					i++;
				else
					s[j].b[k++]=str[i++];
			}				
		}
		s[j].b[k]='\0';
//		printf("%s\n",s[j].b);
		gets(str);
		j++;
	}
	int q,i;
	scanf("%d",&q);
	gets(str);
	while(q--)
	{
		gets(str);
		for(i=0;i<j;i++)
			if(strcmp(str,s[i].a)==0)
				printf("%s\n",s[i].b);
	}
	return 0;
}






D某寶的聖誕樹 

#include<stdio.h>
#include<string.h>
#include<math.h>
void fun(int k,int h)//5,3
{
	int i,j;	
	for(i=1;i<=h;i++)
	{
		k--;
		for(j=0;j<k;j++)
			printf(" ");
		for(j=0;j<(i-1)*2+1;j++)
			printf("*");
		printf("\n");
	}
}
int main()
{
	int a,b,c,i,j;
	scanf("%d%d%d",&a,&b,&c);
	fun(c,a);
	fun(c,b);
	fun(c,c);
	int h=(a+b+c)/3;
	for(i=0;i<h;i++)
	{
		for(j=0;j<c-2;j++)
			printf(" ");
		printf("***\n");
	}
	for(i=0;i<2;i++)
	{
		for(j=0;j<(c-1)*2+1;j++)
			printf("*");
		printf("\n");
	}
	return 0; 
} 

E童年的聖誕樹

 

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
	int n,i,j,a[1000];
	scanf("%d",&n);
	n*=6;
	a[0]=1;
	a[1]=1;
	for(i=2;i<=n;i++)
		a[i]=a[i-1]+a[i-2];
	printf("%d\n",a[n-1]);
	return 0; 
} 

F模仿快速冪取模運算

 

#include<stdio.h>
#include<string.h>
#include<math.h>
#define ll long long
ll Pow(ll a,ll b,ll mod)
{
	ll ret=0;
	a%=mod;
	while(b)
	{
		if(b%2)
			ret=(ret+a)%mod;
			b/=2;
			a=(a+a)%mod;
	} 
	return ret; 
}
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		ll n,a,mod;
		scanf("%lld%lld%lld",&n,&a,&mod);
		printf("%lld\n",Pow(a,n,mod));
	} 
	return 0; 
} 

 

G射箭 

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
	double x,y,rx,ry,r;
	int T;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%lf%lf%lf%lf%lf",&x,&y,&rx,&ry,&r);
		double R=sqrt((rx-x)*(rx-x)+(ry-y)*(ry-y));
		if(R<=r)
			printf("Yes\n");
		else
			printf("No %.3f\n",R-r);
	}
	return 0; 
} 

H最大連續子串和

 

#include<stdio.h>
#include<string.h>
#include<math.h>
char a[100010];
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		int k,i;
		scanf("%d",&k);		
		scanf("%s",a);
		int len=strlen(a);
		if(k>len)
		{
			printf("-1\n");
			continue;
		}
		for(i=0;i<len;i++)
			a[i]-='0';
		int ans,sum=0;
		for(i=0;i<k;i++)
			sum+=a[i];
		ans=sum;
		for(i=k;i<len;i++)
		{
			sum=sum-a[i-k]+a[i];
			if(sum>ans)
				ans=sum;
		}
		printf("%d\n",ans);
	} 
	return 0; 
} 

 

I即將到來的聖誕節

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
	printf("!samtsrihc yppah\n");
	return 0; 
}