自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(187)
  • 收藏
  • 关注

转载 复活一天

还是在学校舒服啊... 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <algorithm> 5 #include <cmath> 6 using namespace std; 7 int m...

2018-09-10 16:23:00 180

转载 NOI退役啦

没进前一百签的上交一本高三加油喽转载于:https://www.cnblogs.com/Ren-Ivan/p/9357998.html

2018-07-24 07:43:00 211

转载 UOJ356 【JOI2017春季合宿】Port Facility

暴力就是O(n^2)连边,二分图,这样只有22分。我们考虑优化建边,我们按照左端点排序,对于一个新加进来的线段,我们向左端点距其最近的和他相交的线段连边,别的相交的我们连同色边,当一个点连了两条同色边我们就把它删掉,复杂度O(nlogn),边数O(n)。 1 #include <cstdio> 2 #include <cstring> 3 ...

2018-07-11 09:38:00 254

转载 codeforces838D - Airplane Arrangements

太妙啦!我们把座位摆成一个环,在添加另一个座位,表示坐了这个位置就会有人生气,那么我们现在要求的就是没人坐它的方案数Ans,但是这个并不好求,我们发现对于每个位置,它们的Ans都是一样的,而且Ans的和就是在这n+1个中选位置选方向的所有方案数中的空位置之和。所以Ans*(n+1)=All*(n+1-m),All=(2(n+1))^m 1 #include <c...

2018-07-02 08:19:00 107

转载 bzoj5342 CTSC2018 Day1T3 青蕈领主

首先显然的是,题中所给出的n个区间要么互相包含,要么相离,否则一定不合法。然后我们可以对于直接包含的关系建出一棵树,于是现在的问题就是给n个节点分配权值,使其去掉最后一个点后不存在非平凡(长度大于1)的连续区间。我们发现这个方案数和不存在不经过最大(小)值的非平凡连续区间的排列数是等价的。于是我们考虑$f[n]$为长度为$n+1$的答案,我们考虑去掉最小值。如果合法,那么...

2018-05-23 12:05:00 129

转载 uoj123 【NOI2013】小Q的修炼

搞了一下午+半晚上。其实不是很难。提答题重要的是要发现数据的特殊性质,然后根据不同数据写出不同的算法获得其对应的分数。首先前两个测试点我们发现可以直接暴搜通过,事实上对于每个数据都暴搜加上一定的次数限制,都可以获得两分的好成绩。 1 #include <cstdio> 2 #include <cstring> 3 #include &l...

2018-05-02 19:37:00 617

转载 loj548 「LibreOJ β Round #7」某少女附中的体育课

