自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Stargazer的博客

祈求不幸

  • 博客(46)
  • 收藏
  • 关注

原创 【LOJ #2391】「JOISC 2017 Day 1」港口设施(二分图染色 / 并查集)

传送门显然可以看成把有交叉的船之间连边跑二分图染色但是边数是O(n2)O(n^2)O(n2)的,考虑优化考虑按时间轴从小到大枚举对于当前时间如果是船iii的BiB_iBi​即向左端点在(Ai,Bi)(A_i,B_i)(Ai​,Bi​)且还没枚举过右端点的船连边这样复杂度是O(∣E∣)O(|E|)O(∣E∣)的考虑进一步优化可以发现如果存在两个点分别向[a,b],[c,d][a,b...

2020-02-28 19:14:10 914 1

原创 【2020省选模拟】题解

T1:一眼SvTSvTSvT上树可以用树上后缀数组+单调栈或者广义SamSamSam+虚树我实现了树上后缀数组也没什么细节不过由于一个点会成为多个点的2i2^i2i级祖先每次倍增时求sa2sa2sa2也要桶排一次最后求heightheightheight要在树上跳也只能nlognnlognnlogn求,为了方便就直接二分哈希做了导致跑不过SamSamSam#include<...

2020-02-27 19:51:20 202

原创 【Codeforces 1182E】 Product Oriented Recurrence(矩阵快速幂)

传送门由于递推形式是乘法,没法直接矩乘考虑将每个数表示成ca1∗f1a2∗f2a3∗f3a4c^{a_1}*f_1^{a_2}*f_2^{a_3}*f_3^{a_4}ca1​∗f1a2​​∗f2a3​​∗f3a4​​的形式然后对指数就是加法递推了随便矩乘搞一下就完了#include<bits/stdc++.h>using namespace std;#define cs ...

2020-02-27 19:43:53 335

原创 【HDU 4408】Minimum Spanning Tree(矩阵树定理 / 最小生成树)

传送门考虑KruscalKruscalKruscal的过程按权值从小到大对每个权值的每个连通块做一次矩阵树注意判不连通,n=1且m=0,mod=1不连通,n=1且m=0,mod=1不连通,n=1且m=0,mod=1的情况#include<bits/stdc++.h>using namespace std;#define cs const#define re regist...

2020-02-27 19:43:42 228

原创 【51nod 1628】 非波那契树(二次剩余 / 倍增)

传送门显然利用斐波那契通项公式来做对于f(n)=((1+5)2)n,((1−5)2)nf(n)=(\frac{(1+\sqrt 5)}{2})^n,(\frac{(1-\sqrt 5)}{2})^nf(n)=(2(1+5​)​)n,(2(1−5​)​)n分别计算那么这时候就有f(a+b)=f(a)f(b)f(a+b)=f(a)f(b)f(a+b)=f(a)f(b)考虑倍增,维护(u,v,s...

2020-02-25 20:13:57 227

原创 【Dwango Programming Contest 6th】C - Cookie Distribution(DP)

传送门系数直接是乘起来的不好处理考虑把系数CCC看做每个人在自己有的里面再选出一个作为特别的然后DPDPDP特别的设f[i][j]f[i][j]f[i][j]表示前iii天已经有jjj个人拿了特别的的方案数直接枚举这一天几个人拿了特别的乘两个组合数即可显然这个转化是等价的复杂度O(n2k)O(n^2k)O(n2k)#include<bits/stdc++.h>usin...

2020-02-20 20:26:04 280

原创 【51nod 1961】 Power Sum(生成函数 / 多项式)

传送门考虑设P(x)=∑i−1∞pixiP(x)=\sum_{i-1}^{\infty}p_ix^iP(x)=∑i−1∞​pi​xi那么用这个题的推导方法可以得到P(x)=n−x[ln⁡(∏k1−akx)]′P(x)=n-x[\ln(\prod_k{1-a_kx})]'P(x)=n−x[ln(∏k​1−ak​x)]′那么有f(x)=∏k1−akx=e∫n−P(x)xdxf(x)=\pr...

2020-02-20 20:18:47 629

原创 【LOJ #6102】「2017 山东二轮集训 Day1」第三题(莫比乌斯反演 / min-max容斥)

传送门原题上次没写题解这次补一下得了首先由gcd(fi,fj)=fgcd(i,j)gcd(f_i,f_j)=f_{gcd(i,j)}gcd(fi​,fj​)=fgcd(i,j)​首先证明gcd(fi,fi−1)=1gcd(f_i,f_{i-1})=1gcd(fi​,fi−1​)=1然后fi+j=fi−1fj+fifj+1f_{i+j}=f_{i-1}f_j+f_if_{j+1}fi+j​...

2020-02-19 20:16:26 271

原创 【LOJ #6101】「2017 山东二轮集训 Day1」第二题(笛卡尔树 DP)

传送门开始并不会翻了下代码发现自己脑抽每次对于最小值分治两边做即可也就是建出笛卡尔树然后dfsdfsdfs的事注意处理时每次次数是上取整#include<bits/stdc++.h>using namespace std;#define cs const#define re register#define pb push_back#define pii pair&...

2020-02-19 20:05:26 398

原创 【LOJ #6100】「2017 山东二轮集训 Day1」第一题(主席树)

传送门考虑求出每个位置能向右延伸的最远距离后即可用主席树维护区间加区间求和做考虑求出f[0/1][i][j]f[0/1][i][j]f[0/1][i][j]表示前iii个位置,第jjj位作为最高位时从0(1)0(1)0(1)变成1(0)1(0)1(0)的次数然后对于每个数lll二分右端点如果l−1l-1l−1时前缀jjj位异或和为111,那么由于实际从iii开始为000,就看l−rl-rl...

2020-02-19 20:02:20 279

原创 【LOJ #6079】. 「2017 山东一轮集训 Day7」养猫(最大费用最大流)

传送门考虑先全部选sss,再改一些成eee考虑(i,i+1,k−ms−me,0)(i,i+1,k-ms-me,0)(i,i+1,k−ms−me,0)代表不改成eee(i,i+k,1,ei−si)(i,i+k,1,e_i-s_i)(i,i+k,1,ei​−si​)代表改成eee建一个虚点xxx像1−k1-k1−k连(inf,0)(inf,0)(inf,0)(str,x,k−ms,0)(s...

2020-02-19 19:46:23 317

原创 【LOJ #6076】「2017 山东一轮集训 Day6」三元组(莫比乌斯反演 / 三元环计数)

传送门莫反得到∑i=1a∑j=1b∑k=1calcm(i,j)blcm(j,k)clcm(i,k)\sum_{i=1}^a\sum_{j=1}^b\sum_{k=1}^c\frac{a}{lcm(i,j)}\frac b{lcm(j,k)}\frac c{lcm(i,k)}∑i=1a​∑j=1b​∑k=1c​lcm(i,j)a​lcm(j,k)b​lcm(i,k)c​然后按照旧试题那道题的做法...

2020-02-18 21:05:56 359

原创 【LOJ #6075】「2017 山东一轮集训 Day6」重建(DP)

传送门处理出f[i],g[i]f[i],g[i]f[i],g[i]表示走任意iii条边和沿着关键点走iii条边的最短路然后枚举关键点边数求出可行的CCC的l,rl,rl,r对所有可行的rrr取maxmaxmax即可#include<bits/stdc++.h>using namespace std;#define cs const#define re register...

2020-02-18 21:03:46 229

原创 【2020省选模拟】题解

T1:神题显然先容斥l或r+1l或r+1l或r+1作为下界设下界和为sss假设最后总和为xxx就相当于a1+a2+a3....+an=xa_1+a_2+a_3....+a_n=xa1​+a2​+a3​....+an​=x解一个方程组解都为正整数的方案为(x−s−1n−1){x-s-1\choose n-1}(n−1x−s−1​)要求正整数把l,rl,rl,r都减一即可答案即为∑x&...

2020-02-18 20:54:09 170

原创 【LOJ #6074】「2017 山东一轮集训 Day6」子序列(矩阵乘法)

传送门透好像pkuwc2020Day1T1pkuwc2020Day1T1pkuwc2020Day1T1处理方法就是这个可惜当时劳资没做过这题。。。显然有一个dpdpdp是设f[i][j]f[i][j]f[i][j]表示前iii个最后一个字符是j(j∈[0,8])j(j\in[0,8])j(j∈[0,8])的方案f[i][9]f[i][9]f[i][9]则表示之前一个都没选的方案初始f...

2020-02-18 20:25:59 369

原创 【LOJ #6073】「2017 山东一轮集训 Day5」距离(主席树 / 树链剖分)

传送门首先若p[i]=ip[i]=ip[i]=i时且离线时可以直接用LNOI2014]Lca的做法在线的话可以用主席树对每个点维护到根上的所有ppp到根的路径+1+1+1修改后的dfsdfsdfs序然后差分一下答案即可如果标记永久化时空常数都会小很多#include<bits/stdc++.h>using namespace std;#define cs const#d...

2020-02-18 19:59:07 241

原创 【LOJ #6072】 「2017 山东一轮集训 Day5」苹果树(容斥 / 搜索 / 矩阵树定理)

传送门考虑求出kkk个好苹果时权值和≤lim\le lim≤lim的方案数这个可以用折半搜索+双指针求出来设权值不为−1-1−1的苹果有mmm个然后考虑把苹果分成三部分:1−k:最后是有用的苹果1-k:最后是有用的苹果1−k:最后是有用的苹果k+1−m:好的但无用的苹果k+1-m:好的但无用的苹果k+1−m:好的但无用的苹果m+1−n:坏苹果m+1-n:坏苹果m+1−n:坏苹果那么...

2020-02-17 15:12:24 326

原创 【LOJ #6071】「2017 山东一轮集训 Day5」字符串(Sam)

传送门总感觉好像之前考试做过??反正考虑从后往前填如果每个点某个值没有出边往后面第一个根出去存在这个值的连向的那个点连边跑拓扑排序即可不用实在连,记一下即可#include<bits/stdc++.h>using namespace std;#define cs const#define re register#define pb push_back#define...

2020-02-17 14:58:23 269

原创 【LOJ #6069】「2017 山东一轮集训 Day4」塔(DP)

传送门好像和魔法的碰撞那道题差不多最后空的位置插入所有人之间的方案数就是一个组合数#include<bits/stdc++.h>using namespace std;#define cs const#define re register#define pb push_back#define pii pair<int,int>#define ll long...

2020-02-17 14:51:51 340

原创 【LOJ #6067】「2017 山东一轮集训 Day3」第三题(MTT / 多项式多点求值)

传送门我管你什么推式子莽一个mttmttmtt就完了在InvInvInv那里实现的好就可以跑到1s1s1s一个点#include<bits/stdc++.h>using namespace std;#define cs const#define re register#define pb push_back#define pii pair<int,int&gt...

2020-02-14 22:02:15 349

原创 【LOJ #6066】「2017 山东一轮集训 Day3」第二题(二分答案 / 树哈希 / 括号序列)

传送门首先显然二分答案其实我第一眼想得长链剖分维护树哈希实际上由于这个子树有先后顺序于是可以看做括号序列每个点的kkk子树就是若干区间哈希判一下即可#include<bits/stdc++.h>using namespace std;#define cs const#define re register#define pb push_back#define pi...

2020-02-14 19:46:51 227

原创 【2020省选模拟】题解

T1:考虑设f1[i]f_1[i]f1​[i]表示前iii个走到第二个位置的步数,f2[i]f_2[i]f2​[i]表示走到第三个位置的步数然后可以发现f1[i]=2∗f2[i−1]+1,f2[i]=f1[i−1]+2∗f2[i−1]+2f_1[i]=2*f_2[i-1]+1,f_2[i]=f_1[i-1]+2*f_2[i-1]+2f1​[i]=2∗f2​[i−1]+1,f2​[i]=f1​...

2020-02-14 13:17:19 151

原创 【洛谷 P3643】【APIO2016】 划艇(DP)

传送门看到满脑子都想的赛艇Excited!Excited!Excited!考虑离散化成一堆区间设f[i][j][k]f[i][j][k]f[i][j][k]表示前iii个,当前在第jjj个区间,在第jjj个区间的有kkk个的方案数然后在跳到下一个区间的时候再算kkk个份分配在第jjj个区间的方案由于是递增的,所以系数为(len[j]k){len[j]\choose k}(klen[j]...

2020-02-13 22:54:07 188

原创 【洛谷 P4384】 [八省联考2018]制胡窜(SAM / 线段树合并)

传送门首先建出SamSamSam,线段树合并维护endposendposendpos显然考虑endposendposendpos问题可以变成给定xxx条线段[li,ri][l_i,r_i][li​,ri​]选择两个点切下去,存在某条线段未被切开的方案首先转化成求所有线段都被切开的方案用C(n−1)2C^2_{(n-1)}C(n−1)2​减去即可设L=r1,R=lxL=r_1,R=l_...

2020-02-13 22:52:41 187

原创 【BZOJ #2034】 [2009国家集训队]最大收益(贪心 / 匈牙利算法)

传送门显然贪心把权值最大的先要了一定最优考虑把需要的时间离散化出来就相当于做一个最大匹配每个点连向的时间是一个区间如果有冲突把rrr更大拿去匹配显然更可行具体实现可以看代码#include<bits/stdc++.h>using namespace std;#define cs const#define re register#define pb push_bac...

2020-02-13 22:45:52 236

原创 【BZOJ #4977】【[Lydsy1708月赛】 跳伞求生(模拟费用流)

传送门把a,ba,ba,b排序后从小到大处理即可维护一下退流即可#include<bits/stdc++.h>using namespace std;#define cs const#define re register#define pb push_back#define pii pair<int,int>#define ll long long#de...

2020-02-12 19:27:26 196

原创 【洛谷 P5825】 排列计数(二项式反演 / 多项式 / 生成函数)

传送门题解区的Eulerian numberEulerian\ numberEulerian number什么的完全看不懂啊显然能得到一个n2,dpn^2,dpn2,dpf[i][j]f[i][j]f[i][j]表示前iii个有jjj个的方案有f[i][j]=f[i−1][j]∗(j+1)+f[i−1][j−1](i−j)f[i][j]=f[i-1][j]*(j+1)+...

2020-02-12 19:19:42 272

原创 【2020省选模拟】题解

T1:傻逼般的把暴力写挂了考虑最左右的两个对称点一定在k+1k+1k+1以内暴力枚举后即可确定对称中心双指针判断有多少对对称点满足即可#include<bits/stdc++.h>using namespace std;#define cs const#define re register#define pb push_back#define pii pair&lt...

2020-02-11 19:01:33 153

原创 【LOJ #6068】「2017 山东一轮集训 Day4」棋盘(费用流)

传送门将行列分别看做点如果被障碍分成几段的话就再建几个点行列向每段的点连(cap=1,cost=0),(1,1),(1,2)....(cap=1,cost=0),(1,1),(1,2)....(cap=1,cost=0),(1,1),(1,2)....的边答案即最小费用每次都跑一边过不去按询问的流量排序后增量做#include<bits/stdc++.h>using n...

2020-02-10 19:48:23 247

原创 【洛谷 P4564】 【CTSC2018】假面(概率DP)

传送门简单概率dpdpdp第二问对每个人维护每个血量的概率即可第一个问题考虑dpdpdp出g[j]g[j]g[j]表示剩下jjj个人活着的概率这个可以很简单的dpdpdp出来然后每个人xxx被困住的概率就是P(x活着)∗∑ig′[i]i+1P(x活着)*\sum_{i}\frac {g'[i]}{i+1}P(x活着)∗∑i​i+1g′[i]​这里g′g'g′是对除xxx其他人dpdp...

2020-02-10 19:44:22 176

原创 【洛谷 P5850】 calc加强版(生成函数+NTT)

传送门先看做无序的最后乘上n!n!n!显然可以构造生成函数∏(1+ix)\prod(1+ix)∏(1+ix)分治nttnttntt好像也可以过?不过不知道为啥RERERE了应该是炸空间了先取对在expexpexp=exp(∫(∑i1+ix)dx)=exp(\int(\sum{\frac i{1+ix}})\mathrm{dx})=exp(∫(∑1+ixi​)dx)expexpexp内...

2020-02-09 22:36:43 219

原创 【洛谷 P5162】 WD与积木(生成函数+NTT)

传送门设非空集合的EGFEGFEGF即f(x)=ex−1f(x)=e^x-1f(x)=ex−1那么分子的EGF=∑i=0∞ifi=f(f−1)2EGF=\sum_{i=0}^{\infty}if^i=\frac{f}{(f-1)^2}EGF=∑i=0∞​ifi=(f−1)2f​分母的为∑i=0∞fi=11−f\sum_{i=0}^{\infty}f^i=\frac{1}{1-f}∑i=0∞​...

2020-02-09 22:35:53 162

原创 【2020省选模拟】题解

T1:考虑每条边的贡献就完了写的垃圾神他妈T了codeT2:我都知道对于本身是否好坏是要分开讨论如果本身是好的要特殊处理对于一段合法的如果n−kn-kn−k不可以那么就是a[1...k],a[n−k+1,n]a[1...k],a[n-k+1,n]a[1...k],a[n−k+1,n]一定匹配明明可以KMPKMPKMP或哈希搞的匹配我非对每种字符用fftfftfft搞了一个匹配...

2020-02-08 17:37:55 197 1

原创 【LOJ #6062】「2017 山东一轮集训 Day2」Pair(霍尔定理+线段树)

传送门霍尔定理就是对于二分图的完美匹配一定有一边的任意一个子集SSS向另一边的相连的集合大小>=∣S∣>=|S|>=∣S∣于是把BBB排序后连的一定是一个后缀用线段树维护每个点及以后连了多少条边那么必须满足vi−i>=0v_i-i>=0vi​−i>=0线段树维护即可#include<bits/stdc++.h>using name...

2020-02-07 19:28:51 312

原创 【LOJ #6060】「2017 山东一轮集训 Day1 / SDWC2018 Day1」Set(线性基)

传送门显然建出线性基枚举xorallxorallxorall的每一位做但是注意线性基实际上每一位是有一个优先级的而这里优先级是从高到低xorallxorallxorall中为000的位大于为111的位#include<bits/stdc++.h>using namespace std;#define cs const#define re register#define...

2020-02-07 19:24:51 258

原创 【51nod 1220】约数之和(莫比乌斯反演+杜教筛)

传送门考虑类似约数个数和的结论有d(ij)=∑k∣i∑p∣j[gcd(k,p)=1]ipkd(ij)=\sum_{k|i}\sum_{p|j}[gcd(k,p)=1]\frac{ip}{k}d(ij)=∑k∣i​∑p∣j​[gcd(k,p)=1]kip​于是可以愉快地莫反了最后搞出来就是∑d=1dμ(d)∑i=1nd∑k∣iik∑j=1nd∑l∣jl\sum_{d=1}d\mu(d)\s...

2020-02-07 19:22:01 253

原创 【洛谷 P5748】集合划分计数(多项式exp)

传送门考虑非空集合集合的EGFEGFEGF即f(x)=ex−1f(x)=e^x-1f(x)=ex−1贝尔数就是任意划分集合的方案数,设EGFEGFEGF为g(x)g(x)g(x)则g=efg=e^fg=ef#include<bits/stdc++.h>using namespace std;#define cs const#define re register#defi...

2020-02-07 19:12:10 377

原创 【51nod 1229】 序列求和 V2(组合数学)

传送门若r=1r=1r=1就直接拉格朗日插值否则设gk(n)=∑i=1nikrig_k(n)=\sum_{i=1}^ni^kr^igk​(n)=∑i=1n​ikrirgk(n)=∑i=2n+1(i−1)krirg_k(n)=\sum_{i=2}^{n+1}(i-1)^kr^irgk​(n)=i=2∑n+1​(i−1)kri(r−1)gk(n)=rn+1nk−r+∑i=2nri((i−1)...

2020-02-06 20:52:45 280

原创 【2020省选模拟】题解

T1:完全没想到系数就是ifwtifwtifwt只会求逆矩阵做,但是要差一点跑不过。。。。今天早上头昏脑涨写了半天写挂十万个地方solution矩阵求逆的写法#include<bits/stdc++.h>using namespace std;#define cs const#define re register#define pb push_back#defin...

2020-02-05 21:48:23 254 2

原创 【Codeforces 623E】Transforming Sequence(MTT)

传送门设f[i][j]f[i][j]f[i][j]表示iii个数,jjj位有111时的方案数那么有fa,i∗fb,j∗(i+ji)2bi−>fa+b,i+jf_{a,i}*f_{b,j}*{i+j\choose i}2^{bi}->f_{a+b,i+j}fa,i​∗fb,j​∗(ii+j​)2bi−>fa+b,i+j​于是倍增dp,fftdp,fftdp,fft优化要写...

2020-02-04 19:33:52 194

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除