码迷,mamicode.com
首页 > 其他好文 > 详细

Gym 100187A-Potion of Immortality

时间:2015-07-22 01:24:37      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

题意:有n个药瓶,里面有一个有毒,然后每次拿兔子去试吃k瓶并且只能是k瓶,如果兔子死了就知道那瓶是毒药了,现在问你最少兔子要试吃几次。

分析:这题卡了好久,其实很简单。先考虑肯定要吃n/k次,那么剩下的如果只有一瓶或没有,则答案就是n/k,如果有两瓶以上,则只需再吃一次就行了。因为兔子只需在剩下的m瓶里吃m-1瓶,然后在之前的n-m瓶中吃(k-m+1)瓶,就可以知道剩下的那个是毒药了。

 

 1 #include <cstdio>
 2 #include <cmath>
 3 #include <cstring>
 4 #include <ctime>
 5 #include <iostream>
 6 #include <algorithm>
 7 #include <set>
 8 #include <vector>
 9 #include <sstream>
10 #include <queue>
11 #include <typeinfo>
12 #include <fstream>
13 #include <map>
14 #include <stack>
15 using namespace std;
16 typedef long long ll;
17 int main()
18 {
19     ll n,k;
20     scanf("%I64d%I64d",&n,&k);
21     ll ans=n/k,r=n%k;
22     if(n==k&&n!=1) printf("-1\n");
23     else{
24         if(k==1) printf("%d\n",n-1);
25         else{
26             if(r==0||r==1) printf("%I64d\n",ans);
27             else printf("%I64d\n",ans+1);
28         }
29     }
30     return 0;
31 }

 

Gym 100187A-Potion of Immortality

标签:

原文地址:http://www.cnblogs.com/RRirring/p/4665985.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!