UVa 11428 - Cubes
来源:互联网 发布:prototype1.6.0.3.js 编辑:程序博客网 时间:2024/06/06 04:09
题目:给定一个正整数N求出满足N = x^3 - y^3的y最小的正整数对(x,y)。
分析:数论,分治。
x^3 - y^3 = (x-y)(x^2 + xy + y^2);
因为,x、y都是正整数,且x > y,则x^3 - y^3 > (x-y)(3y^3);
因为N是1~10000(x-y)与(x^2 + xy + y^2)都是1~10000内的整数;
所以,0 ≤ y ≤ 60,然后二分整数区间(y,y+10000)求x即可。
说明:怎么都是数论(⊙_⊙)。
#include <iostream> #include <cstdlib> #include <cmath> using namespace std;int bs(int n, int y){long long l = y+1,r = y+10000LL,x,k;while (l <= r) {x = (l+r)/2;k = (x-y)*(x*x+x*y+y*y);if (k == n) return x;if (k < n) l = x+1LL;if (k > n) r = x-1LL;}return -1;}int main(){int n,x; while (cin >> n && n) {x = -1;for (int y = 0 ; y < 60 ; ++ y) {x = bs(n ,y);if (x != -1) {cout << x << " " << y << endl;break;}}if (x == -1) cout << "No solution" << endl;} return 0; }
0 0
- UVa 11428 - Cubes
- Cubes UVA
- UVA 10601 Cubes
- uva 1352 - Colored Cubes
- UVa 386 - Perfect Cubes
- uva 10601 - Cubes(置换)
- 【uva】1352-Colored Cubes
- uva 10601 Cubes (polya)
- UVa-3401 Colored Cubes
- Tower of Cubes UVA
- uva 10051 Tower of Cubes
- UVa 10051. Tower of Cubes
- UVA 10051 Tower of Cubes
- uva 10051 Tower of Cubes
- UVa 10051 - Tower of Cubes
- UVA - 10051 Tower of Cubes
- UVA 10601 Cubes (Polya计数)
- uva 10051 Tower of Cubes
- poj 1182 食物链
- SDL2.0_08_timer
- Android java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.pr
- int _tmain(int argc, _TCHAR* argv[])
- 线程池ThreadPoolExecutor参数设置
- UVa 11428 - Cubes
- Android回调机制(全面深入学习)
- 快速输入java系统用户名和密码
- poj 2154 polya定理+数论知识
- js 控制 Windows Media Player播放列表
- 你会喝汤吗?喝汤八大注意
- Emmet:HTML/CSS代码快速编写神器
- Android自定义View全面总结
- 科大讯飞和neospeech tts哪个更好