hdu1722 切蛋糕
生活随笔
收集整理的這篇文章主要介紹了
hdu1722 切蛋糕
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
Cake
Time Limit: 1000/1000 MS (Java/Others) ? ?Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1878 ? ?Accepted Submission(s): 943
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塊。
思路:
Cake
Time Limit: 1000/1000 MS (Java/Others) ? ?Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1878 ? ?Accepted Submission(s): 943
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塊。
思路:
? ? ? 題目挺簡單的,假設p>=q我們想像下,首先我們拿來一個蛋糕,然后把它平均切成p塊,接下來的任務就是在把已經切了的蛋糕在切成q塊,假設之前沒有切過蛋糕肯定是切成q塊,但蛋糕上已經有了一些切過的痕跡,我們要得到盡量少的塊數就得盡量的的利用這些切過的位置少切幾刀,我們最多能用的就是p,q的最大公約數那么多,所以 ans = p + q - Gcd(p ,q),挺簡單的,要是不明白畫畫圖就知道了...
#include<stdio.h> int Gcd(int a ,int b) {return b == 0 ? a : Gcd(b ,a % b); }int main () {int p ,q;while(~scanf("%d %d" ,&p ,&q)){printf("%d\n" ,p + q - Gcd(p ,q));}return 0; }
總結
以上是生活随笔為你收集整理的hdu1722 切蛋糕的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu3768 spfa+全排列
- 下一篇: hdu4450 不错的贪心