自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(570)
  • 资源 (3)
  • 收藏
  • 关注

原创 LOJ#6032. 「雅礼集训 2017 Day2」水箱 (主席树)

传送门题解: 考虑最高木板,如果最终水位高于这个高度,那么全部都高于这个高度,枚举最终高度,用主席树快速查询贡献。 否则转化为子问题递归解决。#include <bits/stdc++.h>using namespace std;typedef pair <int,int> pii;const int RLEN=1<<18|1;inl...

2018-05-30 20:31:07 594

原创 Codeforces 944 G : Coins Exhibition (线段树)

传送门题解: 好题。 原来的区间把kkk分为O(n+m)O(n+m)O(n+m)段,我们只用关心这些段是否全为0/1,还是两种都有。 我们枚举当前段,当前一段为两种都有的情况时一定合法,如果全选0/1可能会不合法。 这时候我们只用关心这段最长的延伸距离,于是我们用线段树来维护fi,gifi,gif_i,g_i表示iii开始之后全为0/10/10/1的方案数。 转移的时候把不合法的全部置为...

2018-05-22 09:44:53 332

原创 Atcoder AGC003F :Fraction of Fractal

传送门题解: 神题。 传送门#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N=1e3+50,mod=1e9+7;inline int add(int x,int y) {return (x+y>=mod) ? (x+y-mod) : (x+y);}...

2018-05-21 21:23:43 414

原创 BZOJ5318: [Jsoi2018]扫地机器人(DP)

传送门题解: 考虑朴素DP,我们可以状压来转移。继续观察性质: 如果是n∗nn∗nn*n的方阵,那么副对角线元素相同。 如果是n∗mn∗mn*m的方阵,那么设d=gcd(n,m)d=gcd(n,m)d=\gcd(n,m),每个d∗dd∗dd*d的方阵都与第一个相同。且副对角线相同。这意味着我们不用状压,只需要枚举d∗dd∗dd*d的矩阵中向左移动dxdxdx,向下移动了dy=d−...

2018-05-21 15:52:40 778

原创 Atcoder AGC003D :Anticube(Pollard-Rho)

传送门题解: 注意到不能同时选的数是一一对应的。 那么直接Pollard-Rho即可。#include <bits/stdc++.h>#include <tr1/unordered_map>using namespace std;typedef long long LL;typedef __int128 IL;typedef map <LL,...

2018-05-18 21:35:20 381

原创 Topcoder SRM 648 Div1 850 :Fragile(DP)

传送门题解: 首先预处理nnn个点的连通图个数,这是个经典DP,自行百度。。然后我们考虑一个含有桥的图,我们枚举这个桥,然后桥的两边是个子问题递归下去做即可。 注意含有kkk个桥的图会被计算kkk次,最后除以k。注意不含桥的图可以用连通的减去不含桥的图。然后就可以DP了。时间复杂度O(n4logn)O(n4log⁡n)O(n^4 \log n )#include <bi...

2018-05-18 19:01:52 259

原创 Codechef : CLOWAY(特征多项式+二项式反演)

传送门题解: 先预处理出Gi,kGi,kG_{i,k}表示第iii个点走kkk步回到自己的个数(可以停留)。询问(l,r,k)(l,r,k)(l,r,k)时,我们把l,rl,rl,r的Gi,kGi,kG_{i,k}乘起来就得到了恰好kkk步走回自己的概率。 不过注意这样走可能存在某一步一张图都没有走,这时候是不合法的。 不过我们发现一个只走了jjj步的方案会被统计(kj)(kj)\b...

2018-05-17 20:15:26 544

原创 CS Academy #32 G:Sum of Powers (旋转体积背包)

传送门题解: 用整数划分的方法做旋转体积背包处理出fi,jfi,jf_{i,j}表示将整数iii划分为jjj个数的方案数。然后对于每个数枚举至少被算几次即可。 时间复杂度O(nk)O(nk)O(nk)#include <bits/stdc++.h>using namespace std;const int N=5e3+50, mod=1e9+7;inline in...

2018-05-17 11:38:22 483

原创 Atcoder AGC007E : Shik and Travel(DP)

