嘟嘟嘟 题面:把一句话加密:1.所有字母变成小写。2.翻转所有单词。3.去掉空格。然后给你一句加密后的字符串以及一些出现在原句和没有出现在原句的单词,让你还原原句。注意,每一个单词可以使用多次,如果有多个答案,输出其中任意一个。 trie树好题…… 首先都能想到的是把所有单词建成一棵trie树,然后 ...
分类:
其他好文 时间:
2018-10-10 17:11:14
阅读次数:
202
嘟嘟嘟 正如题目所述,这就是一道板子题。 不过身为一道板子题,数据还是非常负(du)责(liu)的。 一点点讲。 1.判断欧拉图 判断无向图是欧拉图就是所有点的度数都是偶数;判断有向图是欧拉图就是所有点的入度等于出度。 但是仅这样是不行的,还有判断图是否连通。这个可以用并查集实现。或者是看dfs经过 ...
分类:
其他好文 时间:
2018-10-10 00:01:01
阅读次数:
165
嘟嘟嘟 今天学了个欧拉回路~ 理解起来感觉不是很难,证明竟然也看懂了。 首先,得认识这么几个名词: 1.欧拉路径:图中存在一条从s到t的路径,使这条路径经过了所有的边,且每条边之经过一次。简单来说就是这张图可以一笔画出来. 2.欧拉回路:就是欧拉回路中s == t。 3.欧拉图:存在欧拉回路的图。 ...
分类:
其他好文 时间:
2018-10-09 20:04:44
阅读次数:
266
嘟嘟嘟 这道题就是区间加一个等差数列,然后最后求每一个数的值。 O(n)做法:二阶差分。 其实就是差分两遍。举个例子 0 0 0 0 0 0 0,变成了 0 2 4 6 8 0 0。第一遍差分:0 2 2 2 2 -8 0,然后在这个差分数组上在进行差分,得到 0 2 0 0 0 10 8,完事。 ...
分类:
其他好文 时间:
2018-10-05 16:04:25
阅读次数:
137
嘟嘟嘟 这其实就是一道树剖板子题,只不过就是写的长了一点。 还是叨叨几点吧: 1.区间取相反数:开一个标记数组,每一次亦或1,然后对应的sum取相反数,Max, Min交换,并且取相反数。 2.题目中给的是边权,但要转化成点权:这条边的边权转化成儿子节点的点权,然后每一次链上操作的时候,x, y的L ...
分类:
其他好文 时间:
2018-09-27 20:11:02
阅读次数:
142
嘟嘟嘟 一看就知道是一道树剖题。 先树剖转换成线性,然后线段树维护。 维护的时候跟酒店那道题有点像,但比那个简单多了。 首先一个sum代表颜色段数量,然后除了lazy之外还有lco,rco分别代表区间左右端点是啥颜色。 合并的时候除了sum[now] = sum[now <<1] + sum[now ...
分类:
其他好文 时间:
2018-09-26 23:54:49
阅读次数:
179
嘟嘟嘟 看到这题目如果想费用流的话就gg了,就像LCA这道题一样,不要被题目迷惑…… 我们考虑Bob,他想让总费用最大,那么他的所有费用一定都加到流量最大的那一条边上。而Alice想让总费用最小,那么就是让流量最大的那一条边最小,自然就想到二分边的容量啦! 不过这道题特殊的地方是要实数二分。其实终止 ...
分类:
其他好文 时间:
2018-09-25 18:29:41
阅读次数:
172
嘟嘟嘟 最小割。 不过割掉边代表付出某一种代价,而题中让求的是利润。所以我们先把完成所有任务的总利润加起来,然后算没有完成任务付出的代价。 建图比较明白: 1.源点向任务连一条边,容量为完成这个任务赚到的钱。割掉代表这个任务没完成。 2.每一个机器向汇点连一条边,容量为买这个机器所花的钱。割掉代表没 ...
分类:
其他好文 时间:
2018-09-24 22:19:14
阅读次数:
236
嘟嘟嘟 看数据范围,加上题中频繁提到的冲突,就可以想到算法是最小割。 1.同意睡觉的,源点就像他连一条容量为1的边。割掉它就代表他背叛了自己的意愿。 2.同理,不同意睡觉的,就像汇点连一条边。 3.考虑每一对朋友。如果两个朋友意见相反,就互相连一条容量为1的边,割掉其中的任意一条就代表朋友之间发生了 ...
分类:
其他好文 时间:
2018-09-24 21:23:37
阅读次数:
187
嘟嘟嘟 这是一道比较经典的最小割模型,对只会最大流却对最小割一窍不通的我来说在适合不过了。 首先,题目中的图片非常良心,细心观察他能得到一个很重要的规律:黄色格子上的骑士只能攻击红色格子上的骑士,反之同理。 因此,我们可以把棋盘进行黑白染色,然后白点放在图的左侧,黑点在图的右侧,有点像二分图的感觉。 ...
分类:
其他好文 时间:
2018-09-24 11:27:08
阅读次数:
152