补题
lixuwei2333
这个作者很懒,什么都没留下…
展开
-
Forest Game 【期望】【点分治】【FFT】
题目链接:https://vjudge.net/problem/Gym-101234D题目大意:给一颗树,共N个点,每次随机选择一个点,得分加上该点所在树的大小,然后删除这个点,断开与其相连的所有边,问删完所有点所获得的 期望得分乘N! 是多少。emmm被这个乘N! 给坑了,以为这是个假的期望题目,因为全排列共N!种, 期望乘N! 其实就是全排列的和,觉得这是出题人留的解题思路.......原创 2019-11-07 18:49:40 · 195 阅读 · 0 评论 -
Frank Sinatra【树上莫队】【分块】【区间mex】
题目链接:https://vjudge.net/problem/Gym-100962F题目大意:给你一棵树,边有边权,每次询问一条链上边权集合的mex。用莫队加分块维护区间mex。有一个很重要的点是,边权最大到1e9,但是显然大于 N 的权值对答案一定没有贡献,这样的话数组就可以开的下了。#include <bits/stdc++.h>#define rep(...原创 2019-10-25 16:46:31 · 419 阅读 · 0 评论 -
Marbles 【状压dp】
题目链接:https://vjudge.net/problem/Gym-102348C一个特别好的状压dp题目,但是突然有点懒,不想写题解了,直接发代码吧。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#define per(i, a, b) for(int ...原创 2019-10-18 15:59:06 · 155 阅读 · 0 评论 -
Ehab and the Big Finale【交互】【树链剖分】
题目链接:https://codeforces.com/contest/1174/problem/F参考题解:https://dudulu.net/blog/?p=1696#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#define per(i, a, b) ...原创 2019-06-04 21:34:45 · 239 阅读 · 0 评论 -
飞行棋【概率dp+高斯消元+矩阵快速幂】
题目链接:https://cometoj.com/contest/59/problem/E输入包含两个正整数d和k,分别代表璇璇的棋子到终点的距离d以及骰子的面数 。首先考虑一般情况下的状态转移方程, dp[u]表示以u为起点,到终点的期望步数。显然 dp[d] = 0 ,dp[0]为最终答案。然后我们发现当u+i > d的时候会从 d-(u+i-...原创 2019-08-01 09:42:33 · 389 阅读 · 0 评论 -
Coprimes(从 i 位置往后第一个与其互质的数的位置)
bitset维护每个质因子出现的位置从后往前跑,每次找到一个位置使该数的所有质因子都没有出现过。把该数的所有质因子的bitset或起来,然后找从当前位置往后的第一个0位置。取反后用bitset的_Find_first函数可以解决。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i &...原创 2019-08-19 10:47:52 · 214 阅读 · 0 评论 -
菜菜种菜 Comet OJ - Contest #8
题目链接:https://cometoj.com/contest/58/problem/D?problem_id=2758对于第i个点,记录他左右距离最近的直接到达点的编号,分别为le[i]和ri[i]。当且仅当询问区间[L,R] ,满足 L<=i&&R >=i &&L>le[i]&& R< ri[i] 时第i号节点会...原创 2019-08-10 09:47:28 · 166 阅读 · 0 评论 -
Rikka with Travels【换根树dp】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6686不写题解了,写不动还有其他简单的做法#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#define per(i, a, b) for(int i = (a);...原创 2019-08-20 08:59:15 · 272 阅读 · 2 评论 -
Acesrc and Travel【换根树dp】
考虑固定根(起点)情况下的最优解,可以用dp容易求出。考虑换根操作,假设当前根为u,需要换成v。(v是以1为根情况下u的子节点)那么需要保证v->u后,u不能再返回v,所以需要记录最优值和次优值。当发现u的最优值不经过v,用最优值对v进行转移,否则用次优值进行转移。基本做法就是这样,但是在实际写代码的过程中,发现了2种需要特判的情况。第一种:在写dfs2时发现u没有次优解...原创 2019-08-15 10:05:37 · 192 阅读 · 0 评论 -
Make Rounddog Happy【序列分治+DP】
DP维护从某点 往后/往前 遇到的第一对非法点对。然后分治计数,合并的时候根据最大值是 由左区间贡献还是右区间贡献 来进行分类,注意去重。可以枚举左/右区间端点,这样即能固定最大值也能固定剩余区间的长度。复杂度O(NlogN)#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (...原创 2019-08-22 08:13:30 · 294 阅读 · 0 评论 -
Continuous Intervals【单调栈】【合法区间计数】
题目链接:https://nanti.jisuanke.com/t/41296从左到右枚举右端点,然后求合法的左端点的个数。用max表示区间最大值,min表示区间最小值,cnt表示区间不同数的个数。合法需要满足max-min-cnt == -1用单调栈可以找到每次添加右端点后,最大值和最小值需要更新的区间。(都是以R为右端点)用unordered_map可以找到区间内不同数的个...原创 2019-09-06 17:15:45 · 296 阅读 · 0 评论 -
No Link, Cut Tree!【长链剖分】【dsu on tree】
题目链接:https://vjudge.net/problem/Gym-101484F原题目给的是一棵完全二叉树,所以暴力就可以过。这里假设它是一颗一般树,那么可以用dsu on tree+线段树用O(N*logN*logN)的时间复杂度解决,或者用长链剖分+线段树+前缀最大值+后缀最大值做到O(N*logN)的时间复杂度。dsu on tree 做法如下:线段树维护当前每层的剩余...原创 2020-06-20 17:41:12 · 293 阅读 · 0 评论 -
【启发式合并】【主席树】HDU - 6504 - Problem E. Split The Tree
题目链接:https://cn.vjudge.net/problem/HDU-6504做法一:启发式合并,用unorder_map维护每个子树的颜色信息。需要用到第x个颜色的总数,和第x个颜色在第i棵子树内的个数来判断删除第i棵子树后的答案变化。#include<bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i ...原创 2019-05-06 19:40:48 · 253 阅读 · 2 评论 -
南昌网络赛 tsy's number【莫比乌斯函数卷欧拉函数】
题目链接:https://nanti.jisuanke.com/t/38226sum可以分块求,F(T)和T*T*T放到一起计算前缀和就可以了。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#define ll long longusing namespa...原创 2019-05-04 19:35:24 · 237 阅读 · 0 评论 -
2015长春区域赛 Count a * b 【唯一分解】【积性函数】
参考题解地址:https://blog.csdn.net/firstlucker/article/details/49336427上面倒数第二行写错了点东西,应该是 k*n/k = n.最后应该是因子的平方和-n*因子的个数。#include <bits/stdc++.h>#define rep(i, a, b) for(int i =(a); i <= ...原创 2019-04-27 12:08:18 · 189 阅读 · 0 评论 -
洛谷-货车运输
训练赛遇到了和货车运输一模一样的题:https://vjudge.net/contest/287775#problem/J没有想到最大生成树,当时考虑到了删除无效边,但是并没有意识到删除之后图会退化成树,也没有意识到先对边进行排序。思路:1. 空间不够开N*N,所以不可能直接记录2点之间的答案。2. 所以对于每次查询可能是logn内解决。3. 应该有一些边是没有用的。...原创 2019-03-13 16:23:42 · 172 阅读 · 0 评论 -
至多删三个字符可获得多少个不同字串【dp】
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805046946938880以下全是废话,推荐题解:https://blog.csdn.net/trany_lin/article/details/88358625题面十分简洁清晰,一眼上去好像是个比较可做的题目。但是仔细想想又会发现存在一些不...原创 2019-03-25 17:30:36 · 416 阅读 · 0 评论 -
Patches 漏洞修补 Gym - 101473I 【环形dp】
题目链接 :https://cn.vjudge.net/problem/Gym-101473I#题目大意:在一个环上有N个洞,2种长度不同数量无限的补丁。问最少用多少长度的补丁能修复环。N<=1000环的周长<=1e61.显然这是一个环形的dp,一般来说会把链再复读一遍连在尾端。2.开始考虑dp,以环上的位置为状态,开一个dp[2e6],然后考虑O(N)转移,...原创 2019-03-13 20:51:22 · 339 阅读 · 1 评论 -
CodeCoder vs TopForces【树状数组 或 强连通分量】
题目链接:https://vjudge.net/problem/Gym-101142C题意,给出n个人在两个网站上的排名,求一个人可能战胜多少个人。x可能战胜y的条件,x至少有一个排名大于y。可能战胜是可传递的,假如a可能战胜b,b可能战胜c,那么a也可能战胜c(即使c的两个排名都大于a)。一开始对于可传递这一个条件没有读懂,以为需要直接可战胜才行。于是...原创 2019-04-04 21:20:52 · 292 阅读 · 0 评论 -
Distinctive Character 【BFS】
给n个二进制串,x与y的距离是二进制上不同的位数。求距离这n个二进制串最近距离最远的二进制串。n<=1e5,二进制串长度<=20做法:建图,共有2^20个点,对于一个点来说,最多有20条边与之相连,边为双向边且边权为1。把起始点扔进队列,然后多源bfs,求深度最深的点。#include <bits/stdc++.h>#define rep(i,...原创 2019-04-05 10:22:06 · 170 阅读 · 0 评论 -
牛客- CSL 的字符串 【栈】
题目链接:https://ac.nowcoder.com/acm/contest/551/D题目大意:字符去重且保证字典序最小。首先,很明显要处理每一个字符的最后一个位置。一开始的思路:某个字符是一定要在它的结束符号之前被输出。假如没遇到结束符那么可以暂且先留一留。然后想了一下或许可以使用优先队列来模拟这个过程,每次判断一个字符是否在队列里或被输出过,若在则跳过,若不在则...原创 2019-03-31 21:40:37 · 186 阅读 · 0 评论 -
13年浙江省赛 Highway Project 【最短路】
·题目链接:https://vjudge.net/problem/ZOJ-3946题目大意:有N个点,编号0到N-1,有M条可选的双向边,边有长度和花费。在保证以0为起点的单源最短路的前提下,使选择的边的花费最小。一眼过去想到的是 对最短路上的边求最小生成树。感觉挺对的,写了很长时间wa了两发后队友指出了发现了错误。首先,最短路选边之后是一个单起点DAG图(把原图中的双...原创 2019-04-10 16:35:57 · 106 阅读 · 0 评论 -
Kpop Music Party 【贪心】
题目链接:https://cn.vjudge.net/problem/ZOJ-3941这道题目最先想到的是贪心,从最左边开始,依次选择长度k的区间,不相交,这样是最大的。但是这样贪心完之后发现m还有剩余,发现每个区间的最后一点也可以选,同样可以有增益效果,但是回头再去选,会打乱一开始的贪心,所以在贪心的时候就枚举每个区间最后一个点要不要选,最后也就2的10次方种可能------...原创 2019-04-10 19:58:46 · 259 阅读 · 0 评论 -
18年山东省赛-Four-tuples【容斥定理】
题目链接:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/4219.html读错题目,一开始以为是任意两个元素互不相等。写了好长实际后才发现是x1≠x2,x2≠x3,x3≠x4,x4≠x1。思路:用全集减去非法集合的并。非法集合有四个A:x1=x2 B:x2=...原创 2019-04-02 15:19:02 · 144 阅读 · 0 评论 -
Piece of Cake 【概率/期望】
大体题意:给一个N个点的凸包,求任选K点组成的子凸包的面积期望怎么做(3≤k≤n≤2500)尝试的挣扎:1.暴力枚举?显然超时。2.考虑新加入一个点对期望的贡献?不会计算。GG正经题解:被rqy秒了......#include <bits/stdc++.h>#define ll long long#define rep(i, a, b)...原创 2019-04-08 21:27:45 · 646 阅读 · 0 评论 -
Change FZU - 2277 【dfs序】【树状数组】
题目链接:https://cn.vjudge.net/problem/FZU-2277题意:1 v x k : a[v]+=x , a[v’]+=x-k (v’ is child of v) , a[v’’]+=x-2*k (v’’ is child of v’) and so on.2 v : Output a[v] mod 1000000007(10^9 + 7).错误思...原创 2019-04-12 19:41:26 · 125 阅读 · 0 评论 -
牛客网-小G砍树【换根树dp】
题目链接:https://ac.nowcoder.com/acm/contest/375/C这是第二次做到换根树dp了,第一次是在cf上,转移公式比较简单,当场做了出来。大体题意:给一棵带编号无根树,问有多少种方式将这棵树删到仅剩一个节点。每次仅能删除叶子节点。首先,可以确定这是一个树形dp。dp[x]表示最后删除x的方案数,我们把x当做根,就可以通过换根在O(n)内求出dp[1...原创 2019-03-18 15:55:43 · 413 阅读 · 0 评论