紫书 第七章 例题
文章平均质量分 76
Chen丶HC
这个作者很懒,什么都没留下…
展开
-
例题7-9 万圣节后的早晨(The Morning after Halloween, Japan 2007, UVa1601)
思路:同为bfs求解最少步数,问题在于状态如何更好地枚举。无法开256^3的数组,利用题中2*2格中必有*的条件,改矩阵图为存边的图,点则变为144个,可存数组。#include #include #include #include #include #include #include #include #include #include #include #includ原创 2017-10-18 22:05:53 · 769 阅读 · 0 评论 -
例题7-8 倒水问题(Fill, UVa 10603)
1. 粗略估计状态数不超过40401,枚举所有状态,来搜索最接近的d。2. 本题的目标是倒水量最少,定义从状态s到状态v的边权为vol,类似dijkstra做法。#include #include #include #include #include #include #include #include #include #include #include #includ原创 2017-10-15 09:52:31 · 528 阅读 · 0 评论 -
例题7-7 天平难题(Mobile Computing, ACM/ICPC Tokyo 2005, UVa1354)
思路:由于每种天平都对应着一种二叉树,所以枚举出所有的二叉树。关键在于如何去枚举这些情况呢?想了好久。。。还是实现不出来。。orz。。参考了lls的代码。。受益匪浅。。1. 枚举子集:for (int left = (subset - 1)⊂ left; left = (left - 1)&subset)2. 求补集:int right = left^subset原创 2017-10-10 21:56:46 · 564 阅读 · 0 评论 -
例题7-6 带宽(Bandwidth, UVa 140)
注意要先为出现的节点进行编号。而且还要按字典序而非出现顺序。dfs枚举排列。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2017-09-30 11:00:04 · 416 阅读 · 0 评论 -
例题7-5 困难的串(Krypton Factor, UVa 129)
这题乍一看好像是子集生成诶。。主要问题就在于没添加一个字符后判断是否有连续相同子串。。由于对每个串而言,所有的前缀都是已经判断过无相同的。。所以只需要判断后缀即可。#include #include #include #include #include #include #include #include #include #include #include #inc原创 2017-09-28 19:06:11 · 301 阅读 · 0 评论 -
例题7-4 素数环(Prime Ring Problem, UVa 524)
很直白的枚举排列问题。。用回溯法减少枚举量。。water。。用vis数组来加速判断。。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ原创 2017-09-28 10:10:00 · 325 阅读 · 0 评论 -
例题7-3 分数拆分(Fractions Again?!, UVa 10976)
water...依旧是选择枚举变量来减少枚举量。。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #defi原创 2017-09-26 22:50:04 · 229 阅读 · 0 评论 -
例题7-2 最大乘积(Maximum Product, UVa 11059)
通过枚举左右区间来枚举连续子序列。。这数据,随便瞎搞。。。还是迷之wa了几发。。QAQ。。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #incl原创 2017-09-26 22:15:48 · 275 阅读 · 0 评论 -
例题7-1 除法(Division, UVa 725)
部分枚举对象可以求出来,由此来减少枚举量。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define C原创 2017-09-26 21:46:20 · 426 阅读 · 0 评论 -
例题7-13 快速幂计算(Power Calculus, ACM/ICPC Yokohama 2006, UVa1374)
选择适当的枚举策略,使得无需枚举整层树就能得到解。这题选择了优先使用刚得到的数,且先加法后减法。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2017-10-21 15:25:45 · 317 阅读 · 0 评论 -
例题7-12 旋转游戏(The Rotation Game, Shanghai 2004, UVa1343)
如果用bfs进行状态空间搜索,分三次搜索,每次的状态数为C(24, 8) = 735471。每次只存8个点的位置,并映射为一个16位的longlong,用set来判重。状态搜索时,打一个表,对应24个坐标与8种移动的关系。映射成longlong与解码的代价都不小,感觉不太行。用IDA*来搜索,乐观估值函数定义为centre中最少的不同数的个数,每次最多修改一个。对于这种状态数超原创 2017-10-21 11:57:16 · 250 阅读 · 0 评论 -
例题7-14 网格动物(Lattice Animals, ACM/ICPC NEERC 2004, UVa1602)
思路:主要是旋转,平移,翻转后的判重。平移可以把坐标定义成相对某点的偏移量。旋转则是坐标(x, y) -> (-y, x), 顺时针旋转90°。翻转为(x, y) -> (x, -y), 关于x轴进行翻转。先占坑,代码日后补上。原创 2017-10-29 11:15:58 · 385 阅读 · 0 评论 -
例题7-11 宝箱(Zombie's Treasure Chest, Shanghai 2011, UVa12325)
分类枚举#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define CLEAR(a, b) memset原创 2017-10-20 22:21:12 · 223 阅读 · 0 评论 -
例题7-10 编辑书稿(Editing a Book, UVa 11212)
1. 三种加速策略都得不到正解?2. 枚举插入的方式值得学习。3. 通过打表得出解#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #incl原创 2017-10-20 09:10:14 · 283 阅读 · 0 评论 -
例题7-15 破坏正方形(Square Destroyer, ACM/ICPC Taejon 2001, UVa1603)
占坑。。完全没有想法。。原创 2017-11-12 09:13:57 · 450 阅读 · 0 评论