- 博客(34)
- 收藏
- 关注
原创 poj 1636 Prison rearrangement
题目链接:http://poj.org/problem?id=1636题目大意及思路:两个监狱交换囚犯,但有些囚犯不能在同一个监狱,问最接近m/2的交换数,做法是先求连通分量和两个监狱分别的人数,没有关联的人则为(0,1)和(1,0);最后dp,求得最接近m/2的i 满足dp[i][i]=1。#include#include#include#include#include#inc
2012-03-30 22:34:00 1144
原创 poj 1635 Subway tree systems
题目链接:http://poj.org/problem?id=1635题目大意及思路:给两种树的遍历结果,判断它们是否是同一棵树,网上都说是树的最小表示,就是说优先遍历深度大的子树,自己感觉还是理解得不是很清楚,我太水了。。做法就递归,得到子树的最小表示后,将各子树得到的序列排序即可。#include#include#include#include#include#include
2012-03-30 20:40:42 1281 3
原创 poj 1633 Gladiators
题目链接:http://poj.org/problem?id=1633题目思路:用dp[i][j]记录有i个障碍,难度为j的方法数,它是从长度为i-1的情况加一个更高的障碍得到,由于只有高的才能放到低的两个平台之间,所以这时最高的还没有分开,对于前面的i-1个障碍相当于2*(i-1)个平台,由于最高只能插到相临两个平台之间,又由于插到递增平台之间难度不变,其余情况难度增加1,易得方程。im
2012-03-30 16:42:02 935
原创 poj 1513 Scheduling Lectures
题目链接:http://poj.org/problem?id=1513题目大意及思路:求将n个topic,分配到lecture中,使lecture数尽量小,然后使不满意度最小,先贪心求得最少lecture数,再dp,dp前先预处理出每一段的界,这样可以大大缩短时间。我的从500ms优化到16ms.#include#include#include#include#include#i
2012-03-29 17:12:06 836
原创 poj 1505 Copying Books
题目链接:http://poj.org/problem?id=1505题目大意及思路:m个抄写员抄写n篇文章,使工作量最大的尽量小,且输出最小字典序。有两种方法可以做,dp和二分答案,二分答案较快。dp:#include#include#include#include#include#include#include#include#include#include#i
2012-03-29 13:42:42 679
原创 poj 1475 Pushing Boxes
题目链接:http://poj.org/problem?id=1475题目大意及思路:我用的普通的优先队列bfs效率比较低,主要是有很多冗余状态,据说可以双重bfs,因为推的次数最少是主要目标,所以可以作为外层bfs,walk则作为内层bfs.#include#include#include#include#include#include#include#include#i
2012-03-28 21:04:59 767
原创 poj 1432 Decoding Morse Sequences
题目链接:http://poj.org/problem?id=1432题目大意及思路:计算一段文摩斯码可能的译文种数,定义dp[i]为前i个摩斯码的种数,然后枚举最后一个单词的摩斯码长度,将所有可能加起来;要注意的是有些单词的摩斯码相同。#include#include#include#include#include#include#include#include#incl
2012-03-28 15:58:02 1123
原创 poj 1414 Life Line
#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f#define Max 110int max(int a,int b){ return a>b?a:b;}
2012-03-28 13:57:54 570
原创 poj 1390 Blocks
题目链接:http://poj.org/problem?id=1390题目大意及思路:见黑书123页,很巧妙的一个dp,定义dp[i][j][k]为从第i到第j段方块且在最后加上k个与第j段方块颜色相同的方块的最大得分。其中k是为了dp而人为加上的东西,从而得到问题的解。#include#include#include#include#include#include#inclu
2012-03-28 11:24:39 495
原创 poj 1323 Game Prediction
题目链接:http://poj.org/problem?id=1323题目大意及思路:先将手上的牌排序,然后从小到大扫描,如果存在比当前数大且未标记的数,则输的轮数++。#include#include#include#include#include#include#include#include#include#include#includeusing namesp
2012-03-27 21:14:57 477
原创 poj 1293 Duty Free Shop
题目链接:http://poj.org/problem?id=1293题目大意:01背包,水题。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f#defi
2012-03-26 21:38:16 655
原创 poj 1240 Pre-Post-erous!
题目链接:http://poj.org/problem?id=1240题目大意:给定一棵K叉树的先序遍历和后序遍历,问有多少种这样的树。因为字符串的每个字符都是不同的,所以可以确定一个根节点下有几个儿子和每棵子树所在的区间。用递归实现即可。#include#include#includeusing namespace std;int c[22][22];int m;
2012-03-26 14:39:12 864
原创 poj 1239 Increasing Sequences
题目链接:http://poj.org/problem?id=1239题目大意:求使最后一个数最大且前面的数尽量大的加逗号方式,两次dp,先从前到后求得最后一个数,然后反向dp,求出满足条件且当前数最大的方案。需要注意的是最后一段可加0.#include#include#include#include#include#include#include#include#incl
2012-03-25 21:49:58 844
原创 poj 1192 最优连通子集
题目链接:http://poj.org/problem?id=1192题目大意:求一棵树的最大权连通子集,开始做树形dp的时候错误的认为整棵子树都要加进去,后来才发现错误。#include#include#include#include#include#include#include#include#include#include#includeusing names
2012-03-24 22:39:42 652
原创 poj 1191 棋盘分割
题目链接:http://poj.org/problem?id=1191题目大意:见黑书116页。#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3
2012-03-24 20:07:38 504
原创 poj 1187 陨石的秘密
题目链接:http://poj.org/problem?id=1187题目大意:求出指定要求的字符串的种数,用dp[a][b][c][d]记录有a个{},b个[],c个()深度为d的字符串的个数,然后枚举左边一段外层加括号的状态,与右边对应状态相乘即可。#include#include#include#include#include#include#include#inclu
2012-03-24 13:43:20 1060 1
原创 poj 1185 炮兵阵地
题目链接:http://poj.org/problem?id=1185题目大意,在保证不互相攻击的条件下放炮兵,开始题意理解有误,写了很久都没有写出来,这是一个比较好的状态压缩dp,先将一行的所有可能状态搜出来,再枚举所有可能状态逐行dp,这个题要枚举前两行状态,当然也可以用3进制。#include#include#include#include#include#include
2012-03-24 10:13:08 404
原创 poj 1180 Batch Scheduling
题目链接:http://poj.org/problem?id=1180题目大意:见黑书153页,哎,因为一个细节wrong了很久,我太水了#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define
2012-03-23 16:49:45 425
原创 poj 1170 Shopping Offers
题目链接:http://poj.org/problem?id=1170题目大意:完全背包。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f#define
2012-03-22 22:21:30 414
原创 poj 1141 Brackets Sequence
题目链接:http://poj.org/problem?id=1141题目大意:不解释。我的代码比较慢,主要是每次都合并字符串,也可以记录分割位置,最后确定输出。#include#include#include#include#include#include#include#include#include#include#includeusing namespace
2012-03-22 15:40:04 365
原创 poj 1112 Team Them Up!
题目链接:http://poj.org/problem?id=1112题目大意:把n个人分成两组;组内成员相互之间必须认识。做法是如果两个人不是相互都认识则建边,用dfs搜出连通分量,然后dp,具体见其他人的博客。#include#include#include#include#include#include#include#include#include#include
2012-03-21 21:40:17 630
原创 poj 1093 Formatting Text
题目链接:http://poj.org/problem?id=1093题目大意:将一段文字重新排版,每行有n个字符,问最优方案,从后往前dp,令dp[i]为以第i个单词开始到结束的最小badness,并用p[i]记录以i开始的这一行的结束的单词,然后从前往后输出,则能保证空格排列的字典序最小。#include#include#include#include#include#inc
2012-03-21 15:18:35 1064
原创 poj 1074 Parallel Expectations
题目链接:http://poj.org/problem?id=1074题目大意,求两个程序并行运行各个变量的期望值,都说黑书上讲的有问题,那应该就有问题吧。解法:这里copy一下大牛的:设状态 T[ i ][ j ] 为程序1执行i条指令,程序2执行j条指令后的变量平均值,P1为当前状态发生且最后执行程序1指令i的概率,P2为当前状态发生且执行程序2指令j的概率 则可以推出,T[
2012-03-21 10:18:47 1847
原创 poj 1062 昂贵的聘礼
题目链接:http://poj.org/problem?id=1062这个题是一个简单的树形dp,只是有一个地位差限制,可以枚举可行区间,在可行区间里进行dp.#include#include#include#include#include#include#include#include#include#include#includeusing namespace s
2012-03-18 17:33:16 424
原创 poj 1038 Bugs Integrated, Inc.
题目链接:http://poj.org/problem?id=1038题目解析黑书139,很好的题。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f#
2012-03-18 15:28:13 526
原创 hdu 2859 Phalanx
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2859题目坑爹啊!原来以为要O(n^2)才能过,没想到是n^3的复杂度,10^9方的题都可以出,太没天理了。。。#include#include#include#include#include#include#include#include#include#include#i
2012-03-16 19:29:20 574
原创 hdu 2861 Stools
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2861题意就是n个板凳有m个人坐,求刚好将序列分成k段的方式,用dp[i][j][k][0]和dp[i][j][k][1]记录最后一根板凳没有人和有人的方法数依次递推。开始看到这道题的时候以为要推组合学公式,后来听学长讲才知道只是一个递推而已,所以以后一定要多注意数据范围,以免偏离思考方向。#i
2012-03-16 16:16:00 531
原创 poj 1037 A decorative fence
题目链接:http://poj.org/problem?id=1037这道题的解析见黑书257页,后面的答案搜索花了我不少时间,后来想到了从后向前还原的方法,还是相当不错的。#include#include#include#include#include#include#include#include#include#include#includeusing na
2012-03-16 13:15:49 531
原创 hdu 2858 Oil on the Mars
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2858 这个题目意思开始一直没理解清楚,后来看了一个大牛的代码才理解到,其实就是选一个有k个方格的区域,区域的轮廓线没有凹陷,我们可以一行一行的处理,易知每行必须是连续区域(不然会出现凹陷),然后用dp[k][l][j][nl][nr][level][row]记录最后一行的行号为row,还要
2012-03-15 21:59:22 840
原创 poj 1036 Gangsters
题目链接:http://poj.org/problem?id=1036 这道题是用dp[i]记录第i个强盗成功进入的最优值。#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std
2012-03-14 12:54:34 455
原创 poj 1029 False coin
题目链接:http://poj.org/problem?id=1029 明明是一道标记题,为啥被归到dp里去了,真是无解啊!#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define i
2012-03-13 19:31:21 439
原创 poj 1015 Jury Compromise
题目链接:http://poj.org/problem?id=1015 这道题是一个三维dp,用dp[i][j][k]记录前i个人中选j个人,辨控差是k的最大辩控和。网上还一种二维的方法,但正确性不好证明,而且复杂度是一样的,所以还是觉得这个方法好些。#include#include#include#include#include#include#include
2012-03-12 20:58:54 525
原创 poj 2018 Best Cow Fences
题目链接:http://poj.org/problem?id=2018这道题参考了周源的论文: 最后一个问题就是如何求过pt点,且与折线相切的直线了。一种直接的方法就是二分,每次查找的复杂度是O(log2N)。但是从图形的性质上很容易得到另一种更简便更迅速的方法:由于折线上过每一个点切线的斜率都是一定的3,而且根据下凸函数斜率的单调性,如果在检查点Pt 时找到了折线上的已知一个切点A
2012-03-07 09:46:56 570
原创 hdu 3874 Necklace
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3874 这道题目以前做过,再做的时候却忘了,可能当时也不完全是自己想出来的,印象不深,这里用到了离线算法,先将询问排序,然后用树状树组进行操作,如果一个价值没有出现过,则将其位置加上相应价值,如果出现过,则在当前位置加上该价值,而在已经出现过该价值的位置删除该价值,相当于一个移位操作,保证
2012-03-07 09:35:25 594
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人