zoukankan      html  css  js  c++  java
  • Gym 100187A-Potion of Immortality

    题意:有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
    ");
    23     else{
    24         if(k==1) printf("%d
    ",n-1);
    25         else{
    26             if(r==0||r==1) printf("%I64d
    ",ans);
    27             else printf("%I64d
    ",ans+1);
    28         }
    29     }
    30     return 0;
    31 }
  • 相关阅读:
    产品微谈
    SVN回滚机制
    super究竟是个啥?
    PM12条
    CocoaPods初体验
    UIView局部点击
    Memory cycles about Block
    About "self"
    openfire学习(一)
    WPF菜单和布局(2)
  • 原文地址:https://www.cnblogs.com/RRirring/p/4665985.html
Copyright © 2011-2022 走看看