暴力
Ghostkkkk
这个作者很懒,什么都没留下…
展开
-
HDU - 6430 TeaTree 启发式合并
题意给你一个树,每个点有个权值v[i]。每两个点i, j会告诉他们的LCA一个值gcd(v[i], v[j])。现在问每个点所听到的最大的值。n <= 1e5, v[i] <= 1e5题解树上启发式合并。对于每个节点,用set记录它的子树存在哪些因子, 取所有出现两次的因子的max。要求出这个set,我们对于它所有的儿子的set,看哪个大,每次把小的一个...原创 2018-08-22 22:41:56 · 226 阅读 · 0 评论 -
牛客练习赛14 E.无向图中的最短距离 暴力bitset
链接:https://www.nowcoder.com/acm/contest/82/E来源:牛客网 题目描述有一个n个点的无向图,有m次查询,每次查询给出一些(xi,yi)令dist(x,y)表示x和y点在图中最短距离,dist(x,x)=0,如果x,y不连通则dist(x,y) = inf每次查询图中有多少个点v与至少一个这次询问给出的(xi,yi)满足dist(v,xi)...原创 2018-10-18 21:38:31 · 161 阅读 · 0 评论 -
741D - Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths 树上启发式合并
题意:给你一棵树,每条边有个字符,问对于每个节点,他的子树中最长的好路径是多长。好定义为把路径中字符排列后可以变成回文。题解:路径可以成回文条件是出现次数为奇数的字符数量 <= 1。对于每个点我们用二进制记录他到根节点路径的异或和d[i](把每个字符看成一位)。那么任意路径出现的字符次数就是 d[i] ^ d[j] 。现在要求每个子树,启发式合并即可。还可以用...原创 2018-10-15 20:53:51 · 217 阅读 · 0 评论 -
Gym - 101669L Divide and Conquer 树上启发式合并
题意:给你一个图,这个图由两个树构成,问全局最小割和方案数。题解:至少一个点度数不超过3,所以答案不超过3。所以一定有一个树只割了一条边,枚举割的边,看子树和非子树点在第二颗树有多少个连边就行了。用启发式合并。代码:#include <bits/stdc++.h>#ifdef LOCAL#define debug(x) cout<<#x<...原创 2018-10-15 17:16:40 · 334 阅读 · 0 评论 -
SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛 B.我觉得海星
https://nanti.jisuanke.com/t/26016给定一个简单无向图,请你判断这个图是否海星,一个图海星当且仅当它内部存在五个互不相同的点 A,B,C,D,EA,B,C,D,E,满足点对<A,C><A,C>, <A,D><A,D>,<B,D><B,D>, <B,E><B,E&am原创 2018-10-18 17:15:29 · 261 阅读 · 0 评论 -
Wannafly挑战赛19 F. K串 莫队
链接:https://www.nowcoder.com/acm/contest/131/F来源:牛客网 题目描述ZZT 得到了一个字符串 S 以及一个整数 K。WZH 在 1995 年提出了“优雅 K 串”的定义:这个字符串每一种字符的个数都是 K 的倍数。现在 ZZT 想要对字符串进行 Q 次询问,第 i 次询问给出一个区间 [Li, Ri],他想计算 [Li, Ri] 中有多少...原创 2018-10-18 12:55:49 · 201 阅读 · 0 评论 -
CF 906B - Seating of Students 随机 乱搞 技巧
题意:给你一个N * M 的表,第i行j列的数是 (i - 1) * m + j,现在要重新安排数的位置,问你有没有一种方案使得原来相邻的数现在不相邻。题解:随机乱搞。给了两秒,我们设置程序执行了1.9秒时退出随机,输出NO。while (clock() < 1.9 * CLOCKS_PER_SEC)一开始直接用random_suffle,暴力判断当前是否可行,如果不...原创 2018-09-19 20:25:40 · 330 阅读 · 0 评论 -
CF 903E - Swapping Characters 暴力 思维
题意:给你k个串,每个串长度都是n,现在问你是否可能这些串是同一个串交换两个位置的字符所产生的,输出这个原串。k <= 2500, n <= 5000, k * n <= 5000题解:一开始我想的是,对k个串,全部n^2交换一下,然后hash存在map里面,看哪些串出现了k次,这些串是可以的,但是复杂度是,还是不能过。然后我想,只要对第一个串进行交换即可...原创 2018-09-14 13:28:53 · 286 阅读 · 0 评论 -
CF 888G - Xor-MST 分治 贪心 字典树 启发式合并
题意:给你一个n个数,每两个数之间边的权值是a[i] ^ a[j]。问最小生成树大小。题解:最小生成树可以用kruskal思想。(其实应该是Boruvka算法,这里记录一下)每次选择最小的边。我们建立一颗01字典树,那么很明显对于一颗子树内的点,他肯定也是连这个子树内的点最好,然后每个子树就会构成一个联通块,去连一条最小的边到兄弟子树,如此递归。相当于每次把两颗子树合并...原创 2018-09-17 21:35:39 · 293 阅读 · 0 评论 -
CF 965E Short Code 贪心 字典树 启发式合并
题意:给你N个字符串,每个字符串可以缩写为他的前缀,但是必须保证所有串缩写后不重复,并且最后总长度最小。题解:先建立字典树,然后我们可以想到,在dfs的时候,如果当前节点本来没有串,那么他可以存他子树中某个串,我们用优先队列找到他子树的最长的节点,然后把这个节点代表的串用当前节点串代替,这样贪心即可。但是对于每颗子树都要建立一个优先队列存他子树中所有的串长。对于这点我们可以用启发式...原创 2018-09-06 21:35:30 · 167 阅读 · 0 评论 -
CF 963D - Frequency of String AC自动机 均摊复杂度
题意:给你一个串和q次询问。每次询问给你一个k和一个字符串qi,问你原串当中包含这个字符串k次的最短子串长度是多少。每次询问的子串不同。 <= 1e5.题解:试想,如果对于每个查询串i每我们知道了他在原串中 出现的位置集合Ri,那么这个串我们可以通过|Ri|的时间找到答案。对于所有的串,要找到他的Ri,其实只要把他们插入AC自动机里面,然后用原串进行匹配即可。...原创 2018-09-11 23:58:14 · 309 阅读 · 0 评论 -
CF 1009F - Dominant Indices 树上启发式合并
题意:给你一颗有根树,定义每个节点的答案为i,当i是他子树中所有与他的距离中,数量最多的最小距离。题解:树上启发式合并。记录深度的次数最大值即可。代码:#include <bits/stdc++.h>#ifdef LOCAL#define debug(x) cout<<#x<<" = "<<(x)<<endl...原创 2018-10-21 23:25:19 · 268 阅读 · 0 评论