标签:消失 stdin style input text main examples 小学 tab
有n 座山,每座山有南北两面。
每一天,一些山的某一面(不一定相同) 会受到山魔的袭击。
但是山魔一天最多只会袭击k座山。
当每座山的每一面都被袭击过后,山魔就会离开。
那么至少要经过多少天,山魔会消失?
一行两个正整数n, k。
一个整数,表示答案。
devil.in | devil.out |
3 2 | 3 |
对于所有数据,满足1 ≤ n, k ≤ 10。
Task1[10%]
k = 1
Task2[50%]
k ≤ 4
Task3[100%]
无特殊限制
这道题,又是改编的题目
原型是烙饼问题:
有n个饼,k个锅,一次只能烤一面
问:至少要烤几次?
小学奥数嘛。。。
当锅比饼都要多时,肯定只用烤两次嘛(正面一次反面一次)
锅饼相同时,也是这样的
所以:
if(n<=k) {
cout<<"2";
return 0;
}
随便选了几个数算了下
发现了普遍规律:
如果n的两倍可以被k整除
就直接输出商加一
如果不能被整除
就输出商(int向下取整)
#include<cstdio> using namespace std; int main() { freopen("devil.in", "r", stdin); freopen("devil.out", "w", stdout); int n, k; scanf("%d%d", &n, &k); if (k>=n) puts("2"); else if (2*n%k) printf("%d\n", 2 * n / k + 1); else printf("%d\n", 2 * n / k); return 0; }
OK!
标签:消失 stdin style input text main examples 小学 tab
原文地址:https://www.cnblogs.com/send-off-a-friend/p/11181011.html