博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4282 A very hard mathematic problem [枚举]
阅读量:6851 次
发布时间:2019-06-26

本文共 1082 字,大约阅读时间需要 3 分钟。

  求X^Z+Y^Z+XYZ=K有多少正整数解。

  对于Z=2时是完全平方数可以直接求解,Z=3~31时直接暴力枚举即可,对于所有的X^Y可以全部预处理出来,最多大概也就50000*31种组合。

  其实确定了X和Z后,Y可以二分求解的,但当Z>=3时Y能取的值加起来也没有多少。。所以枚举就OK了。

  

1 #include 
2 #include
3 #define MAXN 47000 4 typedef long long LL; 5 const LL INF=(1LL<<31); 6 LL p[47000][31],k; 7 void init(){ 8 for(int i=1;i
INF)p[i][j]=INF;13 }14 }15 }16 LL cal(int x,int y,int z){17 return p[x][z]+p[y][z]+(LL)x*y*z;18 }19 int main(){20 //freopen("test.in","r",stdin);21 init();22 while(scanf("%I64d",&k),k){23 int ans=0;24 int kk=sqrt((double)k);25 if(kk*kk==k)ans=(kk-1)/2;26 for(int z=3;z<31;z++){27 for(int x=1;cal(x,x+1,z)<=k;x++){28 for(int y=x+1;;y++){29 LL tmp=cal(x,y,z);30 if(tmp>k)break;31 if(tmp==k)ans++;32 }33 }34 }35 printf("%d\n",ans);36 }37 38 return 0;39 }

转载于:https://www.cnblogs.com/swm8023/archive/2012/09/14/2684536.html

你可能感兴趣的文章
Activity 之生命周期
查看>>
Windows压缩包安装MySQL
查看>>
datatable编辑一行数据的方法
查看>>
转眼已是一年
查看>>
iOS - MVC 架构模式
查看>>
给类,实例绑定属性和方法
查看>>
windows内核对象
查看>>
将div一直保持到页面底部
查看>>
用Vue来实现音乐播放器(十八):右侧快速入口点击高亮
查看>>
js中test,exec和match方法
查看>>
JSP内置对象
查看>>
POJ - 3267 The Cow Lexicon(动态规划)
查看>>
javascript 弹出的窗口返回值给 父窗口
查看>>
封装ajax支持get、post
查看>>
动态引入js
查看>>
串口通信
查看>>
java 多线程(生产者消费者)
查看>>
php二维数组的排序
查看>>
vue通过watch对input做字数限定
查看>>
fiddlercore 抓包获取cookie的方法
查看>>