传送门题解: 先二分然后在树上DP。注意到一个子树一定是只进出一次,进去的长度是一个点的深度,出来的长度是另一个点的深度。我们可以对一个点维护一个子树所有这样的状态的单调队列,合并后显然大小为较小子树的大小*2。 时间复杂度O(nlog2n)O(nlog2⁡n)O(n\log^2 n)。#include <bits/stdc++.h>using namespace ...

2018-05-16 14:08:14 569

原创 BZOJ4650: [Noi2016]优秀的拆分(Hash/SA)

传送门题解: 问题首先转化为每个位置向前和向后的square串个数的乘积和。处理square串有nlognnlog⁡nn \log n做法: 首先枚举square串AAAAAA的长度的一半LLL(也就是AAA)的长度,然后square串必然经过两个相邻关键点,我们对于相邻两个串求lcs和lcp即可知道哪些位置是合法的,然后差分一下就行了。用后缀数组维护lcp,lcs,时间复杂度O(...

2018-05-12 11:17:57 247

原创 BZOJ4944: [Noi2017]泳池(线性递推)

传送门题解: 首先转换问题为最终面积小等于kkk的个数。注意到最终图形的底边会被禁止的地方分为不同段,每一段的最大面积都不能超过kkk,那么我们记fifif_i为底边长度为iii且他的上方的图形最大面积不超过kkk的概率,然后就是线性递推了。考虑如何处理fifif_i,这一段底边一定会向上延伸至某个地方jjj被卡住,然后这个jjj位置相当于把这个图形切为两半,满足两边的高度大于jjj...

2018-05-11 20:21:26 461

原创 51Nod1355:斐波那契的最小公倍数 (min-max容斥+Mobius反演)

传送门题解: 对于fib数列有gcd(i,j)=fgcd(i,j)gcd(i,j)=fgcd(i,j)\gcd(i,j) = f_{\gcd(i,j)}(可用归纳法证明)。 那么对于gcd(f{T})gcd(f{T})\gcd(f_{\{T\}}) 显然等于fgcd{T}fgcd{T}f_{\gcd\{T\}}。怎么求lcm? 直接min-max对指数容斥即可,易得: lcmf{T}...

2018-05-09 21:28:23 734 1

原创 HDU5852:Intersection is not allowed!(Lindström–Gessel–Viennot引理)

2018-05-08 21:09:15 428

原创 LOJ#6036. 「雅礼集训 2017 Day4」编码(2-SAT)

传送门题解: 对于每个串,在Trie树上找到他’?’处填0或者1的位置。 那么他的子树中(不包括他)的所有串不能选。 对于他这个节点我们记录一个前缀后缀就可以做到O(n)O(n)O(n)了。#include <bits/stdc++.h>using namespace std;const int N=1e6+50;typedef pair <int,int&...

2018-05-08 19:55:57 689

原创 HNOI2018 题解

Day1寻宝游戏对于qiqiq_i每一位分别考虑,如果为111,首先一定存在|1|1|1操作,而且在最后一个|1|1|1操作后全为&1&1\text{&}1和|0|0|0操作。我们发现把运算符写为二进制数(右边为高位,|||为0,&&\text{&}为1),最后结果为1的充要条件是存在某个最高位原来为111填入运算符为0,且更高位相等,也就是字典序小于原...

2018-05-08 16:09:55 485

原创 BZOJ4785: [Zjoi2017]树状数组(树套树)

传送门题解: 相当于询问你al−1al−1a_{l-1}和arara_r相同的几率(注意特判l=1l=1l=1的情况)。记他们相等的几率为p0p0p_0,不等的几率为p1p1p_1,考虑一个询问对这个几率的影响: 1.只包含l−1l−1l-1或者rrr。 此时有1len1len\frac{1}{len}的几率p0,p1p0,p1p_0,p_1互换。 2.同时包含l−1,rl−1,r...

2018-05-06 21:05:46 221

原创 BZOJ4784: [Zjoi2017]仙人掌(DP)

传送门题解: 好题。先把仙人掌的环去掉变为若干树的问题。对于一种方案,我们把没有被覆盖的边看做重边,那么每种方案对应着一种把边覆盖完的方案。 我们发现任意一种合法的方案,从每个子树都有向父节点连的一条边,一共有degidegideg_i条边(加上当前点向上到父节点的边)。 我们要把这些边组合起来或者直接连到当前点,并连一条边出去。 这个方案数很简单:gi=gi−1+(i−1)∗gi...

2018-05-06 20:58:50 207

原创 BJ模拟:Mr. Panda and Tube Master(费用流)

传送门题解: 考虑黑白染色,把原来的点拆为两个点,令黑点左右连边,白点上下连边做最大匹配。 如果不是必需点,则自己和自己连边。显然任意合法方案都对应着一组匹配,而任意一组匹配都可以还原出一个方案。 我们做最大费用最大流即可。#include <bits/stdc++.h>using namespace std;inline int rd(int x=0) {re...

2018-05-05 14:25:12 387

原创 BJ模拟:Mr. Panda and Fantastic Beats(广义SAM)

传送门题解: 对所有串建广义SAM,我们可以知道每个串是否只在1出现。 然后在SAM上贪心即可。#include <bits/stdc++.h>using namespace std;const int N=5e5+50, L=26;int son[N][L],len[N],fail[N],id[N],mx[N],mn[N],mnlen[N],lst,tot;i...

2018-05-05 10:44:25 360

原创 整数划分问题的高效解法 (n logn)

一般此类问题可以看做是一个背包问题,不过有更优秀的解法。1.数字互不相同(51nod1201)(O(nn‾√)O(nn)O(n \sqrt {n}))注意到最多有O(n‾√)O(n)O(\sqrt{n})个数相加,则记fi,jfi,jf_{i,j}表示jjj个数和为iii的方案数。我们讨论一个方案的最小值是否为1,如果为1,则fi−1,j−1→fi,jfi−1,j−1→fi,jf_{i...

2018-05-04 20:14:53 2828 1

原创 BJ模拟:cut(Gomory–Hu 树)

传送门题意: 给一个n∗nn∗nn*n的矩阵AA A,要求构造一个图GGG,使得GGG中(i,j)(i,j)(i,j)的最小割为Ai,jAi,jA_{i,j}。 输出任意一个满足条件的图或判断无解。题解: 任意一个满足条件的图可以转化为一颗GomoryHu树,我们只需要构造出这样的一颗树即可。 利用GomoryHu树的知识,现在的条件变为了(i,j)(i,j)(i,j)在树上路径的最...

2018-05-04 17:05:51 424

原创 BZOJ4519: [Cqoi2016]不同的最小割(Gomory–Hu 树)

传送门题解: 两两之间的最小割等价于在Gomory–Hu 树上的最短边,同时告诉我们最小割最多只能有n-1种。 我们把Gomory–Hu 树建出来即可。Wiki:Gomory–Hu Tree 题解:#include <bits/stdc++.h>using namespace std;typedef pair <int,int> pii;const ...

2018-05-04 16:18:11 331

原创 BJ模拟: Mortal Kombat(匈牙利算法+Tarjan)

传送门题意: 判断一个二分图的每条边是不是完备匹配的必需边。题解: 先求完备匹配。 分两种情况: 1.iii不在完备匹配中,则(i,j)(i,j)(i,j)不是必需边,且我们递归下去,jjj的匹配点也可以看做不在完备匹配中(相当于切换增广路)。2.(i,j)(i,j)(i,j)在完备匹配中,如果第一种情况没有递归到这条边的话,那么只能是一堆已经匹配的点在切换。 我们把原图的边按...

2018-05-04 11:56:24 245

原创 BJ模拟:Rectangle Query(bitset)

传送门题解: 用bitset+分块求点集交。 去重类似记pre,以横坐标为例,如果两个点横坐标相同且会同时被计算,那么我们保证只统计下面的点即可。为了保证这一点我们把这个点复制一份到新图的下面的点的位置上去,然后再求一次点集交即可统计有多少被算重。时间复杂度:O(nn−−√+nq64)O(nn+nq64)O(n \sqrt{n} + \frac{nq}{64})#include &...

2018-05-03 19:02:11 176

原创 BJ模拟:Different Trips(树上后缀数组)

传送门题解: 后缀数组。树上唯一的不同是第二关键字要先计数排序。#include <bits/stdc++.h>using namespace std;typedef unsigned long long ULL;const int RLEN=1<<18|1;inline char nc() { static char ibuf[RLEN...

2018-05-03 14:38:40 398

原创 HDU4624:Endless Spin(min-max 容斥)

传送门题解:利用期望公式: E[max{S}]=∑T∈S(−1)|T|+1E[min{T}]E[max{S}]=∑T∈S(−1)|T|+1E[min{T}]E[\max\{S\}] = \sum_{T \in S} (-1)^{|T|+1} E[\min\{T\}]我们对于每个子集算期望, 容易知道为n∗(n+1)2sumn∗(n+1)2sum\frac{\frac{n*(n+1)}...

2018-05-02 20:57:06 1271

原创 LOJ#114. k 大异或和(贪心)

传送门题解: 建出线性基后按位贪心即可。 注意不能选空集。#include <bits/stdc++.h>using namespace std;typedef long long LL;const int RLEN=1<<18|1;inline char nc() { static char ibuf[RLEN],*ib,*ob; ...

2018-05-02 19:55:38 332

原创 TCO2017 Final 部分题解

TCO2017 FinalRabbitAndTable从大到小枚举桌子大小,这样所有可选的兔子就是等价的了。记fifif_i为已经用了iii只兔子的方案数,那么我们只需要枚举当前桌子大小和个数即可转移,时间复杂度O(n2logn)O(n2log⁡n)O(n^2 \log n)CodeGameOfTokens不公平博弈的模板题。考虑Alice必胜的条件,如果我们能够计算出...

2018-05-02 18:58:42 555

原创 TCO2017 Semifinal 部分题解

Semifinal 1ReverseAndIncrease只需要知道s能够到达的最小的数。如果s不为形如99999的数,我们总能把他变为形如10002的数。 然后直接判断CodeColorfulEnclosure我们固定左端点,然后右端点从右往左扫描。 如果我们对每个点维护一个fifif_i表示当下边界为iii上边界至少要为fifif_i的话,每次删除点相当于checkm...

2018-05-02 16:39:03 339

原创 TCO2017 Round3 A,B 部分题解

Round 3ACoprimeMatrix我们枚举质数然后判断矩阵是否合法,具体看代码吧。CodeHiddenRabits经典套路题,对于记fi,jfi,jf_{i,j}表示jjj号点是否在iii的子树中然后做2-SAT即可。CodeRound 3BHarmoniousGardenL是奇数则环与环之间只能共有一个点,直接判断最小个数即可。否则环与...

2018-04-29 11:55:45 315

原创 TCO2017 Round2 A,B,C 部分题解

Round 2ADistanceZeroAndOne两点连边的条件是某一维距离相差1且另外一维相差不超过1, 如果能这样构造出一个图则有解,否则无解。CodeFoutLamps这种异或区间首先应该想到记录前缀和,然后我们发现问题变为了我们可以把这个前缀和区间的某三个转化,具体转移为 : 001↔011,100↔110001↔011,100↔110001 \leftrightar...

2018-04-28 15:35:23 314

原创 BZOJ2784: [JLOI2012]时间流逝(树形期望DP)

传送门题解: 任何时候所拥有的球的状态是一个整数划分,且不超过TTT,打表发现不过1.2e61.2e61.2e6种左右。 进一步发现这些关系形成了一棵树, 然后就是经典的树形期望DP,令Ei=kEfai+bEi=kEfai+bE_i = kE_{fa_i}+b即可在O(n)O(n)O(n)的时间内解决。#include <bits/stdc++.h>using name...

2018-04-24 21:28:29 295

原创 YY模拟:和(CRT+倍增)

题意: 给定m,Tm,Tm,T,TTT次询问,每次询问给定NNN,求 : ∑i=1nik(modm)∑i=1nik(modm)\sum_{i=1}^n i^k \pmod{m}其中n,m,k≤1e18,T≤3000n,m,k≤1e18,T≤3000n,m,k \le 1e18 ,T\le 3000,且mmm的最大质因子ppp不超过3e53e53e5。题解:设m=∏i=1spaii...

2018-04-24 19:32:39 321

原创 YY模拟:幂(CRT+Pollard-Rho)

题意: 给定nnn,求最小正整数kkk,使得任意aaa满足ank≡a(modn)ank≡a(modn)a^{n^k} \equiv a \pmod{n},无解输出−1−1-1。 n≤1e18n≤1e18n \le 1e18题解: 首先若nnn含平方质因子ppp,那么令k=pk=pk =p ,结果一定是p2p2p^2的倍数, 无解。否则根据CRT得到loglog\log个同余方程:an...

2018-04-23 15:21:36 189

原创 Codeforces Round #349 (Div. 1) (666E) :E. Forensic Examination(后缀树)

传送门题解:先把所有串连接起来,用后缀自动机建后缀树(前缀树?)。一个串在另一个串中以子串形式出现,那么一定是子串某个前缀的后缀。 利用后缀自动机的性质,我们把所有模式串的每个结束位置都标记,那么包含匹配串的模式串的结束位置在fail树上的位置位于当前位置的子树中。线段树合并即可。注意找结束位置需要子串定位,我们倍增 fail链。#include <bits/stdc...

2018-04-23 11:13:24 142

原创 BJ模拟:帐篷(凸包)

传送门题解: 凸包。注意n,mn,mn,m很大时答案为周长,而周长最小则自动满足凸性,我们只需要枚举起始点即可O(n2)O(n2)O(n^2)DP。时间复杂度为O(n3)O(n3)O(n^3)。n,mn,mn,m很小的时候我们多记录一个前驱即可。 注意DP要从横纵坐标最小的点开始,不然最后首尾的三个点可能不会满足凸性。这一部分的时间复杂度为O(n4)O(n4)O(n^4 ),预处...

2018-04-20 21:39:51 216

原创 YY模拟:绝对伏特加(数学期望)

题意: AlanAlan\text{Alan} 在玩骰子游戏,AlanAlan\text{Alan} 会玩nnn 轮骰子,每轮的数值在[1,K][1,K][1,K] 中随机出现。记aiaia_i 表示nnn 轮投掷中,数值iii 出现的次数,求aF1∗aF2∗...∗aFLa1F∗a2F∗...∗aLFa^F_1*a^F_2* ... * a^F_L 的期望。答案对200320032003...

2018-04-19 20:21:31 425

原创 BJ模拟:医院(支配树)

传送门题解: 新建SSS点连向所有普通护士。 注意到两个特殊护士能放假的等价条件是支配树上的lca为S,一个普通护士和一个特殊护士不能放假的条件是后者在支配树上位于前者子树中,建出支配树即可。#include <bits/stdc++.h>using namespace std;typedef long long LL;const int RLEN=1<&...

2018-04-18 21:07:54 251

原创 BJ模拟:Circle Of Stone(KMP)

传送门题意: 桌子上有 nnn 个石头围成一个环。每个石头都有一种颜色。每种颜色可以由小写英文字母表示,所以总共有262626种颜色。不同的石头可能有相同的颜色。 如果每一对相邻的石头都是不同颜色的,则称这 nnn 个石头构成的环是美丽的。两个石头是相邻的充要条件是这两个石头中间没有其它石头。 现在,你可以从这 nnn 个石头中拿走一段连续的石头(可以为空),且你只能拿一...

2018-04-17 21:50:24 256

原创 YY模拟:跳蚤(分块)

题意: 维护以下三个操作: 1. 在位置xxx 放置一只每次向右(坐标增大方向)跳ttt 格的跳蚤。 2. 命令所有跳蚤向右跳跃一次,跳跃的距离为各自的ttt。 3. 给定区间[l;r][l;r][l; r],求该区间内跳蚤的个数。 (Q≤1e5,1≤x,ti≤1e5,1≤li≤ri≤1e5Q≤1e5,1≤x,ti≤1e5,1≤li≤ri≤1e5Q \le 1e5, 1\le x,t_...

2018-04-16 16:48:20 389

pb_ds库在OI中的应用

pb_ds库在OI中的应用 pb_ds库在OI中的应用 pb_ds库在OI中的应用 pb_ds库在OI中的应用 pb_ds库在OI中的应用 pb_ds库在OI中的应用 pb_ds库在OI中的应用 pb_ds库在OI中的应用 pb_ds库在OI中的应用 pb_ds库在OI中的应用 pb_ds库在OI中的应用 pb_ds库在OI中的应用

2017-09-07

clj计数专题(期望DP等)

陈立杰计数专题讲稿。

2017-03-29

斯特林数/斯特林数/.pptx

介绍了一些斯特林数的常用技术。

2017-03-15

空空如也

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

TA关注的人

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