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"); } }