紫书 第八章 例题
文章平均质量分 74
Chen丶HC
这个作者很懒,什么都没留下…
展开
-
例题8-5 Gergovia的酒交易(Wine trading in Gergovia, UVa 11054)
1. 从右至左,对于每个点,可以看成需求由右边相邻的点来满足。2. 满足左边点的需求的同时改变了自身的需求。3. 把一个点对多个点的需求等价转化为两点之间的需求的转换。#include #include #include #include #include #include #include #include #include #include #include #i原创 2017-11-18 09:37:09 · 318 阅读 · 0 评论 -
例题8-17 不公平竞赛(Foul Play, ACM/ICPC NWERC 2012, UVa1609)
思路:n = 2时,只要满足条件,目标队伍便能获胜。采取递归分治的解法,每一步构造出满足条件的状态。对每一步的构造方法:首先选取黑色队与灰色队配对;再配对目标队;优先黑色队配对;剩下任意配对。数据读入可以用char存储,%s输入。#include #include #include #include #include #include #include #原创 2017-12-07 20:47:10 · 293 阅读 · 0 评论 -
例题8-16 不无聊的序列(Non-boring sequences, CERC 2012, UVa1608)
思路:若序列中存在某个只出现一次的元素,横跨此元素左右的序列必然ok,只需考虑左右序列。由此T(n) = T(k-1) + T(n - k) + T(find唯一元素)。预处理出每个元素左右相同元素的位置,则可以以T(find) = O(n)。优化查找方式,每次从序列的左右两端同时查找,最坏情况T(n) = O(nlogn)。orz.真的好困难,步履维艰。。。两种不同的查找原创 2017-12-06 22:02:08 · 375 阅读 · 0 评论 -
例题8-7 唯一的雪花(Unique snowflakes, UVa 11572)
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define SF(a) scanf("%d", &a)原创 2017-11-18 20:03:43 · 221 阅读 · 0 评论 -
例题8-8 防线(Defense Lines, ACM/ICPC CERC 2010, UVa1471)
1. 容易想到,预处理i开头与结尾的最大长度,枚举i,j的n方做法。2. 优化在于已知i如何快速寻找一个j。3. 考虑一种情形,a1 g2,显然可以舍去后者。4. 那么我们用set维护(a, g),在加入时不断舍去冗余,这也是一种单调的思想。5. 可以发现在set中,a最大的g也一定最大,即对于此时i的最优解。#include #include #include #incl原创 2017-11-19 10:42:04 · 351 阅读 · 0 评论 -
例题8-14 与非门电路(Gates, ACM/ICPC CERC 2001, UVa1607)
虽然能够明白从0……000到1……111中必然会有一个交接点。但是他们之间并没有单调的关系吧?何以二分答案?#include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2017-12-03 20:13:02 · 510 阅读 · 0 评论 -
例题8-15 Shuffle的播放记录(Shuffle, ACM/ICPC NWERC 2008, UVa 12174)
思路:枚举前s个数作为开头的情况。首先,可以运用滑动窗口法来预处理出所有点起始长为s的排列是否存在,复杂度为O(n)。接着,check的过程复杂度为s*n/s, 同样为O(n)。#include #include #include #include #include #include #include #include #include #include #inclu原创 2017-12-06 09:44:00 · 234 阅读 · 0 评论 -
例题8-13 环形跑道(Just Finish it up, UVa 11093)
纸上模拟下,容易发现结论。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define原创 2017-11-23 21:36:06 · 205 阅读 · 0 评论 -
例题8-4 传说中的车(Fabled Rooks, UVa 11134)
由于行列之间是没有任何联系的,可以把行列分开来讨论。。orz。。memset使用错误。。在函数中sizeof指针无法清零。考虑区间与点的对应时,可以由区间来选点,也可以由点来选区间,对于每个点,选择以该点为起点,长度最小的区间。#include #include #include #include #include #include #include #include原创 2017-11-16 11:11:14 · 322 阅读 · 0 评论 -
例题8-3 和为0的4个值(4 Values Whose Sum is Zero, ACM/ICPC SWERC 2005, UVa 1152)
用map效率有点低啊,tle了。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define SF(a)原创 2017-11-15 19:11:20 · 229 阅读 · 0 评论 -
例题8-2 联合国大楼(Building for UN, ACM/ICPC NEERC 2007, UVa1605)
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define SF(a) scanf("%d", &a)原创 2017-11-14 22:17:52 · 331 阅读 · 0 评论 -
例题8-1 煎饼(Stacks of Flapjacks, UVa120)
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define SF(a) scanf("%d", &a)原创 2017-11-14 21:57:27 · 277 阅读 · 0 评论 -
例题8-12 奇怪的气球膨胀(Erratic Expansion, UVa12627)
首先由图形很容易想到递归求解。采用分治的方法,分别计算出B行之前和A-1行之前的红气球总数,那么A~B行的气球总数就是两者相减。#include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2017-11-19 21:21:45 · 352 阅读 · 0 评论 -
例题8-11 全部相加(Add All, UVa 10954)
裸的huffman编码。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define原创 2017-11-19 20:25:35 · 324 阅读 · 0 评论 -
例题8-10 抄书(Copying Books, UVa 714)
思路:先二分求出最值,再由最值逆序进行区间划分,由k值补上额外划分。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inclu原创 2017-11-19 20:14:42 · 215 阅读 · 0 评论 -
例题8-9 平均值(Average, Seoul 2009, UVa1451)
待补原创 2017-11-19 19:27:37 · 353 阅读 · 0 评论 -
例题8-6 两亲性分子(Amphiphilic Carbon Molecules, ACM/ICPC Shanghai 2004, UVa1606)
1. 运用了扫描法,并在扫描的过程中动态的维护计数,简化了计算。2. 运用了等价转化的思想,把所有黑点关于中心对称化为白点,便可只计算一侧的白点数。3. 由叉积的性质,可以扫描一侧的点,并避免了浮点运算。4. 扫描操作设立一条轴l,枚举所有点,另一条轴r用来扫描,第一次扫过π角度,之后动态维护。5. 在扫描操作中,要注意避免死循环。摘自https://www.cnblogs.c原创 2017-11-18 14:37:38 · 406 阅读 · 0 评论 -
例题8-18 洞穴(Cave, ACM/ICPC CERC 2009, UVa1442)
思路:若某点水位为h,那么从此h向左右延伸都小于等于ceil,不触碰ceil。一次扫描维护两边复杂度为O(n^2),显然不可行。所以扫描两次,第一次扫描使得每点h为左延伸不碰壁的最大高度。注意当此时水位h h1与h2皆为满足单条件的最大值,min(h1, h2)即为所求点水位高度最大值。#include #include #include #include #inclu原创 2017-12-08 10:23:18 · 289 阅读 · 0 评论