这道题好神啊!!!发现这题就是定义了一种新的卷积,然后做k+1次卷积。这里我们就考虑构造一个变换T,使得$T(a) \cdot T(b) =T(a∘b)$,这里是让向量右乘这个转移矩阵。于是我们可以得到$$\sum_{j=0}^{m-1}{T_{j,i} \sum{[k∘ l =j] a_{k} b_{l}} } = (\sum_{j=0}^{m-1}{T_{j...

2018-04-23 21:36:00 159

转载 loj6271「长乐集训 2017 Day10」生成树求和 加强版

又是一个矩阵树套多项式的好题。这里我们可以对每一位单独做矩阵树,但是矩阵树求的是边权积的和,而这里我们是要求加法,于是我们i将加法转化为多项式的乘法,其实这里相当于一个生成函数?之后如果我们暴力做的话,就是强行带入x插值,复杂度$O(8*2n*n^{3})$,还不够优秀,于是我们考虑用$dft$优化这个过程,这里我们需要找到一个三次单位根,于是我们考虑扩域的思想,我们把数表示为$(a...

2018-04-21 07:46:00 340

转载 省选前的考试日志

1.30先看了T3,发现是插头DP,码完发现n的范围1e18,发现有效状态数只有21,如果两行都没有东西的话,可以矩阵快速幂转移,打了两个多小时,之后一直在调,还剩90min左右时调完了,把前两题暴力打上了。之后看了看T1发现貌似是原来看过的一种高级线段树,不会,又想分块,不太清楚怎么维护。又看T2,好像也是矩阵快速幂,但是只有不到40min了,就没打,又看了看三道题就完了。T3数组...

2018-04-19 17:05:00 347

转载 loj553 「LibreOJ Round #8」MINIM

最简单的暴力dp就是f[i][j]表示到i异或和为j的最小花费。然后我们发现两堆大小为i,j的石子合并,可以更新到一堆大小为k=i,j最高公共的1以下都是1,以上是i|j,权值为v1+v2的石子。我们可以打表发现这个段数其实很小,其实也可以严谨的证明或者感性理解,但是我不会。。所以我们记录当前的所有f值以及端点然后暴力转移就可以了。 1 #include <...

2018-04-18 21:51:00 328

转载 bzoj5153&uoj348 【WC2018】州区划分

五十分就是裸的O(3^n)子集dp。$$f[S]*{w[S]^{p}}=\sum_{T \in S}{f[T]*{w[S-T]^{p}}}$$然后我们考虑优化这个dp,我们发现这是子集卷积的形式,于是我们就可以用fwt来优化这个dp。具体的,f[i][S]表示的是S的f值,当且仅当S中1的个数为i,别的f[i][S1]不正确也没有问题,因为我们转移时枚举的是1的个数,所以只...

2018-04-18 21:44:00 83

转载 bzoj3812&uoj37 主旋律

正着做不好做,于是我们考虑反着来,如何计算一个点集s的答案呢,一定是所有的方案减去不合法的方案,不合法的方案一定是缩完点后是一个DAG,那么就一定有度数为0的scc,于是我们枚举s的子集,就是说这些点构成的scc的度数为0,这里我们就需要容斥了,容斥的目的是算出s集组成不合法的DAG的方案数,因为我们没有办法确定这里有几个scc。于是我们提前处理出g[s]表示这里面的每种不同scc的方案...

2018-04-16 18:06:00 100

转载 bzoj4067 [Ctsc2015]gender

好神的一道题啊!我们发现题目中的ln的贡献非常傻逼,但是我们可以发现这个东西的取值只有40个左右,于是我们可以枚举他!枚举完了对于题里的贡献就是一个普通的最小割,采用的是文理分科的思想,与S连代表不改,与T连代表改,然后流量凑一下就可以了。那么我们怎么判断我们枚举的值和算出来的方案是否对应呢?我们发现K很小,于是我们可以对于每一层都状压状态,然后通过上面的网络流来计算当这层状...

2018-04-13 21:32:00 130

转载 loj6045 「雅礼集训 2017 Day8」价

我们考虑最小割。我一开始觉得是裸的最小割,就直接S到每个减肥药连up+p[i]的边,减肥药到药材连inf边,药材到T连up,然后得到了40分的好成绩。之后我发现这是一个假的最小割,最小割割的是代价或者得不到的收益,上面说的这种建图左边割掉的是收益,右边割掉的是代价,然后当然就gg了。所以我们把p取相反数,因为有负权,我们在给所有边加上一个UP,之后就可以直接建图最小割了。...

2018-04-12 09:17:00 110

转载 bzoj4904 [Ctsc2017]最长上升子序列

我们发现他让求的东西很奇怪,于是通过某D开头定理,我们转化为前m位的序列用k个不上升子序列最多能覆盖多少。数据范围小的时候可以网络流做,但是这道题显然不支持网络流的复杂度。然后有一个奇怪的东西叫杨氏矩阵,详见acdreamers acdreamers。但是我们又不能每次O(k)来扫,之后又有一个神奇的性质就是对于反串建的这个矩阵的形状和原矩阵转置的形状是一样的,于是我们可以在原矩阵...

2018-04-12 07:17:00 109

转载 loj536 「LibreOJ Round #6」花札

一眼二分图博弈,于是我们可以拿到69分的好成绩。二分图暴力加边的数目是O(n^2)的,于是我们考虑网络流优化建图,将alice的每个牌向其的颜色和编号节点连边,bob的每个牌由其颜色和编号节点向其连边,之后在分别和源汇连边,我们发现我们现在是要找哪些点在所有最大流的方案中都有流量流入,我们发现这样的点在跑完最大流后的残留网络上一定是源点所不能到达的,因为否则我们可以通过把这条路径以及...

2018-04-11 21:31:00 199

转载 bzoj5252 [2018多省省队联测]林克卡特树

斜率优化树形dp??我们先将问题转化成在树上选K+1条互不相交路径,使其权值和最大。然后我们考虑60分的dp,直接维护每个点子树内选了几条路径,然后该点和0/1/2条路径相连然后我们会发现最后的答案关于割的边数是一个单峰的函数,这时候事情就变得明朗起来个p我们考虑拿一条斜率为k的直线去切这个函数,切到的点是什么?是每选一条路径额外付出k点代价时的最优解,于是我们二分这个斜...

2018-04-10 20:14:00 96

转载 bzoj5251 [2018多省省队联测]劈配

直接网络流模拟即可AC。可持久化+暴力=90分,可持久化+二分=30分,暴力加边+二分=100分。我也很无奈啊。Ivan便涨红了脸,额上的青筋条条绽出,争辩道,“memcpy也是可持久化……memcpy!……OIer的事,当然是可持久化!”接连便是难懂的话,什么“可持久化无旋Treap套线段树启发式合并”,什么“暴力踩正解”之类,引得众人都哄笑起来。 1...

2018-04-10 20:04:00 106

转载 bzoj5250 [2018多省省队联测]秘密袭击

博主蒟蒻,目前还不会动态dp,所以下面说的是一个并不优秀的暴力,我会补的!我们考虑按权值从大到小依次点亮每个点,相同权值可以同时点亮,每次点亮后,我们进行一次树形背包。处理出$f[i][j]$表示i的子树中有j个亮点的方案数,然后就AC了。有两个小优化,一个是将背包的枚举上限设为min(size[x],K),此处size[x]为子树中点亮的点的的个数。还有就是我们可以把大...

2018-04-10 19:58:00 82

转载 bzoj5253 [2018多省省队联测]制胡窜

后缀自动机挺好毒瘤的题。我们考虑哪些切点是不合法的。肯定是所有的匹配串都被切了。我们考虑第一个切口的位置。当第一个切口在第一个出现位置前时,第二个切口必须切掉所有的串。当第一个切口在$l_{i}$和$l_{i+1}$间的时候(此时必须保证切掉第一个串),第二个切口必须切掉$s_{i+1}$到$s_{cnt}$这些串当第一个切口在$l_{cnt}$后时(此时依旧需要保证...

2018-04-10 19:49:00 126

转载 bzoj5249 [2018多省省队联测]IIIDX

转化一下问题变成给定一棵树,一个序列,求父亲的权值小于子树的最大方案。直接贪心会在有重复权值时出现错误,我们考虑用线段树优化贪心。将序列从小到大排序,线段树上每个点记录他和他右边当前还可用的权值,注意这里我们并不一定维护的都是正确的,但是我们要保证我们需要用到的限制一定都体现了出来,比如 1 2 5 5 5 5 5 6 7 8 9 K=2,我们放第二个点时,会放到3这个位置,于是...

2018-04-10 19:38:00 85

转载 bzoj5248 [2018多省省队联测]一双木棋

直接hash+爆搜即可。 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <algorithm> 5 #include <cmath> 6 #include <map> 7 #def...

2018-04-10 19:28:00 62

转载 HEOI2018 游记

day0早上没有跑操,收拾了点东西,带了点吃的,老妈打电话说要给送点厚衣服,好像确实有点冷。上午有考试,说自愿考,然后开到一半就没了,根本没人打啊,打了一道小园丁和老司机,一个一个部分分打,最后T了一个,和zzh学了一波卡常理论(结论)之后才卡过。然后妈妈来了,还带来了厚的衣服,突然感觉有点紧张,不过并没什么影响,然后坐上了去火车站的大巴,和zzh坐在一起,乱接零食,rp--,然后就又到...

2018-04-08 00:13:00 314

转载 bzoj2720 [Violet 5]列队春游

我们有梦想,我们可以暴算!枚举每个人i,再枚举他的视野k,然后组合数!300的阶乘。A了。 1 #include <cstdio> 2 #include <algorithm> 3 #define N 305 4 using namespace std; 5 int n,a[N],num[N]; 6 long double an...

2018-03-31 20:14:00 147

转载 bzoj3991 [SDOI2015]寻宝游戏

虚树,一直在想怎么在虚树里快速插入一个节点,其实不需要。考虑我们要求的是什么,是按dfs序排序后的相邻关键点的距离和,于是我们直接用一个set维护当前的关键点集合,并记录当前的答案,有修改就在set里插入或删除就好了。 1 #include <cstdio> 2 #include <cstring> 3 #include <iostr...

2018-03-14 15:51:00 84

转载 bzoj3598 [Scoi2014]方伯伯的商场之旅

数位dp,我们肯定枚举集合的位置,但是如果每次都重新dp的话会很麻烦,所以我们可以先钦定在最低位集合,dp出代价,然后再一步步找到正确的集合点,每次更改的代价也dp算就好了。 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include &lt...

2018-03-11 16:43:00 77

转载 bzoj3199 [Sdoi2013]escape

这题真tm是醉了。就是对于每个亲戚,利用其它的亲戚对他半平面交求出其控制的范围,然后随便跑个最短路就行了n=0卡了我一下午////// 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <algorithm&g...

2018-03-06 19:18:00 72

转载 bzoj2732 [HNOI2012]射箭

挺简单的一道半平面交的题。对于每条线段$ax^{2}+bx \in [s,t] $,然后把a,b看成变量,每条线段就是两个半平面,注意抛物线开口向下,要限制一下a,b。然后直接套板子就好了。 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 ...

2018-03-06 08:42:00 64

转载 bzoj5093 图的价值

我们对每个点单独考虑贡献,枚举其度数,别的点之间随便连$$ans=n\cdot2^{C_{n-1}^{2}}\cdot\sum_{i=0}^{n-1}{ {C_{n-1}^{i}} \cdot {i^{k}}}$$考虑$m^{n}$为将n个球放进m个盒子的方案数,于是我们枚举放到了几个盒子里,利用第二类斯特林数$$m^{n}=\sum_{i=0}^{m}{{C_{m}^{i}...

2018-02-27 17:26:00 54

转载 51nod1172 Partial Sums V2

推一下式子发现是裸的FFT,$ans[k]=\sum_{i}\sum_{j}[i+j=k]a[i]*C_{m-1+j}^{j}$比较坑爹的就是这个模数,于是我们上任意模数的FFT任意模数的FFT目的就是降低卷积中的元素上界,我们设$P=\lfloor \sqrt{mod} \rfloor$,我们将原函数中的系数变成两个$a1[i]=a[i]/P,a2[i]=a[i]%P,b1...

2018-02-27 08:09:00 103

转载 bzoj3771 Triple

生成函数+FFT之前做了几道感觉推完式子都是FFT的纯板子题,然后做这道题想到了容斥,但是不知道应该怎么上FFT,因为这个并不是纯卷积,或者说纯卷积十分累赘复杂。FFT其实只是一个多项式点值表达式和系数表达式之间转换的一个工具,我们要做的就是理清楚各个多项式之间准确的关系,或者把卷积转化成原始的for循环理解然而生成函数的原理是不能变的,生成函数i次方的系数就是代表对应权值为...

2018-02-26 20:52:00 56

转载 bzoj1478 Sgu282 Isomorphism

这道题也是一道不错的找规律polya原理的题我们可以发现,对于两种点的置换,如果他们的循环节完全一样,那么他们对于边的置换的循环也完全一样。我们又会发现,当一条边两侧的点位于同一循环中时,这些边构成的循环节共有${\frac{L_{i}}{2}}$个,$L_{i}$表示点的循环节长度当两点位于两个循环中时,这些变构成的循环节共有$gcd(L_{i},L_{j})$个。然后...

2018-02-25 20:30:00 102

转载 bzoj1547 周末晚会

我们要求方案数,还是旋转同构的,想burnside,如果我们能计算出转i位不变的满足条件的数量,那么这道题我们就解决了。考虑转i位时,设tmp=gcd(i,n),那么就共有tmp个循环节。当tmp<=k时,只要不是所有的循环节都是女生就可以,所以数量为2^tmp-1,但是要特判k>=n,因为这时所有方案都满足条件。当tmp>k时,我们需要在提前处理出符合条件...

2018-02-24 19:33:00 89

转载 辛普森积分

这两天看了看辛普森积分,觉得这是很好的骗分工具,正好也比较简单,就随便写一写。这个东西对于三次以下的函数是正确的,但是对于三次以上的函数我们可以将其近似为低次函数套用Simpson公式,这个东西学名好像叫自适应Simpson积分。先附上公式。算法的大概流程就是不断的递归求对应区间的积分,当当前层和下一层的相对误差比较小时就退出,从而得到比较准确的值,但是这个其实是可以被卡掉的,比...

2018-02-24 12:23:00 133

转载 bzoj3672 [Noi2014]购票

推一下式子发现就是普通的斜率优化,但是放到了树上,那么我们怎么做呢,树上有什么能保证复杂度的求路径的算法呢,点分治!但是这是有根树,我们对于首先处理点分治后的重心以及与根相连的那个块,之后我们将块中剩余的点按照向上扩展的最大深度排序,深度由大到小插入凸包,注意这里添加的点一定是在块内的,否则复杂度就错了。之后我们再处理其他的块。 1 #include <cstdi...

2018-02-22 18:47:00 90

转载 bzoj2388 旅行规划

凸包好题我一开始想的是线段树或平衡树维护最大前缀和,但是区间修改很恶心,后来想分块,发现貌似可以做,修改的话,中间的块打标记,两边的暴力重构,查询的话就是整块二分斜率为零的地方,边上的暴力查询。$O(nsqrt(n)log(n))$ 1 #include <cstdio> 2 #include <cstring> 3 #include...

2018-02-22 10:36:00 87

转载 bzoj3811 玛里苟斯

分三种情况讨论k=1时,对于每一位而言,只要有一个数这一位是1,那么这个就有0.5的概率是1,选他就是1,不选就是0,有第二个的话,在第一个选或不选的前提下,也各有0.5的几率选或不选,0和1的概率还是一半一半。所以无论有几个,只要有任意一个数该位不得0,期望就是(1<<i)/2。所以我们只需要把所有的或起来除以二即可。k=2时,我们需要记录每两位之间的贡献,如果所有...

2018-01-29 20:26:00 133

转载 bzoj2806 [Ctsc2012]Cheat

我们的目的就是找到一个最大的L0,使得该串的90%可以被分成若干长度>L0的字典串中的子串。明显可以二分答案,对于二分的每个mid我们考虑dp:f[i]表示前i个字符,最多能匹配上多少个字符。发现转移端点是个不断前进的区间,单调队列优化就可以了。 1 #include <cstdio> 2 #include <cstring>...

2018-01-29 14:17:00 76

转载 bzoj2555 SubString

后缀自动机+LCT维护parent树其实就是要求一个动态添加的right集合大小,每次添加改变的只有last以及他的parent链上的点,我们还要维护动态删边加边,于是LCT就是最好的选择。 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> ...

2018-01-29 14:12:00 57

转载 bzoj3998 [TJOI2015]弦论

后缀自动机我们建出后缀自动机,对于每个节点我们算出他和他的后继结点一共可以形成多少个不同的串,不同根据t来定义这里我们不需要考虑每个节点代表的那些等价类字符串,因为那些字符串不同的前缀在到达这个节点前已经确定了,所以我们只需要在t=1时一下考虑right集合的大小,right集合的大小需要在parent树上pushup,乱搞一下就好了。最后dfs一下即可。发现bzoj榜上...

2018-01-28 15:38:00 55

空空如也

空空如也

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

TA关注的人

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