自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [后缀自动机][阈值] LOJ #6031. 「雅礼集训 2017 Day1」字符串

Solution" role="presentation" style="position: relative;">SolutionSolutionSolution因为qk=P" role="presentation" style="position: relative;">qk=Pqk=Pqk = P是一个常数,想到可以阈值。 当k<S" role="presentation

2018-01-25 17:58:09 964

原创 [线性基] BZOJ 4269: 再见Xor

SolutionSolutionSolution划水中。。迟早要完 显然要线性基。。 考虑求kkk大。 对于基的每一个位置,因为其最高非零位就是位置标号,那看一下kkk的这一位是否为111,看是否要异或上(或者不异或)使得这一位得到的答案较大。#include &lt;bits/stdc++.h&gt;#define show(x) cerr &lt;&lt; #x &lt;&lt...

2018-01-24 16:14:27 286

原创 [原根][数论][二项式定理] LOJ #6247. 九个太阳

SolutionSolution原题 wans====GP−1k∑i=0n(ni)[k∣i]∑i=0n(ni)1k∑j=0k−1wij1k∑j=0k−1(wj+1)n\begin{eqnarray}w & = & G^{P-1\over k}\\ans & = & \sum_{i=0}^n{n\choose i}[k\mid i]\\ & = & \sum_{i=0}^n{n\cho

2018-01-24 14:42:55 448

原创 [齐次常数线性递推式][多项式取模] LOJ #6017. Shlw loves matrix I

SolutionSolutionSolution要求的东西是An−k+1hAn−k+1hA^{n - k + 1}h。 记得以前数学竞赛的同桌大佬告诉我特征方程~xkf(x)==∑i=1khixk−ixk−∑i=1khixk−i(5)(6)(5)xk=∑i=1khixk−i(6)f(x)=xk−∑i=1khixk−i\begin{eqnarray}x^k & = & \sum_{i = 1...

2018-01-24 14:35:22 631

原创 [树形DP][后缀自动机][后缀树] CodeChef January Challenge 2018 KILLKTH

SolutionSolution反串的后缀自动机的parent树就是原串的后缀树。 按dfs序记录子树大小前缀和,二分位置。 定位后就可以在节点内二分(可以直接算的啦)#include #define show(x) cerr using namespace std;typedef long long ll;typedef pairint, int> Pairs;con

2018-01-23 21:04:39 363

原创 [杜教筛][莫比乌斯反演] LOJ #6229. 这是一道简单的数学题

SolutionSolution求∑i=1n∑j=1iij(i,j)2\sum_{i=1}^n\sum_{j=1}^i{ij\over(i,j)^2}可能算是裸题? 相当于求12∑d=1n(d[d=1]+d2φ(d))⌊nd⌋{1\over2}\sum_{d=1}^n\big(d[d=1]+d^2\varphi(d)\big)\lfloor{n\over d}\rfloor 关于idn⋅φ

2018-01-18 12:36:05 759

原创 [FFT][离散对数][原根] LOJ #6156. A * B Problem

SolutionSolutionSolution刚开始看错题了。。。其实就是一个FFT裸题 如果p∤a,p∤bp∤a,p∤bp\nmid a,p\nmid bab≡k(modp)ab≡k(modp)ab\equiv k\pmod p是与logGa+logGb≡logGk(modφ(p))logG⁡a+logG⁡b≡logG⁡k(modφ(p))\log_Ga+\log_Gb\equiv \l...

2018-01-18 10:49:23 681

原创 [最大团][二分图] LOJ #526. 「LibreOJ β Round #4」子集

SolutionSolution边(i,j)(i,j)存在当且仅当[(ai,aj)≠1∨(ai+1,aj+1)≠1][(a_i,a_j)\neq1\vee(a_i+1,a_j+1)\neq1]。 就等价于求最大团。 随机乱搞好像这种题都过不了qwq 发现一个性质,aia_i与aja_j奇偶性相同时是必定有边的。考虑补图的最大独立集,显然这是一个二分图,跑最大匹配就好啦。#incl

2018-01-17 18:56:14 450

原创 [FWT][DP] UOJ #310. 【UNR #2】黎明前的巧克力

SolutionSolutionDP很好想。 设ii个巧克力的集合幂级数fif_i,其中fi,0=1,fi,ai=2f_{i,0}=1,f_{i,a_i}=2。 答案就是这一堆东西对称差卷积起来。 暴力的做法就是把每个都FWT一下再乘起来。 集合幂级数ff的沃尔什变换fS^=∑T⊆U(−1)|S∩T|fT\hat{f_S}=\sum_{T\subseteq U}(-1)^{|S\cap

2018-01-17 10:12:46 444

原创 [Contest]CodeChef January Challenge 2018

RECTANGL:学习了ifif语句的用法。 MAXSC:贪心。 KCON:贪心。 PRTITION:乱搞题。 STRMRG:O(n2)O(n^2)DP。 MONSTER:整体二分+暴力。。 XYHUMOQ:奇妙的搜索。。设f0,f1,g0,g1f_0,f_1,g_0,g_1分别表示前(后)一半以0/10/1结尾(开头)方案数相应的操作的最小值。就有g0=x−(f0+1)(g1+1)+

2018-01-15 20:09:50 447

原创 [子集DP][Lucas定理] BZOJ 4903: [Ctsc2017]吉夫特

SolutionSolution原来可以把简单的题面写的那么长~ 根据Lucas定理,(nm)≡(⌊n2⌋⌊m2⌋)(nmod2mmod2)(mod2){n\choose m}\equiv {{\lfloor{n\over2}\rfloor}\choose{\lfloor{m\over2}\rfloor}}{n\bmod2\choose m\bmod 2}\pmod2有(00)=1,(01)

2018-01-15 16:32:13 506

原创 [最小割] ARC 074 F - Lotus Leaves

SolutionSolution这样建图:对每一行每一列都建一个点,连向行内的荷叶。 那这道题就相当于删去最少的点使得源汇点不连通。 按这里一样建图就好了。 又忘记写当前弧优化了#include using namespace std;const int N = 233;const int INF = 1 28;struct edge { int to, ca

2018-01-10 15:18:15 350

原创 [DP] ARC074 E - RGB Sequence

SolutionSolutiondpr,g,bdp_{r,g,b}表示考虑前max{r,g,b}max\{r,g,b\}个格子,三种颜色最后一次放在r,g,br,g,b位置的方案数。 把不合法的(r,g,b)(r,g,b)三元组ban掉就好了。#include using namespace std;const int MOD = 1000000007;const int N

2018-01-10 14:09:45 301

原创 [数论][构造][离散对数] Codeforces 913 G. Power Substring

SolutionSolution设aa长度为nn。 可以尝试构造一个数bb,使得a⋅10m+ba\cdot10^m+b成为其后缀。 就等价于x=a⋅10m+b≡2k(mod10n+m)x=a\cdot10^m+b\equiv2^k\pmod {10^{n+m}} 构造k≥n+mk\ge n+m,那要满足这样的kk就等价于2n+m∣x∧5∤x2^{n+m}\mid x\wedge5\nmi

2018-01-10 12:59:28 638

原创 [回文自动机][树形DP] CodeChef PALPROB

SolutionSolution建出回文自动机,每个节点再维护一个halfuhalf_u指针,指向长度不超过⌊lenu2⌋\lfloor{len_u\over2}\rfloor的最长回文后缀。 树形DP出每个点的nessness表示回文指数,答案就是∑nessu∗|rightu|\sum ness_u*|right_u|。 failfail链上的节点的lenvlen_v一定是递减的。可以倍

2018-01-09 11:41:53 340

原创 [回文自动机][阈值] BZOJ 4932: 基因

SolutionSolution关于回文自动机的前端插入:一个回文串的回文前缀显然是其回文后缀。实现两端插入需要记录两个指针lastback,lastfrontlast_{back},last_{front},注意当最长回文前(后)缀为原串时,两个指针就相同了。一个串的子串的回文自动机是这个串的回文自动机的子图。因为增量法构造回文自动机时是不会改变原有的自动机的。这道题的话阈值B=n

2018-01-09 09:32:14 720 1

原创 [回文自动机] BZOJ 3676: [Apio2014]回文串

SolutionSolution回文自动机有很多性质是和后缀自动机很相似的。 这个题可以类似于SAM,在每个节点uu维护一个righturight_u。答案就是max{|rightu|∗lenu}max\{|right_u|*len_u\} 关于回文自动机的复杂度,可以势能分析。#include using namespace std;const int N = 303030;

2018-01-08 11:15:21 331

原创 [博弈论][凸包][复杂度分析] SRM 597 Div1 Medium ConvexPolygonGame

SolutionSolution设WiW_i为第ii次操作后可以得到的凸多边形的集合。 显然有Wi⊆Wj,i>jW_i\subseteq W_j,i\gt j。 所以如果最开始不能操作则先手必败,否则先手必胜。 问题就在于判断凸多边形中是否存在三点不共线。 暴力判断是O(X2)O(X^2)的。 转化成任意三点共线,这样的点数不超过max(maxX−minX,maxY−minY)max

2018-01-07 20:42:12 413

原创 [树形DP] SRM 598 Div1 Hard TPS

SolutionSolution可以枚举根,在根放一个信标,就可以区分出深度不同的点。若在节点uu放信标,则可以区分出点vv是否在uu内。可以考虑从disu,v=depu+depv−2deplca(u,v)dis_{u,v}=dep_u+dep_v-2dep_{lca(u,v)}求出deplca(u,v)dep_{lca(u,v)},再与depudep_u比较即可。若节点uu的两个子树

2018-01-07 18:35:21 347

原创 [组合数] SRM 555 Div1 Medium XorBoard

SolutionSolution枚举行列进行奇数次操作的个数,组合数算一下就好了。// BEGIN CUT HERE// END CUT HERE#line 5 "XorBoard.cpp"#include using namespace std;const int N = 3333;const int MOD = 555555555;typedef long lon

2018-01-06 13:16:01 309

原创 [容斥原理][复杂度分析] SRM 555 Div1 Hard MapGuessing

SolutionSolutionSolution可以枚举磁头的初始位置,计算出哪些地方是可以随便赋0/10/10/1的。 但这样一个初始序列可能会被多个磁头满足。就要用容斥去重。ans=∑T⊆S(−1)|T|+12|P|P=⋂R⊆TRans=∑T⊆S(−1)|T|+12|P|P=⋂R⊆TRans=\sum_{T\subseteq S}(-1)^{|T|+1}2^{|P|}\\P=\bigca...

2018-01-06 09:42:37 429

原创 [插头DP] BZOJ 2331: [SCOI2011]地板

SolutionSolution好菜啊。。第一次写插头DP。。。 这个LL型砖块具有特征的就是在之前DP的状态有没有拐过弯。 用00表示没有插头,11表示未拐弯的插头,22表示已拐弯的插头。 大力分类讨论。 然后这种题打的时候专注一点吧。。 刚开始暴力map,T掉了。。还是得用Hash表。#include using namespace std;const int

2018-01-05 09:25:43 391

原创 [最长路][二分图]Codeforces 542 E. Playing on Graph

SolutionSolution如果图中存在奇环,那么这个奇环缩了以后还是会产生一个奇环,最后一定会缩到一个三元环,显然无解。 所以说合法的图一定是一个二分图。 对于从某一点开始的链,把距离它距离相同的点可以缩起来,因为这些点肯定在二分图的某一部,是没有边相邻的。所以答案就是每个联通块的直径长度的和。 跑最长路就好了#include <bits/stdc++.h>using namespac

2018-01-04 14:31:56 524

原创 [容斥原理][Meet-in-middle][Matrix-Tree定理] SRM551 Div1 Hard SweetFruits

SolutionSolutionSolution将原问题分成两个子问题。从所有甜的水果中选出kkk个水果作为真甜的,要求他们甜度之和不超过maxSweetnessmaxSweetnessmaxSweetness的方案数cntkcntkcnt_k令nnn为甜的水果数目,求出组成的树的方案数treektreektree_k使得nnn个甜的水果中恰有kkk个水果为真甜的。 ans=∑k=0...

2018-01-04 09:01:12 525

原创 [容斥原理][DP] SRM 498 Div1 Hard FoxJumping

SolutionSolution对不能走(+ai,+ai)(+a_i,+a_i)容斥,设dpp,qdp_{p,q}表示走了pp步不合法的,和为10q10q的方案数。 同时DP出x,yx,y两个方向上走了pp步,长度为qq的方案数xp,q,yp,qx_{p,q},y_{p,q}。因为此时x,yx,y独立,最后计算的时候直接乘起来就好了。 那最后答案就是∑p=0R∑q=0⌊min(m,n)10⌋(−

2018-01-03 17:17:50 445

原创 [树状数组] ARC075 E - Meaningful Mean

SolutionSolution设aia_i的前缀和为SiS_i。满足条件的区间[l,r][l,r]相当于Sr−Slr−l≥k{S_r-S_l\over r-l}\ge k,整理一下就是sr−kr≥sl−kls_r-kr\ge s_l-kl。 设fi=si−kif_i=s_i-ki,题目求得就是fl≤fr,l<rf_l\le f_r,l\lt r的点对(l,r)(l,r)个数。 树状数组。#in

2018-01-03 14:37:53 313

原创 [杂题]ARC076 E - Connected?

SolutionSolution脑补一下有端点不在边界上的点显然是没有影响的。 那就是要处理剩下的点。 将剩下的点按极角排序以后,如果两端点覆盖的区间有交且不存在包含关系时,必然不合法。 这个东西维护一个栈就好了。#include <bits/stdc++.h>using namespace std;const int N = 101010;inline char get(void) {

2018-01-03 13:18:01 306

原创 [二分图][Hall定理][线段树] ARC076 F - Exhausted?

SolutionSolution根据Hall定理答案就是MAXS⊆U(|N(S)|−|S|)\text{MAX}_{S\subseteq U}(|N(S)|-|S|)设一个点对(s,t)(s,t)代表区间[1,s]∪[t,m][1,s]\cup[t,m]。那么如果这个作为N(S)N(S),就有Li≤s,Ri≥t,i∈SL_i\le s,R_i\ge t,i\in S。 把这些点放在平面内就相当于数

2018-01-03 11:15:16 384

原创 [二分图][Hall定理][贪心] TCO 2015 1A Hard Revmatching

DescriptionDescription给定一个nn个点的二分图,每条边有一个边权。找到一个边权和最小的边集,使得删掉这个边集之后不存在完备匹配。n≤20n\le20SolutionSolution根据Hall定理,不存在完备匹配当且仅当存在子集SS,其中|S|<|N(S)||S|<|N(S)|。 直接枚举子集贪心搞就好了。// BEGIN CUT HERE// END CUT HER

2018-01-02 17:58:08 434

原创 [二分图]Codeforces 19E. Fairy

DescriptionDescription你有一个nn个点mm条边的无向图。 对于每条边,判断删除之后是否为二分图。 n,m≤104n,m\le10^4SolutionSolution一个图是二分图当且仅当没有奇环。 对dfsdfs树黑白染色,如果一条返祖边两端的颜色一样就说明是奇环。 发现如果有一个偶环也覆盖了这条边,那么删除这条边之后这个偶环和原来的奇环会形成一个奇环。 显然一条边合

2018-01-02 16:02:16 505

原创 [拉格朗日插值]SRM 683 Div1 Hard RandomWalkOnGrid

SolutionSolutionSolution先翻转整个坐标系:x′=x+y,y′=x−yx=x′+y′2,y=x′−y′2x′=x+y,y′=x−yx=x′+y′2,y=x′−y′2x'=x+y,y'=x-y\\x = {x'+y'\over2},y={x'-y'\over2}这样x′x′x'和y′y′y'就独立了。 设xnym=(x′+y′2)n(x′−y′2)m=f(x′,y′)xn...

2018-01-02 11:37:25 376

空空如也

空空如也

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

TA关注的人

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