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

CSU 1337 搞笑版费马大定理(2013湖南省程序设计竞赛J题)

时间:2014-10-03 23:45:25      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   for   sp   

题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1337

解题报告:虽然x和y的范围都是10^8,但是如果a 是大于1000的话,那么a^3就会大于10^9,这样等号的右边只有一个10 * c + 3,这个最大只能达到10^9数量级,所以,不管输入的x跟y是多少,我们只要取其中的在1到1000的区间就可以了,枚举a和b,那么c就可以得到,然后判断c的范围是不是在x到y之间,这样时间复杂度就降到了10^6.

bubuko.com,布布扣
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 #include<cstdlib>
 6 using namespace std;
 7 typedef long long INT;
 8 INT th[1005];
 9 void dabiao()
10 {
11     for(INT i = 1;i <= 1000;++i)
12     th[i] = i * i * i;
13 }
14 int main()
15 {
16     dabiao();
17     INT x,y;
18     int kase = 1;
19     while(scanf("%lld%lld",&x,&y)!=EOF)
20     {
21         INT ans = 0;
22         INT a = min(x,(INT)1000);    //不存在大于1000的 
23         INT b = min(y,(INT)1000);
24         for(INT i = a;i <= b;++i)
25         for(INT j = a;j <= b;++j)
26         {
27             INT s = th[i] + th[j];
28             if(s % 10 == 3 && s / 10 <= y)
29             ans++;
30         }
31         printf("Case %d: %lld\n",kase++,ans);
32     }
33     return 0;
34 }    
View Code

 

CSU 1337 搞笑版费马大定理(2013湖南省程序设计竞赛J题)

标签:style   blog   http   color   io   os   ar   for   sp   

原文地址:http://www.cnblogs.com/xiaxiaosheng/p/4005339.html

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