题目链接 题目大意:给你n个规格一样的气球和一栋大楼的高度,求最少试验几次能测出气球最高在哪一层掉下来不破. 如果这道题想用(dp[i][j]=用i个气球测出j高度的楼需要几次)来作为状态的话,那你就输了,因为楼的高度太大了. 正确的做法是用(dp[i][j]=用i个气球测j次最高能测出多高的楼)来作为状态.假设你现在手里有i个球,要求测j次,最高能测出h层来,你在第k层楼上测,如果球破了,那么你手里还剩下i-1个球,则问题转化成了(用i-1个球测j-1次测出k-1层以下的楼):如果球没破,那么…
本文转载自http://blog.csdn.net/shuangde800/article/details/11273123 题意 你有k个一模一样的水球,在一个n层楼的建筑物上进行测试,你想知道水球最低从几层楼往下丢可以让水球破掉.由于你很懒,所以你想要丢最少次水球来测出水球刚好破掉的最低楼层.(在最糟情况下,水球在顶楼也不会破)你可以在某一层楼丢下水球来测试,如果水球没破,你可以再捡起来继续用. Input 输入的每一行包含多组测试,每组测试为一行.每组测试包含两个整数 k 和 n, 1 <…
题目链接:https://vjudge.net/problem/27377/origin 题意: 有一栋n层高的楼,并给你k个水球.在一定高度及以上将水球扔下,水球会摔破:在这个高度以下扔,水球不会摔破,并且可以捡起来再用.现在你要通过不断地试扔水球,找出在这栋楼上的第几层扔水球,恰好能让水球摔破.问你在最坏情况下,最少扔几次可以保证找出这个层数(若大于63次则输出'More than 63 trials needed.'). 题解: 这个问题可以转化成: 花费i个球,j次扔水球,最多能确定几层…
题意:有k个气球,n层楼,求出至少需要多少次实验能确定气球的硬度.气球不会被实验所“磨损”. 分析: 1.dp[i][j]表示第i个气球,测试j次所能确定的最高楼层. 2.假设第i-1个气球测试j-1次所确定的最高楼层是a, 若第i个气球在测试第一次的时候摔破了,那摔破所在的楼层b<=a+1---------dp[i - 1][j - 1] + 1. 若没摔破,则前i-1个球在此楼层也不会摔破,也就是说当前至少有i个完好的球可以测试以及j-1次机会可以继续测试-------------dp[i]…
你有k个一模一样的水球,在一个n层楼的建筑物上进行测试,你想知道水球最低从几层楼往下丢可以让水球破掉.由于你很懒,所以你想要丢最少次水球来测出水球刚好破掉的最低楼层.(在最糟情况下,水球在顶楼也不会破)你可以在某一层楼丢下水球来测试,如果水球没破,你可以再捡起来继续用. Input 输入的每一行包含多组测试,每组测试为一行.每组测试包含两个整数 k 和 n, 1 <= k <= 100 而 n 是一个 64 位的整数(没错,这栋建筑物的确很高),最后一组k = 0,n=0 代表结束,这组测试不…
这道题的思路非常难想. 问你须要的最少实验次数,这是非常难求解的.并且我们知道的条件仅仅有三个.k.n.实验次数 . 所以我们最好还是改变思路,转而求最高所能确定的楼层数 .  那么用d[i][j]表示用i个球,实验j次所能确定的最高楼层数 . 那么我们如果第j次实验是在k楼,有两种可能: 1.球破了.那么状态怎样转移? 用了一个球,用了一次实验机会.所以最优情况一定是从d[i-1][j-1]转移过来的,所以这一次实验向下所能确定的最大楼层数为d[i-1][j-1] + 1 :2.球没有破.那么…
题目:UVA - 590Always on the run(递推) 题目大意:有一个小偷如今在计划着逃跑的路线,可是又想省机票费. 他刚開始在城市1,必须K天都在这N个城市里跑来跑去.最后一天达到城市N.问如何计划路线的得到最少的费用. 解题思路:一開始题目意思就理解有些问题. dp[k][i]:代表在第k天小偷从某一个城市(除了i)坐飞机飞到城市i(到达城市i也是在这一天). 第k天的话,就看这一天坐哪个航班,加上之前的费用是最小的,就选这个方法. 然后k+ 1天就又是由第k天推出来的. 状态…
不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 25802    Accepted Submission(s): 8967 Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以…
[Link]: [Description] 等价题意: 某人在1..n内选一个数x; 然后让你去猜; 你可以问他是不是在哪个范围里; 每次会告诉你YES或者NO; 问你在最坏的情况下猜出答案需要猜多少次; 且猜的数字大于x的次数不能超过k次. [Solution] 动态规划. 设f[i][j]表示前i个水球,做了j次试验;能得到的最大高度; 这里的f[i][j]; 指的是,如果问的数字是1..f[i][j],的话,用i个水球都能够通过试验猜到. (这里的状态f[i][j]中,j>=i也是可行的状…
题目大意:给你玩一个一维版的消灭星星,得分是当前消去的区间的长度的平方,求最大得分. 现在分析一下题目 因为得分是长度的平方,不能直接累加,所以在计算得分时需要考虑前一个状态所消去的长度,仅用dp[l][r]来表示区间最大得分是不足以用来转移的. 我们的解决方法是:增加一维预测未来可能会出现的情况,用dp[l][r][t]表示区间[l,r]之后附加t个与r同色的方块时所能得到的最大值.为了降低时间复杂度,我们可以在读入时处理一下,将一段长度为a.颜色为b的区间k表示成一个len[k]=a,col…