校内模拟
文章平均质量分 80
FSYo
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程
展开
-
NOIP 模拟 20/12/03
A用 Hall\mathcal{Hall}Hall 定理进行判断二分答案,在子集处打上 Tag\mathcal{Tag}Tag,最后做高维前缀和复杂度 O(n2k+n22n)\mathcal{O}(n^2k+n^22^n)O(n2k+n22n)B跑多元最短路就可以了,复杂度 O(Vlog2V)\mathcal{O}(V\log^2V)O(Vlog2V)Cai≤bia_i\le b_iai≤bi 的贪心否则考虑枚举选择的集合 SSS,如何判断 SSS 是否合法即选择一种顺序使得 ∀i,原创 2020-12-03 14:36:32 · 322 阅读 · 0 评论 -
NOIP 模拟 20/12/01
B考虑行列极值 ai,bia_i,b_iai,bi那么答案上界为 ∑ai+∑bi\sum a_i+\sum b_i∑ai+∑bi注意到一个位置可能同时满足取到所在行列的极值这种位置我们称之为匹配,跑一个费用流就可以了C考虑答案从 d→d+1d\rightarrow d+1d→d+1那么就是从 ddd 的每个末尾结点往下走一步,走不动的就不走我们会贪心走最长的链现在就是支持将一个元素 +1+1+1,插入一个为 111 的元素查询最大的 lll 个,由于 lll 是不变的所以我们直接原创 2020-12-01 14:33:28 · 267 阅读 · 0 评论 -
NOIP 模拟 20/11/27
C注意到若一种颜色不合法那么永远不会合法会划分成若干区间,启发式分裂即可D考虑如何判断,维护当前点 ppp,考虑所有 p∈[l,r]p\in[l,r]p∈[l,r] 的区间那么我们会取 rrr 最小的,用堆维护就可以了考虑求答案,对于每个区间,我们贪心在它最后面的时间取到(这样就可以更其它颜色的一起)最后面的时间定义为过了这个时间但没有取会存在不合法的情况每种颜色单独求,当前必须取的条件就是 ∃i,s.t.i−p<count(p,i)\exist i,s.t.i-p< coun原创 2020-11-27 14:10:43 · 207 阅读 · 0 评论 -
NOIP 模拟 20/11/25
C考虑两行要么互补要么相等且 0/10/10/1 交替若满足 0/10/10/1 交替,则有 222 的系数,我们称这样的行为自由行我们只需要统计 ∑2cnt\sum 2^{cnt}∑2cnt 作为答案首先可以将不同的行拆成 nnn 个区间考虑两个位置 (i,i+1)(i,i+1)(i,i+1),若相等,则包涵它的区间都会变成不自由行基于此在笛卡尔树上 DP\mathcal{DP}DP我的做法要维护最左边最右边,以及有无一个位置 (i,i+1)(i,i+1)(i,i+1) 相等复杂度 O(n原创 2020-11-25 22:14:47 · 164 阅读 · 0 评论 -
NOIP 模拟 20/11/24
B若 www 合法则 w+maxaiw+\max a_iw+maxai 合法,二分答案,检查 [mid−maxai,mid][mid-\max a_i,mid][mid−maxai,mid] 的答案C考场写了个 Hash\mathcal{Hash}Hash 暴力找循环节 T\mathcal{T}T 惨了打表得到循环节长度为 min(t∣t×(t+1)2≥∑ai)\min(t\mid \frac{t\times (t+1)}{2}\ge \sum a_i)min(t∣2t×(t+1)≥∑a原创 2020-11-24 17:13:03 · 259 阅读 · 0 评论 -
NOIP模拟 20/11/19
A我们按 aaa 进行排序那么限制即为前 iii 个不能选超过 i2\frac{i}{2}2i 个这是一个拟阵,可以贪心做B设 111 的个数为 mmm 个限制就是任意一个环中 ≤m\le m≤m 的个数 ≤2\le 2≤2,那么我们直接上 GF\mathcal{GF}GF[xn−mym]exp[∑kyxk−1+k−12y2xk−2+xkk]exp(∑kyxk)×exp(∑kk+12y2xk)×11−x[x^{n-m}y^m]\exp\Big[\sum_kyx^{k-1}+\frac{原创 2020-11-19 14:03:14 · 229 阅读 · 0 评论 -
NOIP 模拟 20/11/16
A略B考虑两个栈合并,第二个栈的贡献可以直接算然后要用第二个栈的 min\minmin 去找到第一个 <<< 它的位置算贡献枚举这个位置算 >>> 它的 min\minmin 有多少个就可以了C注意到每次就是抠出来一个集合 SSS,它的补集填一种颜色首先这样操作一定是合法的(充分性)下面证必要性:只需证明合法的染色方案一定存在 zzz 使得包涵 zzz 的集合为同一种颜色若不存在 zzz,设 UUU 为全集且为黑色,那么我们考虑所有为白色的集合由原创 2020-11-17 11:52:51 · 212 阅读 · 0 评论 -
NOIP 模拟 20/11/11
B考虑一个直观的想法我们枚举两个端点 u,vu,vu,v,求出到它们距离的 min\minmin >du,v>d_{u,v}>du,v 的点数这个可以通过预处理 Su,dS_{u,d}Su,d 表示到 uuu 的距离 ≤d\le d≤d 的点的个数然后找到中间点 / 边容斥然后计数有两条边取 min\minmin 的情况用上述做法可以求出 min=du,v\min=d_{u,v}min=du,v 的点数容易发现上述情况会在此计数两次而等边三角形的情况会计数三次那原创 2020-11-11 19:52:22 · 212 阅读 · 0 评论 -
NOIP 模拟 20/11/05
A转成补图,二分图染色最后做一个背包B跑一个倍增然后做一个分层图就可以 O(n3log2nω)\mathcal{O}(\frac{n^3\log^2n}{\omega})O(ωn3log2n)C注意到不合法当且仅当开辟的连成一溜用并查集维护就可以了由于可以转圈圈,所以要把第一列 copy\text{copy}copy 一下移到最后一列D一个简单的想法是让每个点都到根然后找另外子树的点但这样可能存在 >n2>\frac{n}{2}>2n 的子树导致不合法我们找到重原创 2020-11-05 19:40:11 · 256 阅读 · 0 评论 -
NOIP 模拟 20/11/03
A首先有 b≤a−2b\le a-2b≤a−2归纳证明两颗子树,合并时最多多出两个根要么减少一个 111 度点要么增加一个 333 度点,故 b≤a−2b\le a-2b≤a−2然后有 b≠a−3b\neq a-3b=a−3我们知道 ∑di=2(n−1)=3×(a−3)+a+∑i=1cdi=2(2a−4+c)\sum d_i=2(n-1)=3\times (a-3)+a+\sum_{i=1}^cd_i=2(2a-4+c)∑di=2(n−1)=3×(a−3)+a+∑i=1cdi=2(2a原创 2020-11-03 19:34:57 · 222 阅读 · 0 评论 -
NOIP 模拟 20/11/02
A略BB\mathcal{B}B 开头的算法,通过维护前缀最大次大值可以做到 O(nlogn)\mathcal{O}(n\log n)O(nlogn)C考虑枚举一个数并判断它合不合法, 将这个数写成 KKK 进制小数容易发现这个小数是 111 放到树的对应深度里面的个数进位后的结果合法的必要条件是这个数 0.z1z2…zl0.z_1z_2\dots z_l0.z1z2…zl 满足 ∑zi≤n,∑zi≡nmod K−1\sum z_i\le n,\sum z_i\equiv n\mod原创 2020-11-03 11:34:50 · 197 阅读 · 0 评论 -
NOIP 模拟 20/10/30
A我们维护 KKK 个并查集,每次二分看可以在哪一个B全部填黑的充要条件就是要有一行全黑枚举是哪一行C注意到问题是对称的,我们只需要统计等于 nmn^mnm 的个数就可以了考虑每个 ptp^tpt 的贡献就是 [zmt](1−zt+11−z)2m[z^{mt}](\frac{1-z^{t+1}}{1-z})^{2m}[zmt](1−z1−zt+1)2m,O(mlogn)\mathcal{O}(m\log n)O(mlogn)D用主席树比大小,Set\mathcal{Set}Set 维护原创 2020-10-30 15:25:57 · 202 阅读 · 0 评论 -
NOIP 模拟 20/10/28
A我们需要寻找一些性质1:若一个点可以在第 iii 个,那么一定可以在 j≥ij\ge ij≥i 个有了这个性质我们只需要统计能在第 iii 个的个数就可以快速计算答案2:若 ttt 最早可以在第 iii 个,那么 r≥tr\ge tr≥t 不会最早在第 j<ij<ij<i 个知道了这个我们可以直接枚举当前最早的时间然后考虑怎么移动一个贪心策略上将棋子放在 1,3,5…1,3,5\dots1,3,5…考虑求 ttt 能否在第 kkk 个,将前 k−1k-1k−1 个移除于原创 2020-10-28 11:43:34 · 301 阅读 · 0 评论 -
NOIP 模拟 20/10/27
ADP\mathcal{DP}DPB就是让你算 min∑max(0,ci−ci−1)\min \sum \max(0,c_i-c_{i-1})min∑max(0,ci−ci−1) 其中可以给 cic_ici 加上 4k4k4k设一个上界 DP\mathcal{DP}DP 就可以了正解大概是对 ccc 差分,设为 ddd,要最小化 ∑max(0,di)\sum \max(0,d_i)∑max(0,di)可以给任意一个 dld_ldl 加上 444,dr+1d_{r+1}dr+1原创 2020-10-27 15:53:40 · 246 阅读 · 0 评论 -
NOIP 模拟 20/10/24
A每个质因子做一遍B倍增C考虑每个数贡献几次,将 >>> 它的赋成 111,那么就是要求区间包涵它且 111 的个数 <k<k<k双指针维护D考虑 fi,ai=∑fi,jf_{i,a_i}=\sum f_{i,j}fi,ai=∑fi,j,注意到 111 的个数要么为 000 要么为 111,状压就可以了...原创 2020-10-24 15:03:59 · 150 阅读 · 0 评论 -
NOIP 模拟 20/10/17
A模拟B考虑交换后相对顺序不变,转一圈相当于是把一个人从第一个变到最后一个或者从最后一个变成第一个,所以可以快速求出最后转了几个C直接 DP\mathcal{DP}DP,转移的系数是 111 或 222,但由于每种情况的概率是相等的所以可以算出期望的系数D考虑树的情况,偶数可以直接构造出来,奇数可以每个根做一次考虑环一个根相当于是把路径上的边翻转一条边要翻当且仅当它到根路径上每个比它编号小的都要翻向上面第一个编号比它小的连边然后贪心 DFS\mathcal{DFS}DFS不是树的时候可原创 2020-10-17 16:39:43 · 156 阅读 · 0 评论 -
NOI 模拟 20/07/18
A用 LCT 维护操作,accessaccessaccess 的贡献是个子树加#include<bits/stdc++.h>#define cs const#define pb push_backusing namespace std;typedef long long ll;namespace IO{ cs int Rlen=1<<22|1; inline char gc(){ static char buf[Rlen],*p1,*p2; (p1==p2)原创 2020-07-22 23:17:10 · 249 阅读 · 0 评论 -
【省选模拟】20/06/24
AAA注意到限制即为若 ∃i\exist i∃i,iii 没有向前连边但 iii 可以连的没有连满就不合法按可以连的个从小到大 dpdpdp,确定当前连不连,不连则新增一个限制,要求一个前缀全部有边记录 dpi,j,k,ldp_{i,j,k,l}dpi,j,k,l 表示到 iii,限制为 jjj,jjj 前面有 kkk 个没有连,共连了 lll 条的方案数写出转移发现 jjj 是废的,O(n3)O(n^3)O(n3)CodeCodeCodeBBB将偶数位钦定成 ))),考虑一个奇数为本原创 2020-06-24 11:36:22 · 213 阅读 · 0 评论 -
【省选模拟】20/06/22
AAA令两类点集合为 S,TS,TS,T,考虑最后的图一定形如一堆 S,TS,TS,T 的连通块以及若干 SSS 其中每个 SSS 连了若干个 TTT,对这个进行 dpdpdp,记 dpi,jdp_{i,j}dpi,j 表示两类点大小下的图个数,枚举连通块转移,O(n4)O(n^4)O(n4)#include<bits/stdc++.h>#define cs const#define pb push_backusing namespace std;cs int Mod = 1e原创 2020-06-22 23:48:15 · 234 阅读 · 0 评论 -
【省选模拟】20/06/18
AAA大概就是考场思路,当时觉得细节太多没写完考虑从后向前 dpdpdp 出当前的合法长度,从前向后维护可能成为答案的串的集合,需要根据这个 dpdpdp 判一下合法性,注意到若一个串不是另一个的前缀一定可以删除一个串的集合是一个串和它的若干个前缀,用一个串和一个集合可以表示一个状态考虑当前的串拼接进去,需要把不是前缀的串给筛掉,发现只需要求当前串串头和答案串每个位置的 lcplcplcp,用 Z−algorithmZ-algorithmZ−algorithm 解决反思了一下为啥我的做法细节麻人原创 2020-06-19 16:21:10 · 232 阅读 · 0 评论 -
【省选模拟】20/06/19
AAA容易发现,答案即为 n!∏sizei\frac{n!}{\prod size_i}∏sizein!,考虑从根开始往下走,一定存在一个子树是满儿叉树,将其系数预处理出来就可以 O(logn)O(\log n)O(logn) 询问,阶乘需要打一个表#include<bits/stdc++.h>#define cs const#define pb push_backusing namespace std;cs int Mod = 1e9 + 7;int add(int a原创 2020-06-19 14:27:39 · 215 阅读 · 0 评论 -
【省选模拟】20/06/17
ProblemProblemProblemAAA:容易发现是对向左最大深度不超过 m−2m-2m−2 的二叉树进行计数写出 dpdpdp 式子是dpi,j=∑k=1i−1dpk,j−1dpi−k,jdp_{i,j}=\sum_{k=1}^{i-1}dp_{k,j-1}dp_{i-k,j}dpi,j=k=1∑i−1dpk,j−1dpi−k,j写成生成函数即为Fj(x)=Fj(x)Fj−1(x)+xFj(x)=x1−Fj−1(x)F_j(x)=F_j(x)F_{j-1}(x)+x\\ F_原创 2020-06-18 11:57:56 · 195 阅读 · 1 评论 -
【省选模拟】20/06/16
AAA容斥之后可以简单计算,考场比较憨anst=∑j=1n/t(mj)(xtt!)j(∑i=0t−1xii!)m−j[xn]n!mnans_t=\frac{\sum_{j=1}^{n/t}\binom{m}{j}(\frac{x^t}{t!})^j(\sum_{i=0}^{t-1}\frac{x^i}{i!})^{m-j}[x^n]n!}{m^n}anst=mn∑j=1n/t(jm)(t!xt)j(∑i=0t−1i!xi)m−j[xn]n!其中 Ft(x)=(∑i=0t−1xii!)t原创 2020-06-16 23:16:23 · 178 阅读 · 0 评论 -
【省选模拟】20/06/15
AAA线段树维护同色集合最远点,再用一棵线段树维护颜色区间集合最远点,复杂度 O(nlogn)O(n\log n)O(nlogn),CodeCodeCodeBBB考虑一个点的 SGSGSG 的值是其子树深度最大值,我们需要动态维护深度最大值将直径中点作为根,将一个点定为根相当于将其到根的路径上的点的值改为到直径的某个端点的距离相当于一个点有两个权值,需要区间切换为另一种,用线段树维护即可,CodeCodeCodeCCC神仙 DPDPDP 题注意到若要将 iii 运走,iii 之前原创 2020-06-16 19:44:04 · 181 阅读 · 0 评论 -
【省选模拟】20/06/11
AAA定义深度为到根的边权和,考虑按深度 dpdpdp,显然深度小的放的是出现次数较多的数即放得是一个后缀,记录 dpi,a,b,cdp_{i,a,b,c}dpi,a,b,c 表示到第 iii 层当前层有 aaa 个,下一层可以放 bbb 个,选的后缀为 ccc 的最小值,枚举多少个后缀放当前层,对应转移到 dpi+1,b+(a−t),a−t,c+tdp_{i+1,b+(a-t),a-t,c+t}dpi+1,b+(a−t),a−t,c+t,系数是 i∗ti*ti∗t系数可以提前计算,于是可以压掉原创 2020-06-14 10:54:08 · 240 阅读 · 0 评论 -
【省选模拟】20/06/10
AAA二分答案后用堆维护最小值即可,CodeCodeCodeBBB考虑发现一些性质:a:记将答案变小的操作为有效操作,则有效操作一定是用 k−1k-1k−1 的代价将 kkk 个数归位b:一次有效操作归位的数一定是一个环c:若环上的点数为 kkk,则当且仅当环长为 2k−22k-22k−2 时这个环存在有效操作proof:首先环长的下界是 2k−22k-22k−2,即考虑环上坐标最小的点,环的形态一定为从这个点开始向后跳然后总后面跳回来,同时一次交换操作会使环长 -2,故环长的上界是原创 2020-06-10 21:34:13 · 207 阅读 · 0 评论 -
【省选模拟】20/06/09
AAA考虑求出循环节后就可以取模了直接 bsgsbsgsbsgs O(Tp)O(T\sqrt p)O(Tp) 可以得到 60pts60pts60pts数列类似斐波那契,循环节可以直接求,证明复杂度 O(Tkp)O(Tk\sqrt p)O(Tkp) 甚至可以 O(Tkp1/4)O(Tkp^{1/4})O(Tkp1/4),CodeCodeCodeBBB考虑一个组合意义,即确定排列和划分过后,每一段选择一对,若所有对都构成逆序对则产生 1 的贡献,对每个都为逆序对的概率进行计数,奇数位和奇原创 2020-06-10 10:35:46 · 231 阅读 · 0 评论 -
【省选模拟】20/06/08
AAA考虑容斥,1表示钦定选,0 的位置表示 0/1 均合法,这样的好处是可以只考虑 1 的限制并且最后我们只需对超集容斥就可以得到答案发现钦定一些 1 选的意义就是在原图上选若干条不相交的链,复杂度和拆分数有关预处理一个集合有多少条链,那么就是一个子集卷积并且发现只用求出最后一项,所以可以 O(2n)O(2^n)O(2n) 暴力容斥回去复杂度 O(n22n+p(n)2n)O(n^22^n+p(n)2^n)O(n22n+p(n)2n),p(n)p(n)p(n) 为拆分数,CodeCodeCod原创 2020-06-08 08:33:36 · 190 阅读 · 0 评论 -
【省选模拟】20/06/05
AAAldxldxldx 大神的 606060 分做法:用二元组 (a,b)(a,b)(a,b) 记录最小段数和最小代价来 dpdpdp,记 dpidp_idpi 表示以 iii 结尾的最小值考虑如何为一个区间选择一个最优的匹配点,暴力枚举 dpjdp_jdpj,考虑将某一个区间从 jjj 挪到 iii,这对应一个关于 i,ji,ji,j 的二元一次函数,用三元组 (a,b,c)(a,b,c)(a,b,c) 可以表示出这个系数系数预处理是个二维平面修改,差分后求矩阵的前缀和,可以做到 O(n原创 2020-06-07 19:59:43 · 218 阅读 · 0 评论 -
【省选模拟】20/06/03
ProSol考场疯狂 rushrushrush 两份 5k5k5k 的代码,死掉了。。。AAA:直接小常数 n3n^3n3 dpdpdp 可以拿 70考虑可反悔贪心,一个不是最优的策略是每次将这一位加 2,将下一位加 1考虑反悔,用最快的策略将当前位填满,并且只需要考虑反悔 i−1i-1i−1 的决策对于 (i−1,i)(i-1,i)(i−1,i) 加上 (2,1)(2,1)(2,1) 的情况,可以变成加 (1,2)+(1,2)(1,2)+(1,2)(1,2)+(1,2) 即用 1 的代原创 2020-06-03 14:09:16 · 200 阅读 · 0 评论 -
【省选模拟】20/06/02
AAA发现只需要压黑白开头存不存在为偶数的,若存在,其他偶数边随便选不选这条边的选发是唯一的,dpdpdp 即可,CodeCodeCodeBBB补集转换一下,枚举两个不交的集合,考虑他们向外的连边,强制指向这个集合对于选定的集合,要统计其联通的方案数,容斥 dpdpdp 即可,CodeCodeCodeCCC性质:最后选出来的一定形如 k,k−1,…,1k,k-1,\dots,1k,k−1,…,1,并且后一个是前一个的前缀或后缀,一个后缀若 iii 合法,则 i−1i-1i−1 也合法原创 2020-06-02 20:15:26 · 203 阅读 · 0 评论 -
【省选模拟】20/05/31
AAA考虑每个位置有个被最早染黑的时间,求的就是这些时间的第 kkk 大minmaxminmaxminmax 容斥一下,就是求∑T≠∅(∣T∣−1k−1)(−1)∣T∣−k(n+12)(n+12)−coef(T)\sum_{T\neq \empty}\binom{|T|-1}{k-1}(-1)^{|T|-k}\frac{\binom{n+1}{2}}{\binom{n+1}{2}-coef(T)}T=∅∑(k−1∣T∣−1)(−1)∣T∣−k(2n+1)−coef(T)(2n+1)原创 2020-05-31 17:07:37 · 196 阅读 · 0 评论 -
【省选模拟】20/05/29
AAA从父亲继承线性基,每一位保留深度最大的点,CodeCodeCodeBBB考虑二分这个 kkk,我们暴力建出图,用 hashhashhash 来判重和连边,合法当且仅当没有环,考虑怎么输出方案,首先可以在 dagdagdag 贪心出每个点向后的最长链,只需要考虑起点,发现需要支持比较两个串的字典序,选好起点之后在 dagdagdag 上贪心选最小的后继即可,CodeCodeCodeCCC首先考虑在上方 ddd 走了不超过半圈的情况,简单推导可以得到就是积这么一个东西∫abd∗(c原创 2020-05-29 21:27:49 · 246 阅读 · 0 评论 -
【互测】20/05/27
瑠璃色の物語 - By 大神可可考虑 SSS 为可重集合,令 c(S)=∑i∈Sci,v(S)=∑i∈Svic(S)=\sum_{i\in S}c_i,v(S)=\sum_{i\in S}v_ic(S)=∑i∈Sci,v(S)=∑i∈Svi,考虑最后的答案是什么k![(xy)k]∏ev(S)xc(S)y∗ey=k![(xy)k]e∑(S)xc(S)y+yk![xk((∑Sv(S)∑Sv(S)]xc(S)+=[xk10)(∑Sv(S)(∑Sv(S)]xc(S)+1)kk![(xy)^k]\pro原创 2020-05-27 20:24:35 · 240 阅读 · 1 评论 -
【省选模拟】20/05/26
AAA考虑限制为 [l,r][l,r][l,r] 中没有值出现两次,maxi∈[l,r]ai=lenmax_{i\in [l,r]} a_i=lenmaxi∈[l,r]ai=len,mini∈[l,r]ai=1min_{i\in [l,r]}a_i=1mini∈[l,r]ai=1,对每个右端点统计,第一个和最后一个限制是对应左端点的一个区间维护一个单调栈,要找一个位置满足 r−x+1=maxi∈[x,r]air-x+1=max_{i\in[x,r]}a_ir−x+1=maxi∈[x,r]ai原创 2020-05-26 22:04:50 · 176 阅读 · 0 评论 -
【省选模拟】20/05/22
AAA注意到如果可以不联通的话方案数为 2(n−12)2^{\binom{n-1}{2}}2(2n−1) 种,即考虑前面随便连边,最后一个点存在唯一一种合法的连边方式,最后 lnlnln 或分治 nttnttntt 或 n2n^2n2 容斥回去即可#include<bits/stdc++.h>#define cs const#define pb push_back#define poly vector<int> using namespace std;cs int原创 2020-06-11 10:19:14 · 222 阅读 · 0 评论 -
【省选模拟】20/05/20
AAA考虑序列上的情况,一次操作就是交换两个前缀和,那么若所有前缀和均 ≥0\ge 0≥0,答案就是逆序对数之和,考虑将前缀和的定义扩展到环,显然有 Sumn>0Sum_n>0Sumn>0 否则(若为 0 必须全部为 0)不合法我们定义 Ri=∑j>i,sumj<sumi1R_i=\sum_{j>i,sum_j<sum_i}1Ri=∑j>i,sumj<sumi1,考虑交换两个数会让 ∑Ri\sum R_i∑Ri 减少 1, 而最后要求原创 2020-05-20 22:23:07 · 221 阅读 · 1 评论 -
【省选模拟】20/05/19
AAAO(nlog2n)O(n\log ^2n)O(nlog2n) 即考虑从大到小加入数,维护一下最长连续区间考虑预处理 li,ril_i,r_ili,ri 表示最小值的管辖区间,那么对于询问 [L,R][L,R][L,R] 就是求所有与其交不小于 www 的最大值,考虑 li<Ll_i<Lli<L,和 li∈[L,R−w+1]l_i\in[L,R-w+1]li∈[L,R−w+1],是简单的二维数点问题,O(nlogn)O(n\log n)O(nlogn)#inclu原创 2020-05-19 21:08:47 · 190 阅读 · 0 评论 -
【省选模拟】20/05/17
AAA:考虑按扫描线的顺序处理对一个询问有贡献的修改,用数据结构维护出现的时间以及 −1,+1-1,+1−1,+1,问题即从一个时间向前第一个为 kkk 的时间,那么我们维护后缀 maxmaxmax 即可二分,O(npoly(logn))O(npoly(\log n))O(npoly(logn)) #include<bits/stdc++.h>#define cs const#define pb push_back#define mp make_pair#define fi f原创 2020-05-17 21:08:24 · 172 阅读 · 0 评论 -
【省选模拟】20/05/14
AAA数据结构优化建图即可 codecodecodeBBB考虑求出以某个点为后缀的回文串然后拼接,由 borderborderborder 定理可以知道这些长度可以分成 log\loglog 段等差数列,对 log\loglog 段进行拼接即可,需要解一个不定方程 codecodecodeCCCdpi,j,k,0/1dp_{i,j,k,0/1}dpi,j,k,0/1 表示 iii 行选了 jjj 个用了 kkk 次,当前选不选dpi,j,k,1=min{dpi,j−1,k−t,0原创 2020-05-14 15:27:24 · 197 阅读 · 0 评论