- 博客(42)
- 收藏
- 关注
转载 THUWC2017 随机二分图
一道神仙题 题目链接 这个数据很状压啊 但是\(type=2,3\)的有点麻烦. 令\(f[S]\)表示集合为\(S\)的完美匹配期望. 一条边相当于一种转移. 我们考虑把两条边分开计数,各有\(50\%\)的概率出现. 假设第一条边是\((u,v)\),第二条边是\((x,y)\) 如果\(type=2\),那么两条边都出现的概率应该是\(50\%\),然而我们计算的概率是\(25\...
2019-01-18 15:58:00
205
转载 THUWC2017 在美妙的数学王国中畅游
题目链接 这个提示貌似没有什么用. 学过泰勒展开就会了.没学过可能不太行. 第一第二个操作就是\(LCT\)板子. 第三个就在\(LCT\)上改改就好了. 第四个好像很麻烦的样子. 首先,我们要知道它要求的是什么. 这个\(e^x\),\(sin(x)\)是什么玩意儿啊 好像不资瓷合并啊 但是我们发现,它不要求很高的精度. 而且下面给了一个提示. 因此学过泰勒展开的同学就知道该怎么做了...
2019-01-16 17:55:00
170
转载 SDOI2017 切树游戏
猫老师的基于变换合并的树上动态DP的链分治算法&SDOI2017切树游戏(cut)解题报告中的例题 一道神仙题. 参考了这位大佬的\(Blog\),大家快去%他 注意:此篇文章的约定: \(s_u\)表示节点\(u\)的子节点集合. \(ls_u\)表示节点\(u\)的轻儿子集合. 这个轻儿子指树剖之后的. 我们先列出简单\(dp\)方程. \(f[u][i]\)表示以\(u...
2019-01-04 17:42:00
203
转载 ZJOI2017 树状数组
属于可怜出的小清新数据结构题呢 题目链接 解析 因为全部都在模\(2\)意义下,因此相当于单点异或,查询区间异或和. 如果你对树状数组足够熟悉,那么你会发现可怜写了一个单点加求后缀和的程序. 因此\([l,r]\)正确的概率就要使\(a_{l-1}\oplus a_l\oplus a_{l+1}\oplus ...\oplus a_n=a_r\oplus a_{r+1}\oplus.....
2019-01-04 17:31:00
151
转载 HNOI2015 接水果
练码力的好题. 题目链接 首先容易想到一条路径代表二维平面上的一个点. 在树上,那就求出\(dfs\)序. 我们令\(L_u=dfn[u],R_u=dfn[u]+size[u]-1\) 一条\(u\rightarrow v\)的路径可以被映射到一个点\((L_u,R_u)\)上 假设有一个盘子\(u\rightarrow v\),我们分两种情况讨论. 如果\(lca(u,v)\)不为\...
2018-12-29 14:46:00
142
转载 LOJ6503 Magic
很好的推柿子题 题目链接 考虑二项式反演. 我们令\(g(i)\)表示至少有\(i\)对魔法对. 那么很显然\(ans=\sum_{i=k}^n(-1)^{i-k}C_i^kg(i)\) 首先,我们让每张牌都带标号,这样会好算很多. 最后答案乘上\(\frac{1}{\prod a[i]!}\)即可. 现在我们可以愉快地\(DP\)了. 考虑用\(f[i][j]\)表示前\(i\)个颜...
2018-12-27 19:27:00
246
转载 题答练习
\(UOJ109\) \(Task\ 1\) 用\(Dijkstra\)卡\(Floyd\)? \(101\)个点,一坨\(0\)就好了. \(Task\ 2\) \(Floyd\)卡\(Bellman-Ford\)? \(99\)个点,一条倒过来的链就好了,加一坨重边. \(Task\ 3\) 同\(Task\ 1\) \(Task\ 4\) \(Floyd\)卡\(Dijkstra\...
2018-12-26 15:49:00
153
转载 LOJ6498 农民
一道不那么清真的数据结构 题目链接 首先对于没有操作\(2\)怎么做. 我们考虑对于每个节点,我们要让它小于到根节点道路上所有向左边的父亲节点权值,并且大于所有向右边的路的父亲权值. 我们令每条边的权值是它父亲的权值. 那么,我们用树剖线段树维护所有向右的边和向左的边即可. 现在有操作\(2\)怎么做呢? 所有向左的边会变成向右,向右的边会变成向左. 那么我们再维护两个值,在线段树上打...
2018-12-25 20:07:00
151
转载 SCOI2012 奇怪的游戏
在中医药的\(ACM\)中做到了,是\(M\)题. 那场比赛被打自闭了\(QAQ\) 题目链接 这道题一看就知道是一个网络流模型 建模也是比较典型的方式. 因为我们选两个相邻的格子,因此我们把它黑白染色,记录\(4\)个量:白点个数\(c_w\),黑点个数\(c_b\),白点之和\(s_w\),黑点之和\(s_b\). 假设最终所有的高度都是\(h\).一次操作会把一个黑点\(+1\)...
2018-12-25 13:48:00
137
转载 AHOI2013 差异
\(SAM\)中比较简单的题. 题目链接 其实这道题有一种用时间换空间的\(SA\)做法. 就是把\(Height\)建出来之后从大到小做,用一个并查集记录\(size\)即可. 时间复杂度\(O(n*\log n)\),空间复杂度\(O(n)\) \(SAM\)的话就枚举一个点,算一下有多少种方案可以使两个点的\(lca\)是它即可. 算出方案再乘上\(len\)就好了. 时间复杂度\...
2018-12-21 18:55:00
133
转载 HAOI2018 染色
一道推柿子题目 非常锻炼思维能力. 题目链接 首先,颜色次数显然不能多于\(lim=min(\frac{n}{s},m)\)个. 由于问的是恰好为\(k\)个,我们定义\(f_i\)表示出现次数为\(s\)的颜色恰好为\(k\)个的方案数. 那么,\(ans=\sum_{i=0}^{lim}w_if_i\) 我们用二项式反演的思想,令\(g_i\)表示至少有\(i\)个颜色出现次数为\...
2018-12-19 12:13:00
123
转载 HNOI2015 开店
题目链接在此 这道题其实有两种做法,动态点分治和树剖+主席树. 我怕麻烦,写了动态点分治. 结果还是写了\(100+\)行... 考虑这道题怎么做. 先离散化一下. 我们先建好点分树,然后用一个\(vector\)记录这个点在点分树上的子树节点的所有信息. 这个时空复杂度是\(O(n*log\ n)\)的 然后我们按每个点的权值排序,每个节点\(vector\)上的点再记录\(3\)个...
2018-12-19 08:49:00
109
转载 PKUWC2018 随机游走
又一道咕了很久的神仙题 题目链接 看了好久题解才会做 \(Min-Max\)容斥 见我的这篇文章 解析 声明:\(u\)代表当前节点,\(v\)代表\(u\)的子节点,\(fa\)代表\(u\)的父亲节点,\(d[u]\)代表\(u\)的度数. 我们枚举一个\(S\),然后算\(Min(S)\),然后就可以用\(Min-Max\)容斥算\(Max(S)\)了. 首先,我们列出期望的转...
2018-12-15 15:43:00
170
转载 HAOI2015 按位或
咕了很久的神仙题 很早就被安利来做了 但是一直没有勇气做,觉得太难了 今天终于肝了这道题. 其实——还是很难 题目链接 \(LOJ\) \(Luogu\) 前置芝士:\(Min-Max\)容斥 这是我做的第一道\(Min-Max\)容斥题 好神仙的操作啊 \(Min-Max\)容斥(或者称最值反演)具体而言是两个公式—— 令\(Min(S)\)表示集合\(S\)中的最小值. 令\(M...
2018-12-14 17:47:00
121
转载 Luogu4859 二项式反演
今天学了一个叫二项式反演的有趣东西. 其实它的核心式子就两个 \[ g_i=\sum_{j=i}^n\binom{j}{i}f[j]\\ f_i=\sum_{j=i}^n(-1)^{j-i}\binom{j}{i}g[j] \] 证明是用容斥证的. 现在我们看这道题. 题目链接 我们知道答案就是\(a>b\)的对数为\(\frac{n+k}{2}\)的方案数. 令\(x=\fra...
2018-12-14 15:22:00
149
转载 CTSC2018 混合果汁
题目链接—— Luogu LOJ 一道简单的主席树 考虑按\(d\)排序,然后二分一个答案\(x\). 对\(\geq x\)的\(d\)建一棵主席树即可. 主席树上维护两个信息:果汁的量和总价. 然后在主席树上二分即可. 时间复杂度\(O(n*log^2n)\) 代码如下 好像才\(38\)行呢 #include<iostream> #include<cstdio&...
2018-12-13 18:07:00
157
转载 JSOI2018 防御网络
一道很有思维难度的\(dp\)和仙人掌(雾 \(LOJ\) \(Luogu\) 题目描述 题目要求一个\(n\)个点的点仙人掌的所有点集的斯坦纳树的边数的期望 \(n\leq 200\) 如果是一般图,这个问题是只能大力状压的. 但是这个图是一棵点仙人掌,那样就有多项式复杂度的算法了. 解析 由期望的线性性得我们可以把所有的边分开计算. 对于一条边\((u,v)\),我们分两种情况讨...
2018-12-12 16:07:00
212
转载 NOI2018 屠龙勇士
一道简单的\(EXCRT\) 题目链接 解析 我们愉快地发现,攻击每条龙的剑的攻击力是确定的. 只用一个\(Multiset\)来维护攻击力即可. 然后,我们可以把这个题目转化一下. 假设打第\(i\)条龙时攻击力是\(t_i\) \(t_ix\equiv a_i(mod\ p_i)\) 所以只要求解这个方程组即可. 等等! 这只能在\(a_i<p_i\)的情况下成立. 假设\...
2018-12-06 13:35:00
144
转载 CRT&EXCRT学习笔记
学\(EXCRT\)的时间挺久了,有点忘了. 写一篇博客记录一下. CRT 首先,我们要知道中国剩余定理是什么 它是用来求解这样一个同余方程的 \[ x\equiv a_1(mod\ p_1)\\ x\equiv a_2(mod\ p_2)\\ ...\\ x\equiv a_n(mod\ p_n) \] 其中,\(p_1,p_2...p_n\)两两互质. 我们先规定一些数.\(M=\...
2018-12-06 13:34:00
158
转载 CF662C Binary Table
一道\(FWT\). 题目链接 题目概述 有一个\(n\)行\(m\)列的表格,每格中都有\(0\)或\(1\). 每次操作可以将某行或某列取反. 操作次数无限,求最后表格中最少有多少个\(1\). \(n\leq 20,m\leq 100000\) 解析 我们先想一个简单的暴力. 考虑暴力枚举每行是否取反.假设状态是\(S\). 相当于每列的数都异或上\(S\).然后预处理\(po...
2018-12-06 10:30:00
145
转载 HNOI2017 礼物
一道简单的\(FFT\)题 题目链接 题意简述 把一个数组全部加上一个整数\(k\),然后要使\(\sum_{i=1}^n(a_i-b_i)^2\)最小. 注意\(a,b\)这两个数组均可旋转. 解析 我们把式子展开. \(\sum_{i=1}^n(a_i-b_i+x)^2\) \(=\sum_{i=1}^n(a_i^2+b_i^2+x^2+2a_ix-2b_ix-2a_ib_i)\)...
2018-12-06 10:14:00
135
转载 ZJOI2014 力
一道简单的\(FFT\)题 题目链接 题意简述 给定一个公式\(E_i=\sum_{j<i}\frac{q_j}{(i-j)^2}-\sum_{j>i}\frac{q_j}{(i-j)^2}\) 求\(E\). 解析 先把公式抄下来\(E_i=\sum_{j<i}\frac{q_j}{(i-j)^2}-\sum_{j>i}\frac{q_j}{(i-j)^2}\...
2018-12-06 10:02:00
142
转载 HNOI2018 转盘+线段树维护单调栈学习笔记
题目链接 题目简述 给定一个环形数组.你在时间为\(0\)时在一个你自己选的位置,每个时刻可以往下走或不走.如果你走到\(i\)的时刻\(\leq T_i\),那么可以把\(i\)标记.求把所有环上的点标记的最小时间. 解析 其实没有什么难的知识点. 但是好神仙啊\(QAQ\) 我们转化一下.假设时间\(t\)时在一个点,每次可以往前走或者不动.每个点会在\(T_i\)消失.求最小的\...
2018-12-05 14:42:00
169
转载 WC2018 州区划分
题目链接 题意简述 有一个\(n\)个点\(m\)条边的图,每个点有点权. 求一种划分方案,使每个划分的块中没有欧拉回路. 定义\(V_i\)为第\(i\)个块的点数集合. 求\(\sum_{each\ plan}\prod_{i=1}^k(\frac{\sum_{v\in V_i}w_v}{\sum_{j=1}^i\sum_{v\in V_j}w_v})^p\) 其中\(k\)是这个方...
2018-12-05 10:01:00
110
转载 CF453D Little Pony and Elements of Harmony
机房的同学都把这题秒啦 我还是太菜啦 题目链接 题目大意 有一个数组\(f\)和一个数组\(b\),每次操作,\(f[i]\)会变成\(\sum_{j=0}^nb[popcount(i\oplus j)]*f[j]\) 求\(t\)次操作之后的\(f\),对\(P\)取模. \(n\leq 2^{20},t\leq 10^{18},b\leq 20\) 解析 令\(c[i]=b[pop...
2018-12-04 15:05:00
145
转载 WC2011 XOR
题目链接 题意简述 求一条\(1\sim n\)的路径,使路径上的边权异或和最大. 解析 一条路径可以视为\(1\sim n\)的简单路径加上某些环. 可能我们一开始选的链不够优秀,但是我们能加上某些环来优化答案. 如果有一个很远的环,我们可以从链上走过去,遍历整个环,然后再走回来. 走过去走回来的这一段的\(xor\)值显然抵消了,于是只剩下了一个环. 如果有另一条链,假设比现在的链更...
2018-12-04 11:04:00
143
转载 线性基学习笔记
线性基 最近刚学习了一个叫线性基的东西. 还是很有意思的. 线性基的性质 线性基有一些很妙的性质. 线性基是一个\(x\)维向量\(a_1,a_2,a_3...a_x\),其中\(a_i\)最高位的\(1\)在第\(i\)位上. 由线性基中的数异或出来的数值域和原来的数异或和值域相同. 线性基的构造 插入一个数\(x\)时,从最高位向最低位扫,如果这一位上线性基为空,那么就插入.否则...
2018-12-04 10:34:00
81
转载 杜教筛&Min_25筛学习笔记
杜教筛 这个东西已经咕了差不多半年QAQ 然后现在才开始写. 有的时候,我们需要完成这样一个问题. 求\(\sum_{i=1}^nf(i)\).其中\(f\)是积性函数. 当\(n\leq 10^7\)时,可以用线性筛解决这个问题. 然而,起源于\(Project Eular\)的这个黑科技可以把\(n\)的范围扩展到\(10^{11}\)左右. 考虑狄利克雷卷积. 假设\(f*g=h\...
2018-12-04 08:52:00
370
转载 LOJ2540 随机算法
题目链接 看到\(n\leq 20\),马上想到状压\(dp\). 考虑用\(f[S][i]\)表示集合\(S\)已经被考虑过了,独立集大小为\(i\)的方案数. 显然,这个集合\(S\)的最外层显然都没有被选. 考虑如何转移. 枚举一个\(j\notin S\),那么独立集大小显然\(+1\),然后所有和\(j\)相连的点都不能选了. 那么用\(w[j]\)记录与\(j\)相邻的集合,...
2018-12-03 15:58:00
145
转载 仙人掌&圆方树学习笔记
终于对仙人掌有了一点初步的理解. 仙人掌 仙人掌是什么? 仙人掌是一个无向图. 仙人掌有什么特点? 仙人掌的每条边只属于一个简单环. 下面是一个栗子 有什么用呢? 我们可以先用\(tarjan\)找出环,然后处理. 下面是一道例题,\(BZOJ4316\) 显然,在环内\(dp\),把答案并到根(环中\(dfs\)序最小的点)上,然后在环外\(dp\)就行了. 详细题解在这里 下面是...
2018-12-03 11:19:00
151
转载 CF487E Tourists
题目链接 还是圆方树. 考虑如果可以走到一个连通分量,一定可以走到这个连通分量的最小值. 那么维护搜索栈,找点双. 这一部分自行学习. 假设已经建出了圆方树,然后\(dfs\)一遍. 圆点直接维护权值,方点用一个\(multiset\)维护它的所有儿子的权值. 然后树剖+线段树维护区间最小值即可. 注意询问的时候如果\(LCA\)是方点还要算上它父亲的贡献. 哦这道题不是仙人掌. 所以不...
2018-12-03 11:18:00
175
转载 BZOJ2125 最短路
题目链接 先构造圆方树,然后圆-圆边的距离就是直接距离,圆-方边的距离就是圆点到环的起始点的距离. 然后在圆方树上倍增就好了. 注意如果\(LCA\)是方点就往下跳到圆点,然后做一个环上最短路即可. 代码如下 #include<iostream> #include<cstdio> #include<algorithm> #include<cstr...
2018-12-03 11:17:00
100
转载 [SHOI2008]仙人掌图
题目链接 考虑用\(tarjan\)找环,环内\(dp\),环外\(dp\). 用\(f[u]\)表示到\(u\)点的最长距离长度. 如果我们找到一条边是桥就直接转移——\(f[u]=max(f[u],f[v]+len)\),同时更新\(Ans\). 我们其实要求的就是\(max(f[i]+f[j]+dis(i,j))\) 如果我们找到一个环,首先用环中节点的\(f\)值去更新\(Ans...
2018-12-03 11:00:00
181
转载 BZOJ4316 小C的独立集
题目链接 一句话题意 求仙人掌上最大独立集 解析 考虑先用\(tarjan\)找出环,然后环内外分别处理. 其实是用\(dfs\)序的性质做题. 令\(f[u][0]\)表示不选\(u\)的最大独立集,\(f[u][1]\)表示选\(u\)的最大独立集,那么答案是\(max(f[1][0],f[1][1])\) 如果我们找到了一条边是桥,那么直接转移. 如果是环边,就先不转移. 等到把...
2018-12-03 10:43:00
106
转载 NOI2015 品酒大会
先放个传送门 后缀数组模板题 如果\(p,q\)是\(r\)相似的,相当于\(p,q\)有一个长度为\(r\)的\(lcp\) 考虑把\(SA\)和\(Height\)建出来之后,让\(Height\)从大到小排序.然后从大到小做(因为两杯\(r\)相似的酒肯定是\(0,1,2...r\)相似的).用并查集维护每个连通块的\(size,max,min\).如果要合并\(p,q\),那么方...
2018-12-03 09:36:00
123
转载 LOJ2541 猎人杀
一道很棒的\(NTT\)啊 题目链接 \(30\)分做法 当\(n\leq 20\)时,很容易想到令\(f[S]\)表示死亡集合为\(S\)时的几率.\(f[S\cup i(i\notin S)]=f[S\cup i(i\notin S)]+f[S]*\frac{w_i}{\sum_{j\notin S} w}\) 当然,我们还有第二种做法 令\(f[S]\)表示\(S\)在\(1\)...
2018-12-01 09:06:00
176
转载 BZOJ3456 城市规划
一句话题意 求\(n\)个带标号点能构成的简单无向图数目 考虑令\(f[i]\)表示\(i\)个带标号点的简单无向图数目. \(f[n]=2^{C_n^2}-\sum_{i=1}^{n-1}C_{n-1}^{i-1}*f[i]*2^{C_{n-i}^2}\) 两边同除\((n-1)!\)得 \(\frac{f[n]}{(n-1)!}=\frac{2^{C_n^2}}{(n-1)!}-\...
2018-11-30 15:08:00
99
转载 多项式的一些操作
大多数东西只有代码啦 主要是因为数学公式太烦了 代码中\(vc\)指的是\(vector<int>\) 树套树每套一层多一个\(log\) 多项式每套一层不多\(log\). \(nlog^2n\)的树套树能跑\(2*10^5\),\(nlogn\)的多项式多套几层只能跑\(10^5\) 所以log越多越快 细思极恐 快速傅里叶变换 FFT 经过一番精妙的数学推导得出的 v...
2018-11-30 15:07:00
168
转载 初探动态DP
最近学了动态\(DP\),非常精妙的方法啊 写一篇博客记录一下 例题1 这道题\(Luogu1352\),相信大家都做过. 可以很快地写出转移方程. 令\(f[i][1]\)表示第i个节点选择的最大快乐度,\(f[i][0]\)表示第i个节点不选的快乐度,\(f[u][0]=\sum_{v\in sonu}max(f[u][0],f[u][1]),f[u][1]=\sum_{v\in ...
2018-11-30 15:06:00
143
转载 NOIP2018游记&题解
Day 0 openday,open了一天.和yx,zyh三杀 晚上到了学军旁边的酒店. 看了一下电视睡觉了. Day 1 早上8点到了考场,唯一的感觉是冷. 8点15分进了考场. 700+台笔记本. 密码纪念金庸 Fei2Xue@Lian#Tian! T1 铺设道路 刚开始看题 woc这个\(T1\)我不会啊 没做过积木大赛啊QAQ 数据结构学傻掉了 于是 秒想一个分治线段树 对于一...
2018-11-30 15:05:00
103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人