码迷,mamicode.com
首页 > 其他好文 > 详细

hdu1000,hdu1001,hdu1002,hdu1003

时间:2015-12-07 02:08:21      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

hdu1000

   仅仅是为了纪念

    

 1 #include <cstdio>
 2 int main()
 3 {
 4     int a,b;
 5     while (scanf("%d%d",&a,&b)!=EOF)
 6     {
 7     printf("%d\n",a+b);
 8     }
 9     return 0;
10 }

hdu1001

题目说n*(n+1)/2 不不会爆

但是没和你说n*(n+1)不会爆

用下面这个小方法解决  见代码   

#include <iostream>
int n;
int main() {
    while (scanf("%d",&n)!=EOF)
    {
        int sum;
        if (n%2==0)
            sum=n/2*(n+1);
        else
            sum=(n+1)/2*n;
        printf("%d\n\n",sum);
    }
    return 0;
}

 

hdu1002  高精度加   注意初始化和前导零的处理即可

#include <cstdio>
#include <cmath>
#include <cstring>
int max(int a,int b)
{
    if (a>b) return a;
        else return b;
}
char a[1005],b[1005],c[1005];
int aa[1005],bb[1005],d[1005];
int main() {
    int T;
    scanf("%d",&T);
    for (int j=1;j<=T;j++)
    {
        for (int i=0;i<1005;i++)
        {c[i] =0;a[i]=0;b[i]=0;}
        scanf("%s %s",a,b);
        int la,lb;
        la=strlen(a);
        lb=strlen(b);
        for (int i=0;i<strlen(a);i++)
            c[i]=a[i];
        for (int i=0;i<strlen(a);i++)
            a[i]=c[la-1-i];
        for (int i=0;i<strlen(b);i++)
            c[i]=b[i];
        for (int i=0;i<strlen(b);i++)
            b[i]=c[lb-1-i];
        for (int i=0;i<1005;i++)
        {d[i] =0;aa[i]=0;bb[i]=0;}
        for (int i=0;i<la;i++)
            aa[i]=a[i]-0;
        for (int i=0;i<lb;i++)
            bb[i]=b[i]-0;
        for (int i=0;i<max(la,lb);i++)
            d[i]=aa[i]+bb[i];
      //  for (int i=0;i<=max(la,lb);i++)
           // printf("%d ",d[i]);
        for (int i=0;i<max(la,lb);i++)
            if (d[i]>9) {d[i+1]+=d[i]/10;d[i]=d[i]%10;}
        int len;
        if (d[max(la,lb)]!=0)
            len=max(la,lb);
           else len=max(la,lb)-1;
        printf("Case %d:\n",j);
        for (int i=la-1;i>=0;i--) printf("%d",aa[i]);
        printf(" + ");
        for (int i=lb-1;i>=0;i--) printf("%d",bb[i]);
        printf(" = ");
        while (d[len]==0) len=len-1;
        int k;
        k=len;
        if (k<0) printf("0");
        for (int i=len;i>=0;i--)
            printf("%d",d[i]);
            printf("\n");
        if (j!=T) printf("\n");
    }
    return 0;
}

 

hdu1003  最大子序列

直接认为不可能为零或者为负数   导致挂了很长时间   还是不能有太多的自己认为

#include <iostream>
int max(int a,int b)
{
    if (a>b) return a;
    else return b;
}
int a[100005];
int main() {
    int T;
    scanf("%d",&T);
    for (int k=1;k<=T;k++)
    {
        int n,ans=-9999;
        scanf("%d",&n);
        for (int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        int l=1,r=0,sum=0;
        int la=0,lb=0;
        
        while (r<n)
        {
            r+=1;
            sum+=a[r];
            if (sum>=ans)
            {
                ans=sum;
                la=l;
                lb=r;
            }
            if (sum<0)
            {
                sum=0;
                l=r+1;
            }
           // printf("%d",sum);
        }
        printf("Case %d:\n",k);
        printf("%d %d %d\n",ans,la,lb);
        if (k!=T) printf("\n");
    }
    return 0;
}

 

hdu1000,hdu1001,hdu1002,hdu1003

标签:

原文地址:http://www.cnblogs.com/tupeihui/p/5024882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!