这题有些巧妙,看了别人的题解才知道做的。因为按常规思路的话,背包容量为浮点数,,不好存储,且不能直接相加,所以换一种思路,将背包容量与价值互换,即令各银行总值为背包容量,逃跑概率(1-P)为价值,即转化为01背包问题。此时dp[v]表示抢劫到v块钱成功逃跑的概率,概率相乘。最后从大到小枚举v,找出概...
分类:
其他好文 时间:
2014-04-28 09:16:39
阅读次数:
556
字符串中单词的翻转问题与字符串中单词的循环移位问题,解决思路都是先局部翻转然后再整体翻转,道理是不言自明的。单词的翻转问题可能容易想到这样做,但是单词的循环移位问题却不那么直观,若不是看别人的解决思路很难这样思考。不过此题的难度其实不是在思路,更多的是对边界条件的考虑,尤其是如果要求在原地址上操作时...
分类:
其他好文 时间:
2014-04-28 09:08:49
阅读次数:
487
对一句话里面的单词进行reverse,标点符号位置不变。符号包括:,.!?
例:输入:Hello, my dear friend! 输出:olleH, ym raed dneirf!
思路:由于需要逆序输出,因此想到利用栈数据结构来实现。代码如下(调试环境:VS2013):
分类:
其他好文 时间:
2014-04-27 21:05:01
阅读次数:
596
背包问题。思路:如果m=5:
求出背包容量为m-5,买前n-1样便宜的菜(排个序)的最大价值(即最大消费,即消费完后剩余值最接近5)最后减去最大的那个菜的价格,就得到最小的余额。代码:#include
#include #include #include #include using namespa...
分类:
其他好文 时间:
2014-04-27 21:02:23
阅读次数:
640
题目链接:1529 - Clock
题意:给定两个时刻,求时针和分针相遇次数。
思路:先把转一圈会相遇的时刻记录下来,这些时刻肯定是固定的,然后由给定的两个时刻a,b,求出12点到a相遇次数c1,12点到b相遇次数c2,ans = c2 - c1
代码:
#include
#include
const double esp = 1e-6;
int h1, m1, h2, m2;
do...
分类:
其他好文 时间:
2014-04-27 19:28:46
阅读次数:
352
题目链接:11314 - Hardly Hard
题意:给定A,B两点,求Y轴上一点C和X轴上一点D,使得该四边形周长最小。
思路:B以Y轴做对称点,A以X轴做对称点,然后两点相连就是其他三边的周长,因为两点间线段最短,然后再加上AB长度即可
代码:
#include
#include
#include
int t;
struct Point {
double x, y;
Po...
分类:
其他好文 时间:
2014-04-27 17:40:22
阅读次数:
555