hdu 4282 A very hard mathematic problem
来源:互联网 发布:qq飞车霹雳火数据 编辑:程序博客网 时间:2024/05/16 05:53
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4282
题意给你 X^Z + Y^Z + XYZ = K(X<Y, Z>1),给你整数K(0< K <2^32)的值,问你使此表达式成立的可能有多少种?
想法是枚举X和Z,通过二分求Y,存在则ans++,不存在则跳过。
当时写的时候二分求Y时,设置初始范围太大,到时计算过程爆longlong导致错误:
枚举Z从2到31枚举
X从1到sqrt(K)(还能再小)
Y在1到pow(K,1/z)间二分求得
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>long long pow1(long long x,long long y){ long long n=1; for(int i=0;i<y;i++){ n*=x; } return n;}long long sk(long long x,long long y,long long z){ return pow1(x,z)+pow1(y,z)+x*y*z;}int main(void){ int ans; long long x,y,z,k; while(scanf("%I64d",&k)&&k!=0){ ans=0; for(z=2;z<=31;z++){ for(x=1;x<sqrt(k);x++){ if(sk(x,x+1,z)>k) break; long long l=x+1,r=(long long)pow((double)k,1.0/z)+1,m; while(l<r){ m=(l+r)/2; //if(z==30) printf("l:%I64d m:%I64d r:%I64d\n",l,m,r); if(sk(x,m,z)==k){ //printf("x=%d,y=%d,z=%d\n",x,m,z); ans++; break; } else if(sk(x,m,z)>k){ r=m; } else if(sk(x,m,z)<k){ l=m+1; } } } } printf("%d\n",ans); } return 0;}
- hdu 4282 A very hard mathematic problem
- Hdu 4282 A very hard mathematic problem
- hdu 4282 A very hard mathematic problem
- hdu 4282 A very hard mathematic problem
- HDU 4282 A very hard mathematic problem
- hdu 4282 A very hard mathematic problem
- HDU 4282 A very hard mathematic problem
- hdu 4282 A very hard mathematic problem
- HDU 4282 A very hard mathematic problem
- HDU 4282 A very hard mathematic problem
- HDU 4282 A very hard mathematic problem
- A very hard mathematic problem HDU
- A very hard mathematic problem HDU
- A very hard mathematic problem (HDU 4282) acm
- HDU 4282 A very hard mathematic problem 二分
- HDU 4282 A very hard mathematic problem [剪枝/二分]
- hdu 4282 A very hard mathematic problem(二分+枚举)
- hdu 4282A very hard mathematic problem(枚举+二分)
- hdu 4277 USACO ORZ
- 关于大学的专业学习的期望与目标
- 求职那些事十一
- 内存动态分配与释放
- union 共用体的使用
- hdu 4282 A very hard mathematic problem
- oauth2.0认证
- activiti,jbpm5源码下载
- Comparing POSIX Multithreading to z/OS Multitasking
- Linux系统调用
- C# 第三方控件 自绘窗体 皮肤控件
- eval解析JSON中的注意点
- 对计算机专业的认识和理想
- ubuntu下编译android源码、linux内核、android的源码结构以及编译结果等全面解析