校内模拟
文章平均质量分 87
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
-
【校内模拟】music(多重分块)(非常规大小分块)
简要题意不放了,强制在线主席树SB题一道,卡空间需要用分块做到 O(n)O(n)O(n) 空间。题解:由于发下来的题解几乎就是在口胡,我跑去UOJ群问了一下这道题的 O(n)O(n)O(n) 空间做法,幸运地得到了myh的教育,下面的做法就来自于myh神仙。先考虑对时间进行分块,块大小为 SSS,考虑把每块中会进行修改的位置拿出来,然后把原序列中所有 n/Sn/Sn/S 的倍数的位置拿出来...原创 2020-04-20 20:34:26 · 380 阅读 · 0 评论 -
【校内模拟】Kingdom(DP)
由于太过SB,懒得写简要题意了。。。题解:不难发现我们可以直接考虑 iii 能不能直接走到 jjj 然后 O(n2)O(n^2)O(n2) DP即可。最开始把题目看错成距离直线距离不超过 ddd 了,我Splay维护动态凸包都写完了艹。。线段的话也是非常简单,考虑一个不在圆 iii 内部的点,它显然会限制 iii 向后连出去的点的极角范围。于是维护这个范围即可,然而我的维护方式过于SB...原创 2020-04-20 15:22:05 · 253 阅读 · 0 评论 -
【校内模拟】Fygon 2.0(状压DP)
原题传送门目前计蒜客上面AC数量还是0,我也懒得交,估计CF Gym里面也该有这道,懒得找了。题解:今天的签到题。把for循环换个思路考虑: for var in range ( l , r ):冷静一想不难发现等价于: for var in range ( 1 , n ): if(l <= var && var <= r)于是实际上要求的就是...原创 2020-04-20 15:14:11 · 445 阅读 · 0 评论 -
【校内模拟20200417】
由于全是SB题,简述如下:T1:请你求出有多少个长度为 nnn 字符集为 kkk 的串,本质不同子串个数为 mmm。n≤10n\leq 10n≤10题解:本质不同子串个数只和最小表示有关,爆搜然后算即可。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs const...原创 2020-04-17 12:09:42 · 319 阅读 · 0 评论 -
【校内模拟】play in array(块状链表)
简要题意:一个序列,请你支持将 ara_rar 挪到 al−1a_{l-1}al−1 和 ala_lal 之间,重新标号。询问在当前序列的第 lll 到第 rrr 个位置,kkk 出现了多少次。块链裸题,写就完事,好写的一B。顺便,std::list::size() 这个函数差点又把我坑惨了。至于到底问题在哪里:here代码:#include<bits/stdc...原创 2020-04-16 15:29:03 · 219 阅读 · 0 评论 -
【校内模拟】覆盖(DFS序)(二维数点)
简要题意:给一棵树和若干条路径,请你求出选择两条不同的路径,它们存在覆盖关系的概率。题解:一条路径可以根据两边两个点的DFS序描述成二维平面上的一个点。一条路径覆盖另一条可以转化为该路径对应的二维平面点在某个矩形中。二维数点瞎写即可,特殊处理一下路径一模一样的情况,不过不清楚数据卡没卡这个。代码:#include<bits/stdc++.h>#define ll l...原创 2020-04-14 15:25:16 · 231 阅读 · 0 评论 -
【校内模拟】数值修改(贪心)(DP)
简要题意:给一个十进制数,每次可以选择它的一个数码,然后它的值减去你选择的这个数码。重复这个操作,直到这个数变成0,问最少需要多少次操作。x≤1e18x\leq 1e18x≤1e18脑子卡住是什么感觉。就是发现了正解要用的性质,不知道为什么就是没有继续往下细想。啊艹为什么题解:首先容易注意到答案是单调不减的。要证明这一点可以归纳,考虑 iii 和 i+1i+1i+1 假设之前的...原创 2020-04-14 15:19:07 · 209 阅读 · 0 评论 -
【USACO19FEB】Mowing Mischief P(决策单调性)(线段树辅助分治)
传送门题解:容易想到首先要求一个LIS。根据以其结尾的LIS长度,把点分为若干集合,设为 SlS_lSl,容易注意到一个集合中横坐标增加的同时纵坐标减小。容易得到一个显然的DP:dpi=minj∈Sl−1xj<xi,yj<yidpj+(xi−xj)∗(yi−yj)dp_i=\min_{j\in S_{l-1}x_j<x_i,y_j<y_i}dp_j+(x_i-...原创 2020-04-13 16:37:27 · 754 阅读 · 0 评论 -
【校内模拟】幻想(后缀平衡树)
简要题意:给你一个字符串 SSS,请你支持:末尾加字符末尾删字符给一个询问串 QQQ ,求 QQQ 在 S[l:r]S[l:r]S[l:r] 中出现了多少次。强制在线题解:如果第三个操作没有 l,rl,rl,r 的限制就是 BZOJ4768,后缀平衡树裸题。有的话也没什么区别,开个vector维护一下子树内的点有哪些就行了。复杂度好像是两个 log,但是跑得飞起。一个lo...原创 2020-04-09 17:24:37 · 307 阅读 · 2 评论 -
【校内模拟】黑暗(第二类斯特林数)(多项式求逆)
简要题意:here题解:设 c(G)c(G)c(G) 表示图 GGG 的联通块数量,首先利用第二类斯特林数转成下降幂:nm=∑k=0mSm,knk‾n^m=\sum_{k=0}^mS_{m,k}n^{\underline k}nm=k=0∑mSm,knk考虑 c(G)k‾c(G)^{\underline k}c(G)k 的意义,就是有序选择 kkk 个连通块的方案数,这部分有点像...原创 2020-04-09 17:18:21 · 258 阅读 · 0 评论 -
【校内模拟】深邃(贪心)(二分答案)
简要题意:一棵树,有 kkk 个关键点,请你把树划分为若干联通块,使得每个联通块包含至少一个关键点,最小化最大的联通块的大小。题解:首先容易注意到可以二分答案。然后考虑怎么判断,进行dfs,每个点尽量贪心往下划分。hvuhv_uhvu 表示 uuu 为根的子树,uuu 这个联通块还能多容呐的点数。ntunt_untu 表示 uuu 为根的子树,无法向下分到任何一个联通块的点数。...原创 2020-04-09 17:09:17 · 158 阅读 · 0 评论 -
【校内模拟】亲(斯特林反演推式子)
link另一种做法:直接考虑答案的表达式:Ans=∑i=0n(ni)Qi∑j=1ijkAns=\sum_{i=0}^n{n\choose i}Q^i\sum_{j=1}^ij^kAns=i=0∑n(in)Qij=1∑ijk考虑对 jjj 转下降幂,利用第二类斯特林数。Ans=∑i=0n(ni)Qi∑j=1i∑t=0kSk,t(jt)t!=∑t=0kt!Sk,t∑i=0n(ni)Q...原创 2020-04-07 15:55:12 · 258 阅读 · 0 评论 -
【校内模拟】考试(生成函数)(牛顿恒等式)
简要题意:你有 nnn 个连续随机变量 xix_ixi,xix_ixi 在 [0,ai][0,a_i][0,ai] 中均匀随机,求 E((∑i=1nxi)m)E((\sum\limits_{i=1}^n x_i)^m)E((i=1∑nxi)m)。题解:考虑求定积分,然后二项式展开,式子很长不写了,最后发现是个卷积。我们需要求的是如下生成函数的第 mmm 项 ∏i=1n(eaix...原创 2020-04-07 15:28:23 · 528 阅读 · 0 评论 -
【校内模拟】亲(二项式展开)(多项式快速幂)(快速插值)(MTT)
简要题意:你有一个数,初始为000,有 nnn 个机会,每个机会有 Q/(1+Q)Q/(1+Q)Q/(1+Q) 的概率使你的数 +1,请计算所有小于等于你的数的自然数的 kkk 次幂之和的期望。题解:设 fn,if_{n,i}fn,i 表示用了前 nnn 个机会,你的数的 iii 次幂的期望。转移考虑二项式展开,乘的东西不变,直接多项式快速幂。根据期望的线性性,由于 kkk 次幂之和...原创 2020-04-07 15:20:48 · 444 阅读 · 0 评论 -
【校内模拟】羊(杜教筛)
求 ∑k=1n∑i=1k∑j=1kgcd(i,j,k)\sum_{k=1}^n\sum_{i=1}^k\sum_{j=1}^kgcd(i,j,k)k=1∑ni=1∑kj=1∑kgcd(i,j,k)题解:设 f(n)=∑i=1n∑j=1ngcd(i,j,n)f(n)=\sum_{i=1}^n\sum_{j=1}^ngcd(i,j,n)f(n)=∑i=1n∑j=1ngcd(i,j,n)...原创 2020-04-07 15:15:13 · 246 阅读 · 0 评论 -
【题目泛做】道路(矩阵快速幂)(二项式展开)
简要题意:一张有向图,求 u−>vu->vu−>v所有长度不超过 kkk 的路径的长度 TTT 次方之和。n≤50,T≤50,k≤1e9n\leq 50,T\leq 50,k\leq 1e9n≤50,T≤50,k≤1e9。题解:暴力的思路是矩阵 AlA_lAl 表示长度为 lll 的 u−>vu->vu−>v 路径有多少条,然后矩阵乘法。正解也非常...原创 2020-04-03 20:08:59 · 676 阅读 · 0 评论 -
【题目泛做】数学(多项式)(Lucas定理)(MTT)
简要题意:有集合 [n]={1,2,3,…,n}[n]=\{1,2,3,\dots,n\}[n]={1,2,3,…,n},定义函数 F(n,k)=∑S⊆[n],∣S∣=k∏x∈SxF(n,k)=\sum\limits_{S\subseteq[n],|S|=k}\prod_{x\in S}xF(n,k)=S⊆[n],∣S∣=k∑∏x∈Sx,求对于 nnn,有多少个 kkk 使得 F(n,k)F...原创 2020-04-03 19:52:39 · 347 阅读 · 0 评论 -
【题目泛做】集合(数学推导)
简要题意:有集合 [n]={1,2,3,…,n}[n]=\{1,2,3,\dots,n\}[n]={1,2,3,…,n},请你求出 E(Amin(S)∣S⊆[n],∣S∣=k)E(A^{\min(S)}|S\subseteq [n],|S|=k)E(Amin(S)∣S⊆[n],∣S∣=k)。nnn 没有限制,k≤1e7k\leq 1e7k≤1e7题解:容易发现我们要求的实际上就是 F(...原创 2020-04-03 19:29:06 · 305 阅读 · 0 评论 -
【校内模拟20200402】
由于题都比较简单,全部写在一起了。T1定义树上的毛毛虫是一条链和所有和这条链相邻的点的集合。给一棵树,请你维护。修改为选择一个毛毛虫,给所有点加上某个权值。询问为给一个毛毛虫,求点权值之和。口胡:每个点维护所有儿子的权值之和。于是修改变成了链加,最后处理lca和父亲的权值。询问同理。代码:#include<bits/stdc++.h>#define ll long ...原创 2020-04-02 14:53:27 · 352 阅读 · 0 评论 -
【校内模拟】pow(容斥)(搜索优化)
简要题意:求 1≤x≤n,1≤y≤m1\leq x\leq n,1\leq y\leq m1≤x≤n,1≤y≤m 的 xyx^yxy 有多少种不同的结果。n,m≤5e18n,m\leq 5e18n,m≤5e18题解:原题TCO2013 2A 1000,数据范围只有 1e9。其实这个数据范围 5e185e185e18 没有什么意思,不过是一些诡异的搜索优化,没有通用性和参考价值,不过这里...原创 2020-03-29 14:34:01 · 274 阅读 · 0 评论 -
【校内模拟】fac(生成函数)(拉格朗日反演)
简要题意:给出 n,kn,kn,k 求 ∀0≤i<n,(ki)!((k−1)i)!\forall 0\leq i < n,\frac{(ki)!}{((k-1)i)!}∀0≤i<n,((k−1)i)!(ki)!少见的做题比出题难不知道多少倍的题。题解:乍一看并不好做,转成形式上比较接近的组合数也是 (kii){ki\choose i}(iki),并不好处理下标。...原创 2020-03-28 23:42:32 · 536 阅读 · 0 评论 -
【校内模拟】命题演算(FWT)(中缀表达式转后缀表达式)(模拟)
简要题意:你有两种可用的逻辑符号,分别是 →\rightarrow→ 和 ¬\neg¬ 。现在有 kkk 个独立的命题变元,和一个未知的公式 QQQ,你只知道 QQQ 当中总共个存在恰好 nnn 个上述逻辑符号,且仅会存在上述 kkk 个命题变元。有 mmm 个询问。每次给出一个公式 PPP,且 PPP 的若干部分可能被 QQQ 取代。询问有多少种可能的 QQQ 使得 PPP 永真。k≤...原创 2020-03-04 17:30:50 · 236 阅读 · 0 评论 -
【校内模拟】简单粗暴的题目(二项式展开)
简要题意:给一个长为 nnn 的数列 aaa 和一个正整数 kkk,对于 i=1,2…,ni=1,2\dots,ni=1,2…,n,求:ansi=∑j=1i(∑l=jial)kans_i=\sum_{j=1}^i(\sum_{l=j}^ia_l)^kansi=j=1∑i(l=j∑ial)k题解:设 sss 表示 aaa 的前缀和。ansi=∑j=1i(∑l=jial)k=∑...原创 2020-03-04 17:08:54 · 274 阅读 · 0 评论 -
【校内模拟】Fancy(Trie)(贪心)(树形DP)
简要题意:给三棵 trie 树,请你分别回答下列三个问题的最大最小值。第一棵树上点两两距离之和。在第一和第二棵树上连一条边之后,两棵树所有点两两距离之和。分别在第一棵和第二棵树,第二棵和第三棵树上连一条边,求三棵树所有点两两距离之和。题解:首先问题一是不存在多个答案的,考虑每条边被经过多少次可以得到,答案显然就是 ∑(n−sizu)sizu\sum(n-siz_u)siz_u∑...原创 2020-03-04 17:01:18 · 148 阅读 · 0 评论 -
【校内模拟】forest(多项式Exp)
简要题意:对总大小为 nnn ,且任意联通块大小不超过 aaa 的带标号无根树森林计数。由于是带标号拼接,直接算出来EGF然后Exp即可。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constusing std::cerr;using std::cout;...原创 2020-02-29 16:12:23 · 320 阅读 · 0 评论 -
【校内模拟】string (SAM)(DSU on tree)
简要题意:给一个串,询问有多少个区间可以由某一个串重复 kkk 次得到。题解:首先很容易发现就是询问有多少个子串有 n/kn/kn/k 的循环节。也就是说要有 n−n/kn-n/kn−n/k 的 border。也就是求由多少对 l,rl,rl,r,满足 lcs(l,r)≥(r−l)⋅(k−1)lcs(l,r)\ge (r-l)\cdot(k-1)lcs(l,r)≥(r−l)⋅(k−1)...原创 2020-02-29 16:09:05 · 275 阅读 · 0 评论 -
【校内模拟】帐篷(凸包DP)
简要题意:有一些要被围起来的点,有一些木桩,请你以这些木桩为顶点构造一个凸多边形,使得要求的点全部在其内部,同时在原点处有一个最高点,请你最小化以你选择的凸多边形为底面的椎体的侧面积。凸包DP SB题一道。考场上没看到凸多边形的限制去想凹的情况了。代码:#include<bits/stdc++.h>#define ll long long#define re regi...原创 2020-02-21 21:45:40 · 278 阅读 · 0 评论 -
【校内模拟】A(容斥原理)(数位DP)(范德蒙德恒等式)(高精度)
简要题意:请你对满足下列条件的正整数序列 A1,A2⋯AnA_1,A_2\cdots A_nA1,A2⋯An 进行计数。∀1≤i≤n,Li≤Ai≤Ri\forall 1\leq i\leq n,L_i\leq A_i\leq R_i∀1≤i≤n,Li≤Ai≤Ri令 S=∑i=1nAiS=\sum\limits_{i=1}^nA_iS=i=1∑nAi 给出 DDD 进制数字集...原创 2020-02-17 23:12:31 · 416 阅读 · 0 评论 -
【校内模拟】多边形(凸包DP)(极角序扫描线)(前缀和优化DP)
简要题意:给平面一个点集,对内空凸多边形计数。保证没有三点共线。n≤500n\leq 500n≤500题解:模板题难度的凸包DP?(大概)然而这是我第一次写凸包DP,以前都是靠口胡。按照 xxx 为第一关键字,yyy 为第二关键字进行坐标排序,枚举多边形左下角的点。设 f[o][i][j]f[o][i][j]f[o][i][j] 表示起始点标号为 ooo 按照极角序考虑的最后一条...原创 2020-02-17 22:47:47 · 481 阅读 · 0 评论 -
【校内模拟】分居(最短路)
简要题意:给一张带权无向连通图,请你确定两个位置,可以在边上,使得这两个位置的之间的最短路最大。题目给的范围 :n≤1e3,m≤2e3n\leq 1e3,m\leq 2e3n≤1e3,m≤2e3题解:写官方题解的人是个傻逼,根本不需要考虑的那么复杂。而且输入数据比题目给的范围大了将近一倍,造数据的人也是傻逼。想法非常显然,确定两条边 (u,v,w1),(x,y,w2)(u,v,w_1...原创 2020-02-17 22:39:30 · 162 阅读 · 0 评论 -
【校内模拟】《名字叫《几何考试》结果连计算几何的屁股都没有摸到的题》(积分)(主席树)(大力分类讨论)
一般来说大力分类讨论就行了,但是其实如果把积分放到图形上的话其实可以维护地简单一点。下面给一个大力分类讨论的做法的代码。由于讨论得太复杂,常数有点大,不过至少正确性没有什么问题。代码:#include<bits/stdc++.h>#define ll long long#define re register#define db double#define cs con...原创 2020-02-14 14:16:08 · 214 阅读 · 0 评论 -
【校内模拟】《名字很高端但是和OI半毛钱关系没有的题#2》(贪心)
简要题意懒得写了,傻逼题一道。和 LOJ520绯色IOI(开端)一模一样的结论。题解也懒得写,放个代码得了。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constnamespace IO{ inline char gc(){ static cs int R...原创 2020-02-14 14:12:35 · 227 阅读 · 0 评论 -
【校内模拟】《名字很高端但是和OI半毛钱关系没有的题#1》(矩阵快速幂)(BSGS)
简要题意:汉诺塔,三个盘子成环,只允许将盘子挪到顺时针下一个,问把 aaa 柱上的所有盘子全部挪到 bbb 柱上至少需要几次操作,挪到 ccc 又要几次操作。设 ana_nan 表示把 nnn 个盘子全部挪到顺时针下一个位置的操作次数 ,bnb_nbn 同理,不过是挪到下下个位置。手玩可以发现递推式:an=2bn−1+1bn=2bn−1+2+an−1a_n=2b_{n-1}+1\\b...原创 2020-02-14 14:09:51 · 244 阅读 · 0 评论 -
【校内模拟】 小B的棋盘(奇妙性质)(双指针)
简要题意:无限大的棋盘上放了nnn个棋子,你还可以再放不超过 kkk 个棋子,使得最终棋子的位置中心对称。请问可能的不同的对称中心有多少个?n≤1e5,k≤20n\leq 1e5,k\leq 20n≤1e5,k≤20题解:考虑中心对称也就是说它们配对之后横纵坐标之和相等。按照 xxx 为第一关键字 yyy 为第二关键字排序。在确定对称中心之后可以双指针求出匹配对数,剩下独立点不超过 k...原创 2020-02-11 18:14:33 · 404 阅读 · 0 评论 -
【校内模拟】小B的图(贪心)(MST)(LCT)
简要题意:给一张图,有两种边,第一种的权值为 v+xv+xv+x,其中 xxx 是变量,第二种的权值为 v−xv-xv−x。 现在给出若干 xxx 的值,请你求出MST的大小。分别只保留两种边的图仍然连通。题解:由于本身两种图是连通的,所以在新MST上的边只可能是原来两种边的MST中的边。将 v+xv+xv+x 拿来做MST,建立LCT。考虑用 v−xv-xv−x 来替换。注意替换顺...原创 2020-02-11 18:07:18 · 364 阅读 · 0 评论 -
【校内模拟】小B的班级(贪心)(组合数学)
简要题意:给一棵 nnn 个点的树,边有边权。现在有 mmm 个A类点, mmm 个B类点,两两不同,这 2m2m2m 个点在树上选定位置 (可以有多个点在同一个位置),然后进行配对,最大化配对点的距离之和,问所有方案的距离之和是多少。n,m≤2.5e3n,m\leq 2.5e3n,m≤2.5e3题解:经典结论 (虽然我已经忘了上次见是在什么时候) ,直接考虑每条边被经过多少次,假设其中...原创 2020-02-08 15:15:12 · 381 阅读 · 0 评论 -
【校内模拟】小B的环(KMP)
简要题意:给一个字符环,长度为 nnn ,请你对 ∀k∈[0,n−1]\forall k \in [0,n-1]∀k∈[0,n−1],回答,能否删去一个长度为 kkk 的子串,使得剩下部分首尾相接之后,任何相邻的两个位置字符不同。n≤5e6n\leq 5e6n≤5e6题解:考虑剩什么而不是删什么。容易发现我们把存在相邻字符相同的位置拿出来,把这些位置之间的串拿出来,判断剩哪些子串合法即...原创 2020-02-08 15:07:19 · 355 阅读 · 0 评论 -
【校内模拟】小B的农场(单调栈)(线段树)
简要题意:你有一个 W×HW \times HW×H 的矩形,中间一些位置上有树。请你求一个空矩形(允许边界有树),最大化周长。W,H≤1e8W,H\leq 1e8W,H≤1e8,树的个数 ≤3e5\leq 3e5≤3e5题解:容易注意到答案至少是 2×max(W,H)+22\times \max(W,H)+22×max(W,H)+2。因为不管树怎么排,宽度为 111 的矩形永远都是...原创 2020-02-08 14:57:37 · 207 阅读 · 0 评论 -
【校内模拟】西行寺无余涅槃(FWT)
题解:直接做 FWT 考虑下面这个式子:F^S=∏i=1n(∑j=1k(−1)∣S∩p[i][j]∣aj)\hat F_S=\prod_{i=1}^n(\sum_{j=1}^k(-1)^{|S\cap p[i][j]|}a_j)F^S=i=1∏n(j=1∑k(−1)∣S∩p[i][j]∣aj)如果裸做 FWT 复杂度是 O(2mmnk)O(2^mmnk)O(2mmnk),如果直...原创 2020-02-06 00:10:24 · 1012 阅读 · 0 评论 -
【校内模拟】鱼贯而入(Pollard-Rho)
简要题意:给你一个长度为 nnn 的查询序列,请你选择一个哈希表长,最大化查询总用时,哈希表实现和用时计算方式参考如下(不考虑空间开不下的情况):// h is the hash table.void add_fish(long long &cnt, long long x, long long len) { long long y = x % len; while(...原创 2020-02-05 21:25:03 · 291 阅读 · 0 评论