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 }
  • 相关阅读:
    vue vmodel input type=checkbox的问题
    springboot配置文件优先级
    原生js实现复制功能
    Long.valueOf和Long.parseLong的区别
    程序员学习参考
    国外开源项目
    .NET快速入门教程
    Microsoft Update Catalog 离线安装包下载
    php header示例代码
    CentOS下iptables设置
  • 原文地址:https://www.cnblogs.com/RRirring/p/4665985.html
Copyright © 2011-2022 走看看