HDOJ 2132

花了3个多小时,这么简单地题目才AC,使用cin会超时,只能用scanf。始终想不通为什么内部循环得用__int64才能AC,用long long是WA,真郁闷,快被郁闷死了!贴上自己的代码:

 1 #include<stdio.h>
 2 #include<malloc.h>
 3 #include<string.h>
 4 
 5 int main()
 6 {
 7         __int64 n;
 8         __int64 i;
 9         __int64 *sum = (__int64 *)malloc(100005*sizeof(__int64));
10         memset(sum,0,sizeof(sum));
11         for(i = 1;i <= 100004;++i)
12         {
13                 if(i%3 == 0) sum[i] = sum[i-1]+i*i*i;
14                 else sum[i] = sum[i-1]+i;
15         }
16         while(scanf("%I64d",&n) != EOF && n >= 0)
17         {
18                 printf("%I64d\n",sum[n]);
19         }
20 
21         return 0;
22 }

 

posted @ 2012-12-07 21:58  maowang  阅读(240)  评论(0编辑  收藏  举报