HDU-4282 A very hard mathematic problem 技巧枚举+二分
题意
xz+yz+x∗y∗z=kx^z+y^z+x*y*z = k ( y>x&&z>1y>x&&z>1)
给我们这个等式让我们找出这里面有多少个不同的可行解
分析
表面上数据范围比较大 但由于k最大都在int范围内 由于后面还有一个x*y*z 于是这个式子的指数不会超过31
再来分析x和y 这里必定是一个y大x小 那么假如我们先枚举一个数 那么另一个数的范围必定就是 1~y-1
由于这个式子是个单调性的式子 也就是说这个式子必定是增函数 那么确定了两个量 最后一个x量一定是个唯一的
而且随着x的变化 得到的k值具有单调性 那么这里我们就可以使用二分去查找这个值
code
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll pow(ll a,ll b){ll ans = 1;while(b){if(b&1)ans*=a;a*=a;b>>=1;}return ans;
}
int main()
{int n;while(scanf("%d",&n),n){ll x,y,z,cnt=0; for(z = 2;1+pow(2,z)+2*z<=n;z++){// z最小是2 直到z不满足最小的x和y为止 也就是x和y没范围了for(y = 2;1+pow(y,z)+y*z<=n;y++)// y下界也是2 直到y和z不满足最小的x为止 也就是x没范围了 那么枚举就没有意义了{ll l=1,r = y-1,mid;while(l<=r){// x在1-y之间枚举 mid = l+r>>1;ll ans = pow(mid,z)+pow(y,z)+mid*y*z;if(ans==n){cnt++;break;}else if(ans<n)l = mid+1;else r = mid-1;}}}printf("%d\n",cnt);}return 0;
}
HDU-4282 A very hard mathematic problem 技巧枚举+二分相关推荐
- HDU 4282 A very hard mathematic problem 二分题目
http://acm.hdu.edu.cn/showproblem.php?pid=4282 题解:http://www.cnblogs.com/E-star/archive/2012/09/11/2 ...
- hdu 2058 解题报告 - The sum problem
hdu 2058 解题报告 - The sum problem 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2058 等差求和公式: Sn=(a1+aN ...
- 【HDU 5936 --- Difference】折半枚举+二分
[HDU 5936 --- Difference]折半枚举+二分 Description Little Ruins is playing a number game, first he chooses ...
- hdu 3509 Buge's Fibonacci Number Problem(矩阵乘法+二项式)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3509 Buge's Fibonacci Number Problem Time Limit: 10000/ ...
- HDU 6833 A Very Easy Math Problem
A Very Easy Math Problem 推式子 ∑ai=1n∑a2=1n⋯∑ax=1n(∏j=1xajk)f(gcd(a1,a2,-,ax))×gcd(a1,a2,-,ax)\sum_{a_ ...
- HDU 4403 A very hard Aoshu problem DFS
problem statement 这道题给我们一个不超过15位的整数 让我们在其中加等号或者加号 如果加完符号后符合计算结果 那么计数 最后输出所有的情况 problem analysis 这道题其 ...
- 【HDU - 1757】A Simple Math Problem (矩阵快速幂)
题干: Lele now is thinking about a simple function f(x). If x < 10 f(x) = x. If x >= 10 f(x) = ...
- hdu 3509 Buge's Fibonacci Number Problem
点击此处即可传送 hdu 3509 题目大意:F1 = f1, F2 = f2;; F(n) = a*F(n-1) + b*F(n-2); S(n) = F1^k + F2^k +-.+Fn^k; 求 ...
- HDU多校4 - 6813 Last Problem(构造)
题目链接:点击查看 题目大意:给出一个无限大的二维平面,需要在平面内进行染色,每次可以选择一个点 ( x , y ) 将其染色为 n 的前提是,相邻四个格子必须分别已经染了 n - 1 , n - 2 ...
最新文章
- robo3t 连接服务器数据库_车牌识别软件连接各种数据库方法大全
- 布朗大学研究者提出面向下一代脑机接口系统
- 每天一个设计模式,工厂方法模式(Factory Method)
- 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控
- Spark任务执行期间写临时文件报错导致失败
- 另一种Background job的 debug方法
- tomcat源码阅读之Server和Service接口解析
- [html] 你知道短链接的生成原理吗?
- 小程序动态class_会后剧透!百度智能小程序的最新动态都在这儿了!
- pythoncookie自动模拟登录_用Python模拟技巧带你实现自动抽屉登录自动点赞
- UI实用素材|电子商务界面模板
- android主题资源,使用 Theme Editor 设计应用主题背景
- 数据库Oracle 11g的安装步骤
- 转载《OpenGIS: Open Geodata Interoperation Specification》中文翻译
- 利用 Commons-Fileupload 实现文件上传分析(转)
- linux系统火狐浏览器加速,火狐浏览器加速的几个设置
- opengauss数据库常用SQL语句
- windows开机后一键启动应用程序
- 高数 | 导数极限定理、分段点求导能不能用公式?导数和导数的极限?
- Protected Process Light(PPL)微软系统进程保护机制
热门文章
- 4种kill某个用户所有进程的方法
- ASP.NET学习笔记之操作过滤器
- oracle已经有了注释符再注释,关于oracle的注释位置
- rocketmq 初探(五)
- Spring和SpringMVC总结篇
- activity与service 使用Handler Messenger数据传递
- 什么是eager loading
- (JAVA)StringBuffer类(练习)
- javagei图片设置热点_【物理考点】重磅押题: 2020高考物理必考热点+命题预测+例题解析, 快快快收藏!...
- 字段 新增hive_Hive分区表 | 每日五分钟学大数据