ACM入门十题(杭电oj)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ACM入门(杭电oj)

Hdu 1000

#include

#include

int main()

{

int a,b;

while(scanf("%d%d",&a,&b)!=EOF)

{

printf("%d\n",a+b);

}

}

Hdu 1001

#include

#include

int main()

{

int n;

while(scanf("%d",&n)!=EOF)

{

printf("%I64d\n\n",(__int64)(1+n)*n/2); }

}

Hdu 1002

#include

#include

#include

char str1[1005],str2[10005];

int main()

{

int ca,count=0;

scanf("%d",&ca);

while(ca--)

{

scanf("%s%s",str1,str2);

int a[1005],i,j;

memset(a,0,sizeof(a));

for(i=strlen(str1)-1,j=0;i>=0;i--,j++)

a[j]=str1[i]-'0';

for(i=strlen(str2)-1,j=0;i>=0;i--,j++)

{

a[j]=a[j]+str2[i]-'0';

a[j+1]=a[j+1]+a[j]/10;

a[j]=a[j]%10;

}

count++;

printf("Case %d:\n",count);

printf("%s + %s = ",str1,str2); int flag=0;

for(i=1004;i>=0;i--)

if(flag||a[i])

{

printf("%d",a[i]);

flag=1;

}

printf("\n");

if(ca!=0) printf("\n");

}

}

Hdu 1003

#include

#include

int a[100005],sum[100005];

int main()

{

int ca,count=0;

scanf("%d",&ca);

while(ca--)

{

int n,i;

scanf("%d",&n);

for(i=1;i<=n;i++)

scanf("%d",&a[i]);

sum[1]=a[1];

int r=1,max=a[1];

for(i=2;i<=n;i++)

{

if(sum[i-1]>0)

{

sum[i]=sum[i-1]+a[i];

if(sum[i]>max)

{

max=sum[i];

r=i;

}

}

else

{

sum[i]=a[i];

if(sum[i]>max)

{

max=sum[i];

r=i;

}

}

}

count++;

for(i=r-1;i>0;i--)

if(sum[i]<0) break;

printf("Case %d:\n",count);

printf("%d %d %d\n",max,i+1,r); if(ca!=0) printf("\n");

}

}

Hdu 1004

#include

#include

using namespace std;

struct point

{

char c[50];

}p[1005];

int cmp(point p1,point p2)

{

return strcmp(p1.c,p2.c)<0;

}

int main()

{

int n,i;

while(scanf("%d",&n)!=EOF&&n) {

for(i=0;i

scanf("%s",p[i].c);

sort(p,p+n,cmp);

char res[100];

strcpy(res,p[0].c);

int num=1,ct=1;

for(i=1;i

{

if(strcmp(p[i].c,p[i-1].c)==0) num++; else num=1;

if(num>ct)

{

strcpy(res,p[i].c);

ct=num;

}

}

printf("%s\n",res);

}

}

Hdu 1005

#include

#include

#include

int s[10][10],c[1000];

int main()

{

c[1]=1;

c[2]=1;

int a,b,n;

while(scanf("%d%d%d",&a,&b,&n)!=EOF)

{

if(a==0&&b==0&&n==0) break;

memset(s,0,sizeof(s));

s[1][1]=1;

int i;

for(i=3;;i++)

{

c[i]=(a*c[i-1]+ b*c[i-2])%7;

if(s[c[i-1]][c[i]]!=0) break;

s[c[i-1]][c[i]]=i-1;

}

/*for(int j=1;j<=i;j++)

printf("%d ",c[j]);*/

int m=s[c[i-1]][c[i]]-1;

int len=i-1-s[c[i-1]][c[i]];

//printf("%d %d\n",m,len);

if(n<=m)

{

printf("%d\n",c[n]);

相关文档
最新文档