ACM入门十题(杭电oj)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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]);