E - A very hard mathematic problem----(2015 summer training #3)
时限:1000MS 内存:32768KB 64位IO格式:%I64d & %I64u
问题描述
Find three positive integers X, Y and Z (X < Y, Z > 1) that holds
X^Z + Y^Z + XYZ = K
where K is another given integer.
Here the operator “^” means power, e.g., 2^3 = 2 * 2 * 2.
Finding a solution is quite easy to Haoren. Now he wants to challenge more: What’s the total number of different solutions?
Surprisingly, he is unable to solve this one. It seems that it’s really a very hard mathematic problem.
Now, it’s your turn.
输入
For each case, there is only one integer K (0 < K < 2^31) in a line.
K = 0 implies the end of input.
输出
样例输入
样例输出
提示
9 = 1^2 + 2^2 + 1 * 2 * 2 53 = 2^3 + 3^3 + 2 * 3 * 3
分析:哎!老是TLE,这道题把我搞崩溃了。二分搜索,把z放在最外层可以计算出最大的x的值,优化计算。枚举x和z值,二分搜索y值。注意:当y值取最小值的时候大于k值,或者当y取最大值时小于k值时,直接跳过。我就是TLE这里,呜呜····。
CODE:
#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;int main()
{int k,maxn;while(scanf("%d",&k)&&k!=0){int ans=0;for(int z=2;z<31;z++){maxn=pow((double)k,1.0/z);for(int x=1;x<=maxn;x++){int l=x+1,r=maxn;if(pow(x,z)+pow(l,z)+x*l*z>k||pow(x,z)+pow(r,z)+x*r*z<k)continue;while(l<=r){int mid=(l+r)/2;long long res=pow(x,z)+pow(mid,z)+x*mid*z;if(res==k){ans++;break;}else if(res<k)l=mid+1;elser=mid-1;}}}printf("%d\n",ans);}return 0;
}
E - A very hard mathematic problem----(2015 summer training #3)相关推荐
- 我与计算机编程的不解之缘(2015.9~2022.1)
不解之缘:不能分开的缘分,指难以解除的密切关系. 虽然在计算机方面多有涉猎,但是我纯属是业余的,我学的能源与动力工程和材料物理与化学专业和计算机关联也不大.也可能是小小的缘分吧,在计算机应用领域摸爬滚 ...
- M - Mediocre String Problem( 扩展KMP + Manacher + 差分 )
M - Mediocre String Problem( 扩展KMP + Manacher + 差分 ) 题意:给出一个串S,和一个串T. 要求 从S串中取一个子串,后面接上T串的一个前缀 组成一个结 ...
- 【我的书】Unity Shader的书 — 文件夹(2015.12.21更新)
写在前面 感谢全部点进来看的朋友.没错.我眼下打算写一本关于Unity Shader的书. 出书的目的有以下几个: 总结我接触Unity Shader以来的历程,给其它人一个借鉴.我非常明确学Shad ...
- 【CF464E】The Classic Problem(主席树+最短路)
点此看题面 大致题意: 给你一张无向图,每条边的边权为\(2^{x_i}\),求\(s\)到\(t\)的最短路. 最短路 最短路,首先考虑\(Dijkstra\).这里用\(SPFA\)似乎不太好,因 ...
- 切题 (problem)(线段树+最大流最小割)
切题 problem description solution code description 在一个神秘的 JOSLFN 上,wzy 和 lqs2015 常年占据着切题榜的 rk1 和 rk2.现 ...
- [新闻摘录]第一届山西省互联网大会(2015.07.03召开)概要
本文由Markdown语法编辑器编辑完成. http://www.sx.xinhuanet.com/ztjn/hlw.htm 一.山西跑步进入"互联网+"时代 2015年7月3日, ...
- 欢迎参加 2015 Autodesk 产品开发培训课程 (2015/8/17开始)
欢迎参加 2015 Autodesk 产品开发培训课程 尊敬的Autodesk 合作伙伴: 当前互联网及BIM热潮正在席卷中国的建筑工程设计行业,随之而来的是BIM行业的各种设计需求如雨后春笋般涌现, ...
- 【转】Node.js最新Web技术栈(2015年5月)
nodejs是比较简单的,只有你有前端js基础,那就按照我的办法来吧!一周足矣 推荐技术栈 express 4.x (express最新版本,初学者先别去碰koa) mongoose(mongodb) ...
- CSU - 2059 Water Problem(Z线分割平面)
一条'Z'形线可以将平面分为两个区域,那么由N条Z形线所定义的区域的最大个数是多少呢?每条Z形线由两条平行的无限半直线和一条直线段组成 Input 首先输入一个数字T(T<100),代表有T次询 ...
- hdu 3549 Flow Problem(最大流模板题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3549 Problem Description Network flow is a well-known ...
最新文章
- plt转pdf软件_无须转Word也能轻松编辑PDF的软件,它来了!
- 基于树的模型的机器学习
- 底层系统如何实现数据一致性/系统底层如何保证有序性
- mysql密码命名规则_MySql命名规范
- QB期刊 | 纪念HGP20周年系列文章3:陈润生院士回顾我国早期生物信息学的发展...
- 这些工具类用起来真的很”香“
- oracle数据库导出数据6,Oracle数据库导入导出方法汇总
- PHP中ob系列函数讲解(浏览器缓存技术)
- ssh-add - 向认证代理添加 RSA 或 DSA 身份数据
- 无法在驱动器0分区上安装windows 解决方法
- matlab求解pde,matlab求解pde问题
- visa虚拟卡生成器_虚拟银行卡汇总
- centerOS环境变量配置
- XJOI一级六段题解(g++,即C++),也可视作C++算法竞赛教程
- 【软件测试】时制转换时的电话账单
- sd卡与FAT32文件系统
- 动态创建iframe页面内容
- 基于Unity的C/S架构数据交互
- 自定义Win7虚拟机的睡眠时间
- react服务端渲染技术
热门文章
- 单片机原理及应用(c语言编程),单片机原理及应用——C语言程序设计与实现
- 速读原著-TCP/IP(端口映射器)
- 制作u盘运行kali linux系统,U盘的进阶用法----打造U盘启动盘+USB KALI Linux+普通U盘。...
- 从JDK 6升级到JDK 7过程中遇到的一个问题
- weblogic部署springboot项目
- Android开发 无线Wifi+WifiUtil工具类,直面秋招
- Android 中文 API (29) —— CompoundButton
- 怎样保存CAD图纸到电脑桌面呢?
- IDEA 集成配置 Jad
- attachEvent