当前位置:文档之家› ACM入门十题(杭电oj)

ACM入门十题(杭电oj)

ACM入门十题(杭电oj)
ACM入门十题(杭电oj)

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]);

continue;

}

n=n-m;

printf("%d\n",c[m+(n%len? n%len:len)]); }

}

Hdu 1008

#include

#include

int main()

{

int n;

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

{

int a,sum=0,st=0,m=n;

while(n--)

{

scanf("%d",&a);

sum=sum+(a-st>0?(a-st)*6:(st-a)*4); st=a;

}

printf("%d\n",m*5+sum);

}

}

Hdu 1012

#include

int main()

{

printf("n e\n");

printf("- -----------\n");

printf("0 1\n");

printf("1 2\n");

printf("2 2.5\n");

printf("3 2.666666667\n");

printf("4 2.708333333\n");

printf("5 2.716666667\n");

printf("6 2.718055556\n");

printf("7 2.718253968\n");

printf("8 2.718278770\n");

printf("9 2.718281526\n");

}

#include

#include

#include

int main()

{

char s[1000];

while(scanf("%s",s)!=EOF)

{

if(strcmp(s,"0")==0) break;

int i,t=0;

for(i=0;i

t=t+s[i]-'0';

printf("%d\n",(t+8)%9+1);

}

}

Hdu 1016

#include

#include

int

a[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61, 67,71,73};

int num[25],flag[25],pri[100],n;

void dsf(int x,int y)

{

int i;

if(y==n)

{

if(pri[x+1]==1)

{

for(i=1;i

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

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

}

return;

}

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

if(flag[i]==0&&pri[x+i]==1)

{

flag[i]=1;

num[y+1]=i;

dsf(i,y+1);

flag[i]=0;

}

int main()

{

int ct=0,i;

memset(pri,0,sizeof(pri));

for(i=0;i<15;i++)

pri[a[i]]=1;

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

{

memset(flag,0,sizeof(flag)); printf("Case %d:\n",++ct);

flag[1]=1;

num[1]=1;

dsf(1,1);

printf("\n");

}

}

相关主题
文本预览
相关文档 最新文档