ACM--平均分蛋糕--HDOJ 1722--Cake
2016-05-23 20:13
260 查看
HDOJ题目地址:传送门
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3263 Accepted Submission(s): 1703
Problem Description
一次生日Party可能有p人或者q人参加,现准备有一个大蛋糕.问最少要将蛋糕切成多少块(每块大小不一定相等),才能使p人或者q人出席的任何一种情况,都能平均将蛋糕分食.
Input
每行有两个数p和q.
Output
输出最少要将蛋糕切成多少块.
Sample Input
2 3
Sample Output
4
Hint将蛋糕切成大小分别为1/3,1/3,1/6,1/6的四块即满足要求.
当2个人来时,每人可以吃1/3+1/6=1/2 , 1/2块。
当3个人来时,每人可以吃1/6+1/6=1/3 , 1/3, 1/3块。
举个例子:4 6,用一个矩形来切割,其实应该是圆的。这里边界也得加上,因为首位其实是相连的。。。自己动手画下圆形的蛋糕模拟。
红色点线表示4等分线 蓝色实线表示6等分线,让蛋糕(矩形)可以平分为4份需要(4刀)和6份需要(6刀),总共需要10刀,但因为其中有两条线是重合的,没有必要切两次,所以应该减掉这两刀,就只剩下10-2=8刀了。对于任何p和q,他们重合的线的数量就是他们的公约数。
所以公式就是:p+q-gcd(p,q)
参考博客:http://blog.csdn.net/niushuai666/article/details/7011139
Cake
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3263 Accepted Submission(s): 1703
Problem Description
一次生日Party可能有p人或者q人参加,现准备有一个大蛋糕.问最少要将蛋糕切成多少块(每块大小不一定相等),才能使p人或者q人出席的任何一种情况,都能平均将蛋糕分食.
Input
每行有两个数p和q.
Output
输出最少要将蛋糕切成多少块.
Sample Input
2 3
Sample Output
4
Hint将蛋糕切成大小分别为1/3,1/3,1/6,1/6的四块即满足要求.
当2个人来时,每人可以吃1/3+1/6=1/2 , 1/2块。
当3个人来时,每人可以吃1/6+1/6=1/3 , 1/3, 1/3块。
举个例子:4 6,用一个矩形来切割,其实应该是圆的。这里边界也得加上,因为首位其实是相连的。。。自己动手画下圆形的蛋糕模拟。
红色点线表示4等分线 蓝色实线表示6等分线,让蛋糕(矩形)可以平分为4份需要(4刀)和6份需要(6刀),总共需要10刀,但因为其中有两条线是重合的,没有必要切两次,所以应该减掉这两刀,就只剩下10-2=8刀了。对于任何p和q,他们重合的线的数量就是他们的公约数。
所以公式就是:p+q-gcd(p,q)
#include<stdio.h> #include<iostream> #include<string.h> #include<algorithm> using namespace std; /** 用来求最大公约数 */ int gcd(int n,int m){ int i=0; while(m!=0){ i=n%m; n=m; m=i; } return n; } int main(){ int i,j,result; while(scanf("%d%d",&i,&j)!=EOF){ result=i+j-gcd(i,j); printf("%d\n",result); } }
参考博客:http://blog.csdn.net/niushuai666/article/details/7011139
相关文章推荐
- hdoj 2034人见人爱A-B 解题报告
- Vim杂碎
- [Ruby笔记]12.Ruby 方法参数变量优先级method(*arg)
- 基数排序——java
- Android5.0以上实现对手机屏幕录制并将视频实时保存到本地(亦可实时传输)
- android studio 更新 Gradle错误解决方法
- POJ 3071 Football 概率DP 二进制优化
- 极大连通子图和极小连通子图
- 移位运算
- slf4j+log4j配置(Maven)
- 第十三周项目一 分数类运算符重载
- hdu 1215(因子和)
- lumen框架
- Linux内核 实践二
- C++笔记--类型和声明
- linux下apache安装ssl步骤
- python正则表达式(二)
- SQL SERVER 建表table之前,检查是否有同名的表存在
- ACM_拓扑排序
- 蓝桥杯 加密