- 博客(177)
- 收藏
- 关注
原创 洛谷 P4250 [SCOI2015]小凸想跑步(最后的半平面交)
Problem就在这里Solution概率就是正确站位面积除以凸包面积。离第一条边比第k(k>1)k(k>1)条边更近的充要条件是 (x1−x)(y2−y)−(y1−y)(x2−x)≤(xk−x)(yk+1−y)−(yk−y)(xk+1−x)(x_1-x)(y_2-y)-(y_1-y)(x_2-x)\leq (x_k-x)(y_{k+1}-y)-(y_k-y)(x_{k+1}-x)化简发现它是一条
2018-04-28 08:03:42
529
原创 洛谷 P3317 [SDOI2014]重建(矩阵树定理)
题目描述https://www.luogu.org/problemnew/show/P3317给出一个图每条边存在的概率,求恰好生成一棵树的概率。(1 < N < =50)思路这题让我对矩阵树定理有了新的更本质的认识。地球人都知道,基尔霍夫矩阵的任意n-1阶代数余子式就是生成树数量。这代表基尔霍夫矩阵的代数余子式皆相同且与余子式绝对值相等。其实基尔霍夫矩阵在计算的东西是生成树每条边权的乘积的和。由于
2018-04-25 07:50:31
496
原创 洛谷 P3790 文艺数学题 & 洛谷 P4336 黑暗前的幻想乡(矩阵树定理+莫比乌斯反演/容斥原理)
题目传送门 https://www.luogu.org/problemnew/show/P3790 https://www.luogu.org/problemnew/show/P4336文艺数学题设f(n)f(n)为边权gcd为n的生成树个数,要求的是∑Wn=1nf(n)\sum_{n=1}^{W}nf(n)。看到gcd就是反演。f(n)f(n)并不能直接求,我们设F(n)F(n)为
2018-04-25 07:09:36
538
原创 BZOJ 4766: 文艺计算姬(矩阵树定理+行列式化简+快速幂)
描述https://www.lydsy.com/JudgeOnline/problem.php?id=4766求完全二分图Kn,mK_{n,m}的生成树数量。(1 <= n,m,p <= 10^18)思路在博客停更之前,做最后一波连续疯狂的更新吧!直接矩阵树定理搞一波,打个表发现答案是nm−1mn−1n^{m-1}m^{n-1},这种题打表是捷径,但是如果打表还取模的话就什么也发现不了。我们考虑为什
2018-04-23 14:52:56
423
原创 洛谷 P4455 [CQOI2018]社交网络(矩阵树定理)
题目描述传送门大意:给出n个点的有向图,求以1为根的树形图个数。(1≤n≤250)思路有向图的基尔霍夫定理。类比无向图生成树的计算方式,先根据原图构出基佬♂霍夫矩阵。呸!是基尔霍夫矩阵。无向图中为度数矩阵-邻接矩阵,有向图为入度矩阵-邻接矩阵。(不证)这题直接构建出矩阵,然后求出其余子式(即去掉某一行一列后的行列式,要求行列相同)。求行列式的基本想法就是通过初等行变换使之化成上三角,然后行列式就是主
2018-04-23 09:51:02
582
原创 BZOJ 3143: [Hnoi2013]游走(高斯消元+概率DP)
题面https://www.lydsy.com/JudgeOnline/problem.php?id=3143思路期望的一种算法是先算概率,最后乘值, 这里我们先求期望次数,再编号。显然的贪心就是给去的期望次数多的边编较小的编号。现在问题在于求经过每条边的期望次数。我们求出点的,自然可以通过边两边的点求出边的期望。由于点数很小,可以用高斯消元来求。随机任意游走,可以看做是稳定的,各个点的期望满足一个
2018-04-23 08:44:30
403
原创 BZOJ 3784: 树上的路径(点分治+ST表+堆堆堆)
题目喵述权限门题目大意:给一棵树,有N个点,有边权。所有无向路径中,请你输出前M大的。N<=50000 M<=Min(300000,n*(n-1) /2)思路树上超级钢琴。(拖延症的结果就是现在才写这题)学了一种点分治的套路,在做点分治的时候求出整棵树的dfs序。可以发现,每个点在dfs序列中出现不超过log次。我们不妨称其为点分治序。然后类比超级钢琴,将序列转换到树上。强制路径过分治中心,然后每
2018-04-19 07:08:05
380
原创 洛谷 P4462 [CQOI2018]异或序列(优雅的莫队)
题目自己看思路嗯,裸的莫队。复习莫队,离线将询问按左端点所在的块和右端点排序,然后求出[l,r]可以O(1)扩展一步。时间复杂度O(n^1.5)。这题就是求异或前缀和,然后我们发现扩张一个格子可以计算贡献,并在桶里加或减。注意这里的左端点要减1,莫队注意先搞右再搞左,代码还是写得很优雅的。
2018-04-18 19:00:37
380
1
原创 HDU 5307 He is Flying(巧妙的构造+FFT)
题目描述传送门题目大意:一个非负整数组成的数列,记其前缀和为S。对于一段子区间,它对其部分和的贡献为其区间长度。问对于从0到Sn的部分和,其得到的总价值。0 <=S<=50000 1<=n<=100000 T=5思路根据贡献放系数,位置为指数的套路,我们要想要构造出的答案为: (i−j+1)si−sj−1(i-j+1)^{s_i-s_{j-1}}我们要构造生成函数来算出它,反正我是想不到的了,
2018-04-17 19:19:48
428
原创 BZOJ 1014: [JSOI2008]火星人prefix(二分+Splay+Hash)
题目传送门点我思路复习一下Splay的基本(复杂)操作,字符串Hash什么的好久没写啦。用Splay维护Hash值即可,一开始我是写双Hash的,一直TLE(自带大常数的DS),实在受不了就改成单Hash了,是能过的。对于询问要二分一下,时间复杂度两个log。
2018-04-17 18:28:07
341
原创 BZOJ 1556: 墓地秘密(SPFA+状压DP)
题面 权限门思路黄学长的题,比较简单的状压DP,考试时写了一个多小时,然后因为一个小错误只拿了40分。比较明显的是,只有机关墙四周的点是有用的, 有用的点只有4*K个。我们记DP[S][i][d]表示到过S集合,最后碰到的机关墙是i,停在墙的方向为d。然后通过枚举下一步去哪里、什么方向可以进行转移。提前预处理出4*K个点两两之间的“转向”最短路,这个通过bfs或SPFA可以搞。我个人偏向写SPFA
2018-04-17 14:19:13
359
原创 SMOJ 2439 划分 & [CERC2017] Buffalo Barricades(set+扫描线+并查集+乱搞)
题目大意网格上有n个点(x,y),有q个询问,每次在(a,b)的右上角放一个向左和向下的栅栏,问栅栏围进了多少个点,每个栅栏碰到原来的栅栏或坐标轴就会结束。1<=n,q<=100000 1<=a[i],b[i]<=10^9 1<=x[i],y[i]<=10^9思路考试时的我是很naive的,看错题了,以为一个点只能贡献一次答案,写了一个假的CDQ+线段树,样例不过。其实从样例就可以看出一个点可能
2018-04-13 20:52:35
479
原创 bzoj 3309: DZY Loves Math(莫比乌斯反演+线性筛)
题面https://www.lydsy.com/JudgeOnline/problem.php?id=3309求∑i=1a∑j=1bf((i,j))\sum_{i=1}^a\sum_{j=1}^bf((i,j)) T<=10000,1<=a,b<=107T<=10000,1<=a,b<=10^7其中f(n)f(n)是nn所含质因子的最大幂指数。思路这个反演很简单,假设a<ba<b, ans=∑T
2018-04-11 19:43:14
348
原创 BZOJ 5248: [2018多省省队联测]一双木棋(对抗搜索+记忆化)
题目传送门https://www.lydsy.com/JudgeOnline/problem.php?id=5248思路显然每个局面,落子无悔后都是一个从上往下的非严格递减阶梯。所以有效的状态数只有很少,每一行减下一行非负,方案数用隔板法随便一算发现是Cnm+nC_{m+n}^n这么多,不到2∗1052*10^5。所以用一个(m+1)(m+1)进制数压一波,丢进map里哈希掉。然后每一行只能放末尾,
2018-04-09 16:56:47
479
1
原创 洛谷 P4245 【模板】MTT(三模数NTT)
题目の传送门https://www.luogu.org/problemnew/show/P4245思路模数任意的多项式乘法。本题有两种做法,一种是拆系数FFT,另一种就是我写的跑得炒鸡慢的三模数NTT。首先相乘后每一位可能达到NP2NP^2即102310^{23}那么大。我们找三个NTT模数使其乘积大于102310^{23},然后暴力合并是不行的,因为会爆long long,我们先暴力合并两个,然后
2018-04-08 20:22:56
920
原创 POJ 1006 Biorhythms(中国剩余定理)
题目传送门http://poj.org/problem?id=1006思路中国剩余定理果题。求x≡ai(modmi)x\equiv a_i(\mod m_i)的最小正整数解。简要说一下步骤,证明什么的网上有很多,不再赘述。首先令M=∏miM=\prod m_i,令Mi=MmiM_i=\frac{M}{m_i},求出MiM_i的某个倍数使得其满足模mim_i等于aia_i,即kMi≡ai(modmi)
2018-04-08 09:22:10
314
原创 洛谷 P2447 [SDOI2010]外星千足虫(高斯异或消元+bitset)
题目传送门https://www.luogu.org/problemnew/show/P2447思路高斯异或消元就是在模2环境下的高斯消元。解异或方程组跟解一般方程组的区别在于只考虑答案的奇偶性。(假如系数拆成只有0或1)就这题而言,直接高斯消元即可,我们确定当前行主元(为1)后,去消其他行时可以采取异或。当A[j][i]=1时,A[j][k]-=A[j][i]*A[i][k],如果A[i][k]=
2018-04-07 18:36:30
368
原创 洛谷 P1357 花园(状压DP+矩阵快速幂)
题目传送门https://www.luogu.org/problemnew/show/P1357思路显然的状压DP, F[i][S]+=F[i−1][S>>1]+F[i−1][(S>>1)+(1<<(m−1))]F[i][S]+=F[i-1][S>>1]+F[i-1][(S>>1)+(1<<(m-1))]转移的条件是状态皆合法,这个可以预处理。直接递推肯定不行,我们开一个32*32的矩阵,同时有一
2018-04-07 15:02:54
474
原创 hdu 6063 RXD and math(数论上来先打表)
题目喵述http://acm.hdu.edu.cn/showproblem.php?pid=6063一句话题意:求∑i=1nkμ2(i)⌊nki−−−√⌋\sum_{i=1}^{n^k}\mu^2(i)\lfloor\sqrt{\frac{n^k}{i}}\rfloor1≤n,k≤10181\leq n,k\leq 10^{18},模109+710^9+7。
2018-04-06 17:14:02
299
原创 hdu 5780 gcd(数论+欧拉函数+快速幂)
题目描述传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5780题目大意:求∑na=1∑nb=1(xa−1,xb−1),1≤x,n≤1000000,T≤300\sum_{a=1}^n\sum_{b=1}^n(x^a-1,x^b-1),1\leq x,n\leq 1000000,T\leq 300。思路这是一道数论小水题,但也不是我这个zz想得出来的。主要是
2018-04-05 21:18:54
464
原创 BZOJ 2553: [BeiJing2011]禁忌(AC自动机+期望DP+矩阵快速幂)
传送吧https://www.lydsy.com/JudgeOnline/problem.php?id=2553思路建出trie图。记f[i][j]为长度为i到节点j的期望。直接转移不行。建出trie图的邻接矩阵,然后自乘len-1次转移。具体就是如果当前点的儿子是禁忌点,就连向根(由儿子连长度多了1),否则连向儿子。这样就避免了重叠。而且有个显然的结论就是能走到禁忌点就走,肯定能取到最大值。我们在
2018-04-04 10:48:27
297
原创 UOJ #77. A+B Problem(可持久化线段树+最小割)
题目传送门http://uoj.ac/problem/77题解这题简直丧心病狂,调了一天都没发现自己错在哪。首先是一个很显然的最小割,见下图。别问我为什么画的这么丑,我…注意网络中的边都是单向边,边的方向很重要。与s相连代表选黑色,反之选白色。对于每个点i建出虚点i’然后对于会使i变的奇♂怪的j,由i’向j连边,容量为INF,代表如果i黑j白就要割掉pi。直接跑最小割肯定超时超内存,因为i’->j的
2018-03-30 09:00:15
519
原创 BZOJ 2820: YY的GCD(莫比乌斯反演)
题目描述传送门题目大意:求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对。多组数据。T = 10000 N, M <= 10000000思路最近沉迷刷数论水题,弱得瑟瑟发抖~枚举质数pp,套路反演一波ans=∑p∑i=1⌊np⌋μ(i)⌊npi⌋⌊mpi⌋ans=\sum_{p}\sum_{i=1}^{\lfloor{n\over p}\rfloor}\mu(i)
2018-03-28 20:30:28
332
原创 BZOJ 2006: [NOI2010]超级钢琴(ST表+优先队列)
题目描述传送门题目描述:给你一个长度为N的序列(N<=500,000),求长度在[L,R]中的前K(K<=500,000)大的连续子序列的和,其中-1000<=Ai<=1000。思路本来想写一道水题提升信心,结果没开long long调一年!枚举一段连续子序列的末尾,用ST表可以求出长度在[L,R]中的和最大的答案与开头的位置。这相当于找满足条件的最小的sum[y]。然后我们考虑如何取k个。好像可以
2018-03-28 15:12:33
232
原创 BZOJ 2154: Crash的数字表格(莫比乌斯反演)
题目描述传送门题目大意:有一个n*m的表格,第i行第j列的数是lcm(i,j),求表格内所有数的和对20101009取模的结果(n,m<=10^7)。题解简单的数论题。老套路,先假设n<=mn<=m。题目要求∑i=1n∑j=1m[i,j]\sum_{i=1}^n\sum_{j=1}^m[i,j]画一下柿子 ans=∑i=1n∑j=1mij(i,j)ans=\sum_{i=1}^n\sum_{j=1
2018-03-28 10:59:01
377
原创 BZOJ 4530: [Bjoi2014]大融合(LCT维护子树大小)
题目描述权限传送门题目大意:一个图,动态加边。保证不会出现环,问你一条边被多少条路径经过。点数和询问数不超过10^5.思路LCT维护子树大小。每个LCT上的点,维护其全子树大小sum_siz,虚子树(虚边连出去的子树)大小siz。一个点本身的大小算进siz里,在Splay过程中维护sum_siz,即sum_siz=son[0]->sum_siz+son[1]->sum_siz+siz。对于全子树大小
2018-03-27 10:26:04
388
原创 UOJ #207. 共价大爷游长沙(不用维护子树的LCT)
传送门题目大意:自己看题目吧。。思路这题真是机巧。为每一条路径随机一个权值,记录每条边上的异或值。对于一条删边,将其权值异或到新的路径上,用LCT维护。判断一条边是否被所有路径经过只用判断异或和是否相等就行了。中间要用map等小技巧,还是比较简单的,不用维护任何东西。但是难想。第一次写随机数冲突了,srand(num)比较可行。还有就是每次询问之前别忘了splay一下。还有一种维护子树异或和的做法,
2018-03-26 22:24:06
258
原创 BZOJ 2226: [Spoj 5971] LCMSum(数论+欧拉函数)
题目描述传送门题目大意:问你1到n中的数和n的lcm之和,T组询问。T <= 300000,n <= 1000000。思路一看就是比较套路的题。随便化简一下,大概是这样 ∑i=1n[n,i]=∑i=1nni(n,i)=n∑i=1n∑d=1n[(i,n)=d]id\sum_{i=1}^n[n,i]=\sum_{i=1}^n{ni\over(n,i)}=n\sum_{i=1}^n\sum_{d=1}^
2018-03-26 07:42:44
278
原创 BZOJ 3771: Triple(生成函数+FFT+容斥)
题目描述传送门题目大意:给一堆不同的数,问你从中取1-3个组成不同和的方案数,不考虑顺序。每个数的大小<=40000。思路简单的容斥。搞出取一个的生成函数AAA、取两个相同的生成函数BBB、取三个相同的生成函数CCC,然后答案就是A+A2−B+A3−3AB+2CA+A2−B+A3−3AB+2CA+A^2-B+A^3-3AB+2C。乘起来的过程用FFT加速就行了。这...
2018-03-26 07:16:33
285
原创 BZOJ 2750: [HAOI2012]Road(最短路+拓扑排序+递推)
题目描述传送门题目大意:给你一个n个点、m条边的有向图,问你每条边被多少条不同的最短路经过,答案对10^9+7取模,其中n<=1500,m<=5000。题解由于n、m都不大,一个显然的做法是枚举一个起点S,然后跑SPFA。对于一条边,如果它不在最短路图上,就肯定不会被算上。而一条边i->j在图上的充要条件是Dis[i]+l<=Dis[j],构出来这个图你就会发现这是个DAG。然后DAG上所有边都是从
2018-03-23 14:06:37
870
1
原创 bzoj 3881: [Coci2015]Divljak(AC自动机+fail树+dfs序+lca+bit)
题目描述权限门题目大意:给一个字符串集合S、一堆操作。操作1就是在在另一个集合T中加入一个串P,操作2就是问你S中第x个串是T中多少个串的子串。|S|,q<=1e5,S中串总长度L1和T中串的总长度L2分别<=2e6。题解考虑把S集合里的串那去建AC自动机,然后每次读入一个P,它的贡献就是从它在树上能匹配到的节点,沿着fail指针一直往上跳能走到的所有点。于是直接对S集合的串建出fail树,然后每个
2018-03-22 16:13:38
442
原创 BZOJ 1419: Red is good(期望DP)
题目描述权限传送门题解比较水的期望DP,但也让我悟到了一点关于期望的东西。题目描述得不可描述,看起来逼格很高。但平均就是期望,关键是最优策略这点。根据我幼稚的理解,期望是均值没错,但期望之所以叫期望是因为它在预知未来,当前这个状态期望的得分就是作出决策后未来能得到分数的均值。所以或许这就是期望DP的状态要倒过来推的原因吧。考虑f[i][j]为剩下i张红牌j张黑牌的在最优策略下的期望。根据我脚推的式子
2018-03-21 17:27:57
287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人