hdu 4430 Yukari's Birthday(二分)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4430
题意:要在一个蛋糕上放置n个糖果,摆成r个同心圆,每个同心圆的糖果数为k^i,中间圆心可以放一个糖果或者不放,使得r*k最小,若有多个答案输出r最小的那个。
18<=n<=10^12,k>=2,1<=i<=r
分析:r最多也就40,而k最多100000,枚举r,然后二分找出k就行了,二分的时候sum可能会溢出,所以判断是否大于n跳出就行了,其实不难的,但是由于我的疏忽看错题意了,没注意到中心可放或可不放,导致wa到死,练习的时候坑队友坑到结束,应该认真看看题目的,哎~~~~
AC代码:
![](/assets/blank.gif)
![](/assets/blank.gif)
1 #include<stdio.h> 2 #define LL long long 3 #define INF 0x7fffffff 4 LL binary(int r,LL n) 5 { 6 int i; 7 LL low=2,high=1000000,mid,s,sum; 8 while(low<=high) 9 { 10 mid=(low+high)>>1; 11 s=1,sum=1; 12 for(i=1;i<=r;i++) 13 { 14 s*=mid; 15 sum+=s; 16 if(sum>n) 17 break; 18 } 19 if(sum==n) 20 return mid; 21 else if(sum>n) 22 high=mid-1; 23 else 24 low=mid+1; 25 } 26 return -1; 27 } 28 int main() 29 { 30 int r,i; 31 LL n,k,tmp,Min; 32 while(scanf("%lld",&n)!=EOF) 33 { 34 Min=INF; 35 r=1,k=n-1; 36 for(i=1;i<64;i++) 37 { 38 tmp=binary(i,n); 39 if(tmp!=-1) 40 { 41 if(tmp*i<Min) 42 { 43 Min=tmp*i; 44 r=i,k=tmp; 45 } 46 } 47 tmp=binary(i,n+1); 48 if(tmp!=-1) 49 { 50 if(tmp*i<Min) 51 { 52 Min=tmp*i; 53 r=i,k=tmp; 54 } 55 } 56 } 57 printf("%d %lld\n",r,k); 58 } 59 return 0; 60 }
View Code
转载于:https://www.cnblogs.com/frog112111/p/3405659.html
hdu 4430 Yukari's Birthday(二分)相关推荐
- hdu 4430 Yukari's Birthday (简单数学 + 二分)
Problem - 4430 题意是,给出蜡烛的数量,要求求出r和k,r是蜡烛的层数,k是每一层蜡烛数目的底数. 开始的时候,没有看清题目,其实中间的那根蜡烛是可放可不放的.假设放置中间的那根蜡烛,就 ...
- HDU 4430 amp; ZOJ 3665 Yukari#39;s Birthday(二分法+枚举)
主题链接: HDU:http://acm.hdu.edu.cn/showproblem.php?pid=4430 ZJU:http://acm.zju.edu.cn/onlinejudge/showP ...
- HDU - 6070 Dirt Ratio (二分 + 线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6070 题目大意:给定一个序列a,对于任何一个区间 [l,r],它的"Dirt Ratio&q ...
- hdu 2295 Radar 重复覆盖+二分
题目链接 给m个雷达, n个城市, 以及每个城市的坐标, m个雷达里只能使用k个, 在k个雷达包围所有城市的前提下, 求最小半径. 先求出每个雷达到所有城市的距离, 然后二分半径, 如果距离小于二分的 ...
- hdu 3622 Bomb Game【二分+2-SAT+tarjan】
用read()会挂 二分半径,显然最优的是所有原都用这个最小半径,然后2-SAT把相交的圆建图,跑tarjan判一下可行性即可 #include<iostream> #include< ...
- hdu 1150 Machine Schedule (经典二分匹配)
//A组n人 B组m人 //最多有多少人匹配 每人仅仅有匹配一次 # include<stdio.h> # include<string.h> # include<alg ...
- hdu 5179(bfs打表+二分)
beautiful number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU Problem - 6383 p1m2(二分)
题目链接 Problem Description 度度熊很喜欢数组!!我们称一个整数数组为稳定的,若且唯若其同时符合以下两个条件:1. 数组里面的元素都是非负整数.2. 数组里面最大的元素跟最小的元素 ...
- HDU Problem - 1969 Pie(二分,精度)
题目链接 Problem Description My birthday is coming up and traditionally I'm serving pie. Not just one pi ...
最新文章
- 测试笔试题之相关概念
- 没学过编程可以自学python吗-我以前从没学过编程,学Python看什么书?
- sql删除过程的命令是什么_一个删除表字段的自动化执行工单的思考
- 全球海拔最高的国际级数据中心竣工,西藏有了大数据存储中心
- 如何让进口商品拥有正品“身份证”?解析区块链技术的应用
- 数据库连接池的选择及其开发配置
- python webbrowser点击_用 Python 实现手机自动答题,这下百万答题游戏谁也玩不过我!...
- python 模块和包
- xp系统的WINS服务器设置,WindowsXP系统设置
- go语言一个包含nil指针的接口不是nil接口的理解
- 【Spark笔记】Windows10 本地搭建单机版Spark开发环境
- 自学网c语言教学视频教程下载,C语言从入门到精通教程 高清不加密 黄老师 视频教程 教学视频 百度网盘下载...
- 前端快速上手APICloud App开发
- 阿里云对象存储OSS服务——上传/删除/获取图片
- 致远OA自定义函数--正则表达式匹配校验
- springboot启动原理及其流程
- 防Ddos文献之应对篇-DDoS防御方案
- 双臂冗余机器人solidworks转URDF
- 智能优化算法——粒子群算法原理(附代码)
- 快速调出multisim里单刀双置开关