A bottom-up DP. To be honest, it is not easy to relate DP to this problem. Maybe, all "most"\"least" problems can be solved using DP..Reference:http:/...
分类:
Web程序 时间:
2014-06-25 18:39:32
阅读次数:
235
留坑,必填,学习kuangbin大神!!!!!加油!!1. POJ 2096 Collecting Bugs (期望DP)题意:我直接没看题目,看的别人题解里面的题目意思。大概就是有s个子系统,n种bug。某人每天能发现一个bug,这个bug属于一个分类,同时也属于一个子系统,每个bug属于某个子系...
分类:
其他好文 时间:
2014-06-25 15:14:53
阅读次数:
326
增加一个判素数的步骤就过了。太囧了。。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int k; 7 8 int main(){ 9 while(scanf("%d",&k)!=EOF){10 ...
分类:
其他好文 时间:
2014-06-25 15:03:25
阅读次数:
181
题解
题目要求是,有两种操作,从头取出一个字符,或者从尾取出一个字符,加到一个新的字符串末端,然后保证这个字符串是所有可能生成的字符串中,字典序排列最小的那个。依旧是贪心的想法,谁小我取谁即可。特殊判断两者相同的。一旦两者相同,那么就接着判断下一种,直到找到更小的为止。
另外需要注意两点,题目的输入很变态,要一个字母一行的输入,所以用cin或者用scanf(" %c", &ch)。cin不多说了,除了慢点其他没啥缺点。scanf中为何要加上一个空格呢?因为在格式串中,空格的意思是匹配输入中的所有换行、TAB...
分类:
其他好文 时间:
2014-06-25 08:46:12
阅读次数:
243
题解
用类似哈夫曼树的思想去考虑,每次选取两个较小的点合并,然后把合并后的放回原集合。用一个小根堆去维护即可。
注意首先,C++的优先队列默认是大顶堆,所以需要改写;其次,改写之后的堆是没有clear()方法的,所以务必记住队列的清空!...
分类:
其他好文 时间:
2014-06-25 07:34:58
阅读次数:
274
本题分两步:
1 使用Tarjan算法求所有最大子强连通图,并且标志出来
2 然后遍历这些节点看是否有出射的边,没有的顶点所在的子强连通图的所有点,都是解集。
Tarjan算法就是模板算法了。
这里使用一个数组和一个标识号,就可以记录这个顶点是属于哪个子强连通图的了。
然后使用DFS递归搜索所有点及其边,如果有边的另一个顶点不属于本子强连通图,那么就说明有出射的边。
有难度的题目:
...
分类:
其他好文 时间:
2014-06-25 07:19:31
阅读次数:
241
题解
题目抽象出来就是用一个半径为R的圆去覆盖一条直线上的点。每个园内必须有至少一个被标记的点。问最少需要标记多少个点。
贪心去处理就行了,给从左边开始,在园内的最右边的点加上标记即可。...
分类:
其他好文 时间:
2014-06-25 07:15:39
阅读次数:
243
本题就是要往墙上贴海报,问最后有多少可见的海报。
其实本题的难点并不是线段树,而是离散化。
因为数据很大,直接按原始数据计算那么就会爆内存和时间的。
故此需要把数据离散化。
比如有海报1 6 7 9 20 100 5 1000的原始数据,直接计算需要1-1000的内存,离散化之后只需要8内存,因为只有4组数据8个数。
本题更进一步高级一点的离散化就是需要把不相邻的两个数据插入一...
分类:
其他好文 时间:
2014-06-24 15:47:53
阅读次数:
222