构造法
Chen丶HC
这个作者很懒,什么都没留下…
展开
-
例题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 · 265 阅读 · 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 · 313 阅读 · 0 评论 -
习题8-2 聚会游戏(Party Games, Mid-Atlantic 2012, UVa1610)
思路:构造题,挫败感max。orz。。。。容易想到ans为sort后中间两个字符串a,b之间的串。由于要求长度以及字典序最小,可以按照这两个来枚举构造。若某长度无解,则ans加上a串的当前字符。#include #include #include #include #include #include #include #include #include #incl原创 2017-12-22 22:12:44 · 261 阅读 · 0 评论 -
习题8-3 比特变换器(Bits Equalizer, SWERC 2012, UVa12545)
思路:我还蛮怕这种题的。。。。首先计算1的个数,若s多余t显然无解,之后先假设所有的问号变为t中对应字符。再次计算st中1的个数,若不等说明问号处有问题,则问号处部分不变为1。dif为不同数,dif += abs(s1 - t1)为总的不同处,ans = ? + dif/2。#include #include #include #include #include #inc原创 2017-12-23 15:38:13 · 248 阅读 · 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 · 281 阅读 · 0 评论 -
UVA 1614 Hell on the Markets (思维 + 构造)
思路:关键在于1 结论:[1, sum(i)] 可以由 [a1, ai]组成。证明 : 数学归纳法,n = 1显然成立,假设n = i成立对n = i + 1时,需要凑出[sum(i) + 1, sum(i) + a(i +1)]由于sum(i) >= i, 1 实现:排序后从大往小取,由结论sum/2可得,进而sum/2 - ai, 可由[a1, ai-1]得到,可知最原创 2017-12-30 18:23:12 · 172 阅读 · 0 评论 -
习题8-6 起重机(Crane, ACM/ICPC CERC 2013, UVa1611)
思路:选择排序的思想,每个数最多经过两次翻转到达正确位置。有点疑问:复杂度不是n方么。。。怎么能过。。。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2017-12-29 11:39:04 · 307 阅读 · 0 评论 -
习题8-7 生成排列(Generating Permutations, UVa11925)
思路:冒泡排序的思想。题目要求从123 -> 到213,可以转换一下 从无序到有序可以用冒泡解决123 -> 213, 213变为123则123->213,同理123 -> 231等价于312 -> 123。注意处理多余的2操作即可。#include #include #include #include #include #include #include #incl原创 2017-12-29 17:30:55 · 266 阅读 · 0 评论