CF Gym 100187A Potion of Immortality (思路,最坏情况的最小损失)
根据兔子试药情况可以缩小范围,如果死了,不在试过的药里面,如果活着,在试过的药里。
最糟的情况:
两个原则 1.能确定魔药所在的范围的尽量大,2.死得兔子尽量多。
如果当前不知道情况的药n为k的二倍以上,那么基于上面两个原则,试过药的兔子肯定会死。
没死:范围k,损失的兔子0
死了:范围n-k,损失的兔子1 (n>2*k) (符合两个原则)
设r=n%k,经过上述过程,损失了n/k-1只兔子,转移到了当前状态范围w = k+r,
1.r == 0 那么可以补充一个毒药,变成w=k+1,根据鸽巢原理再死一个就可以确定
2.r == 1 同上 死一个
3.r > 1 因为在这种情况下两原则是矛盾的,那么根据试药情况分类 (当时我就沙茶在这里了。。。)
情况1 兔子没事,范围变成k,同1,再死一个能确定。
情况2 兔子死了,范围变成r,补充毒药变成k+1,一共死两个。
所以是死两次
然而,前面讨论还不全面,注意能补充毒药的前提,如果n == k 没法补充毒药,所以-1。
注意它给的数据范围 n = 1时是不要试药的。还有k == 1时 经过两原则它是转移到 n = 1的情况,不要试药。
总结:很考全面思维的能力。然而误解题意的我用什么dp,二分。。。
#include<cstdio> int main()
{
int n, k;
scanf("%d%d",&n,&k);
if(n==){
printf("");
} else
if(n == k){
printf("-1");
}
else if(k == ){
printf("%d",n/k-);
} else {
int r = n%k;
if(r == || r ==){
printf("%d",n/k);
}
else printf("%d",n/k+);
} return ;
}
CF Gym 100187A Potion of Immortality (思路,最坏情况的最小损失)的更多相关文章
- CF Gym 100463B Music Mess (思路)
好题,当时想了半个小时,我往图论方面去想了,把出现过的字符串当场点,然后相互连边,那么就构成了一个三角形,一个大于三个点的连通分量里有以下结论:度为二的点可能是track,度为大于二的点一定不是tra ...
- codeforces Gym 100187A A. Potion of Immortality
A. Potion of Immortality Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/1001 ...
- Gym - 100187A A - Potion of Immortality —— 贪心
题目链接:http://codeforces.com/gym/100187/problem/A 题解: 光题意就想了很久:在最坏情况下的最小兔子数.其实就是至少用几只兔子就一定能找出仙药(答案存在的话 ...
- CF Gym 102028G Shortest Paths on Random Forests
CF Gym 102028G Shortest Paths on Random Forests 抄题解×1 蒯板子真jir舒服. 构造生成函数,\(F(n)\)表示\(n\)个点的森林数量(本题都用E ...
- POJ3783Balls[DP 最坏情况最优解]
Balls Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 907 Accepted: 598 Description T ...
- 一种最坏情况线性运行时间的选择算法 - The missing worst-case linear-time Select algorithm in CLRS.
一种最坏情况线性运行时间的选择算法 - The missing worst-case linear-time Select algorithm in CLRS. 选择算法也就是求一个无序数组中第K大( ...
- k个鸡蛋从N楼层摔,如果确定刚好摔碎的那个楼层,最坏情况下最少要试验x次?
题目 k个鸡蛋从N楼层摔,如果确定刚好摔碎的那个楼层,最坏情况下最少要试验x次? 换个说法: k个鸡蛋试验x次最多可以检测N层楼.计算出N? 逆向思维和数学公式解. 分析 定义N(k,x) 如果第k个 ...
- codeforces Gym 100500H A. Potion of Immortality 简单DP
Problem H. ICPC QuestTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100500/a ...
- CF gym 101933 K King's Colors —— 二项式反演
题目:http://codeforces.com/gym/101933/problem/K 其实每个点的颜色只要和父亲不一样即可: 所以至多 i 种颜色就是 \( i * (i-1)^{n-1} \) ...
随机推荐
- Windows下怎样安装Tomcat
Tomcat 是开源的WEB应用容器,所以受到各位程序员和公司的亲赖.在这里给大家介绍一下如何在Windows环境下安装Tomcat绿色版本,希望能够对大家有帮助. 1.首先去Tomcat官网下载To ...
- 渲染路径-surface shader 光照函数与渲染路径
https://docs.unity3d.com/Manual/SL-SurfaceShaderLighting.html Lighting Model declaration Lighting mo ...
- hihoweek 137(简单完全背包)
题目链接:http://hihocoder.com/contest/hiho137/problem/1 题意:中文题诶- 思路:各层的成本计算不会有影响,所以我们只要把没一层的成本计算出来在求和就是答 ...
- vjudge个人赛 复习1
A - 大鱼吃小鱼(栈) 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示 ...
- 五分钟搞定 Linux 文档全部知识,就看这篇文章
作者:无痴迷,不成功 来源:见文末 写在前面 我们都知道Linux是一个支持多用户.多任务的系统,这也是它最优秀的特性,即可能同时有很多人都在系统上进行工作,所以千万不要强制关机,同时,为了保护每个人 ...
- mysql--浅谈子查询1
这是对自己学习燕十八老师mysql教程的总结,非常感谢燕十八老师. 依赖软件:mysql5.6 系统环境:win 子查询概念 子查询就是在原有的查询语句中嵌入新的查询 子查询分类 1.where型子查 ...
- C 语言实例 - 计算自然数的和
C 语言实例 - 计算自然数的和 自然数是指表示物体个数的数,即由0开始,,,,,,……一个接一个,组成一个无穷的集体,即指非负整数. 实例 - 使用 for #include <stdio.h ...
- Codeforces Round #563 (Div. 2) A. Ehab Fails to Be Thanos
链接:https://codeforces.com/contest/1174/problem/A 题意: You're given an array aa of length 2n2n. Is it ...
- 定时任务crontab 详解
cron 是一个可以用来根据时间.日期.月份.星期的组合来调度对重复任务的执行的守护进程. cron 假定系统持续运行.如果当某任务被调度时系统不在运行,该任务就不会被执行. 要使用 cron 服务, ...
- JAVA_HOME not recognized by tomcat7 in Ubuntu
vi .bashrc 添加: export JAVA_HOME=/usr/lib/jvm/java--oracle export JRE_HOME=$JAVA_HOME/jre export CLAS ...