搞笑版费马大定理 (湖南省第九届大学生计算机程序设计竞赛)
来源:互联网 发布:linux 启动详解 编辑:程序博客网 时间:2024/05/17 07:42
1337: 搞笑版费马大定理
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 402 Solved: 193
[Submit][Status][Web Board]
Description
费马大定理:当n>2时,不定方程an+bn=cn没有正整数解。比如a3+b3=c3没有正整数解。为了活跃气氛,我们不妨来个搞笑版:把方程改成a3+b3=c3,这样就有解了,比如a=4, b=9, c=79时43+93=793。
输入两个整数x, y, 求满足x<=a,b,c<=y的整数解的个数。
Input
输入最多包含10组数据。每组数据包含两个整数x, y(1<=x,y<=108)。
Output
对于每组数据,输出解的个数。
Sample Input
1 10
1 20
123 456789
Sample Output
Case 1: 0
Case 2: 2
Case 3: 16
HINT
其实是一道水题,开始也想了很久没什么思路,感觉就那么做会超时,没有明白题目的深一层的含义, 其实给我们的数据范围就是一个突破口;
虽然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.
有了上面的分析,这道题就很简单啦;直接暴力,两个循环就搞定了;
#include <cstdio>#include <cstring>using namespace std;int main(){ int x,y,a,b,c,count,k=0; while(scanf("%d%d",&x,&y)!=EOF) { count=0; for(a=x;a<=1000&&a<=y;a++) for(b=x;b<=1000&&b<=y;b++) { int s=a*a*a+b*b*b; if(s%10!=3) continue; c=s/10; if(c>=x&&c<=y) count++; } printf("Case %d: %d\n", ++k, count); } return 0;}别人0ms的代码;
#include<stdio.h> int main(){ //freopen("a.txt","r",stdin); long long x,y,i,j,t; int a=0; while(scanf("%lld%lld",&x,&y)!=EOF) { t=x*x*x; a++; y=y*10+3; int cnt=0; for(i=x,j=1;t+i*i*i<=y;i++,j++); long long ii=i,jj=j; //printf("%lld %lld\n",i,j); for(i=x;i<=ii;i++) { int k=(13-i*i*i%10)%10; if(k!=0 && k!=1 && k!=4 && k!=5 && k!=6 && k!=9) k=10-k; for(j=x-x%10+k;j<ii;j+=10) { if(j<x) j+=10; if(j*j*j+i*i*i<=y) cnt++; //printf("%lld %lld\n",i,j); } } printf("Case %d: %d\n",a,cnt); } return 0;}
0 0
- 湖南省第九届大学生计算机程序设计竞赛 搞笑版费马大定理
- 搞笑版费马大定理 (湖南省第九届大学生计算机程序设计竞赛)
- CSU 1337: 搞笑版费马大定理(数学啊 湖南省第九届大学生计算机程序设计竞赛)
- 湖南省第九届大学生计算机程序设计竞赛B 搞笑版费马大定理
- 湖南省第九届大学生计算机程序设计竞赛
- 好老师 (湖南省第九届大学生计算机程序设计竞赛)
- Interesting Calculator( 湖南省第九届大学生计算机程序设计竞赛)
- 湖南省第九届大学生计算机程序设计竞赛 字符识别?
- 湖南省第九届大学生计算机程序设计竞赛 Interesting Calculator
- 湖南省第九届大学生计算机程序设计竞赛 好老师
- 湖南省第九届大学生计算机程序设计竞赛 近似回文词
- 湖南省第九届大学生计算机程序设计竞赛 字符识别?
- 湖南省第九届大学生计算机程序设计竞赛 G
- 湖南省第九届大学生计算机程序设计竞赛A
- 湖南省第九届程序设计大赛 搞笑版费马大定理
- CSU 1330: 字符识别?(字符串模拟啊 湖南省第九届大学生计算机程序设计竞赛)
- CSU 1336: Interesting Calculator(BFS啊 湖南省第九届大学生计算机程序设计竞赛)
- CSU 1334: 好老师(数学啊 湖南省第九届大学生计算机程序设计竞赛)
- css网页布局兼容性有哪些要点与诀窍
- android 电容屏(四):驱动调试之驱动程序分析篇 -- FocalTech
- jQuery源码分析-10事件处理-Event-事件绑定与删除-bind/unbind+live/die+delegat/undelegate
- android数据库
- 猜数字 JAVA、
- 搞笑版费马大定理 (湖南省第九届大学生计算机程序设计竞赛)
- javascript中的call()和aplay()两个方法的区别
- android-source/frameworks源码地址 65a73f4e8c79d05c0d9001b660325748d4ecf37b - platform/frameworks/base -
- nginx学习十二 ngx_cycle_t 和 ngx_init_cycle
- WPF--事件、路由事件、附加事件的区别
- 白话经典算法系列之一 冒泡排序的三种实现
- jQuery源码分析-10事件处理-Event-DOM-ready
- 计算 JAVA
- DIV CSS网页布局兼容性有哪些要点与诀窍