练习
文章平均质量分 93
ハルカナソラヘ
果てなく続いて行く、
生きとし生けるものは。
抗うことの出来ない、
散り行く因縁抱いて。
記憶の隙間で ただ微笑む瞳が 儚く零れた、
運命さえ 光で照らして行く。
闇を離した この手を繋ぐ、
穢れなき宵 咲き誇るように。
夢から覚めた 昨日の声を、
ずっと聞かせて 独り歩いて行く。
展开
-
题解 P7288 「EZEC-5」树木的愤怒
Description 删除两条边,将树分成三个连通块 A,B,CA,B,CA,B,C,贡献为连通块点权和之积 删去一条边,问再删去任意一条边后的贡献和 Solution 考虑预处理出所有答案 先将边下放到子节点 O(n2)O(n^2)O(n2) 做法: 枚举删除的任意两条边,算出贡献,累加到两条边上 考虑优化 发现删去一条边后,再删第二条边时,对于很多情况,都会有一个连通块不变,考虑剩下连通块的贡献一起算,再乘上这个连通块的贡献 分类讨论 定义 sus_usu 为子树 uuu 的点权和 删的第二条边在原创 2021-01-26 21:42:59 · 213 阅读 · 0 评论 -
题解 CF76A【Gift】
提供一种题解区没有的 麻烦的要死 的 LCT 做法 转换题意,求所有生成树 PPP 的 Min(Maxi∈Pgi×G+Maxi∈Psi×S) Min(Max_{i\in P}g_i\times G+Max_{i\in P} s_i\times S) Min(Maxi∈Pgi×G+Maxi∈Psi×S) 发现和 魔法森林 很像 考虑类似的维护方式 化边为点,先将边按 gig_igi 排序,然后逐条加入边,维护 sis_isi 的最小生成树,并在图连通后每次更新答案 考虑如何维护 sis_isi原创 2020-11-23 21:38:13 · 229 阅读 · 3 评论 -
20201104 练习:(广义)后缀自动机
总览: 后缀自动机 广义后缀自动机 离线在 Trie 树上建立广义后缀自动机可以看作每次在线从父亲的位置开始插入一个字符 (在线做法也可以看做一个只有一条链的 Trie) T1 P6139 【模板】广义后缀自动机(广义 SAM) 思路: 模板 ans=∑len[i]−len[f[i]] ans=\sum len[i]-len[f[i]] ans=∑len[i]−len[f[i]] 代码: #include <bits/stdc++.h> using namespace std; #define原创 2020-11-04 21:16:09 · 152 阅读 · 0 评论 -
刷题列表
文章目录T1 [P4310 绝世好题](https://www.luogu.com.cn/problem/P4310)T2 [CF618F Double Knapsack](https://www.luogu.com.cn/problem/CF618F)T3 [P2371 \[国家集训队\]墨墨的等式](https://www.luogu.com.cn/problem/P2371)T4 [P2473 \[SCOI2008\] 奖励关](https://www.luogu.com.cn/problem/P24原创 2020-09-17 16:00:11 · 131 阅读 · 0 评论 -
20200908 练习:坐标旋转
T1 UVA12221 Fractal 思路: 题目大意:给一条折线,每一次操作把这条折线的所有线段变换成跟这条折线的相同形状,重复 ddd 次。问此时从头到尾走全长的 fff(0≤f≤1)(0≤f≤1)(0≤f≤1)距离,将停在点的坐标 输入: T 组数据 n 个点 点的坐标 变换次数 走全长的距离 设 t=这条折线的长度/头到尾的直线距离t = 这条折线的长度 / 头到尾的直线距离t=这条折线的长度/头到尾的直线距离 那么线段变换成折线的时候,长度就会变成 ttt 倍 变换 ddd 次,长度就会增大 t原创 2020-09-08 21:57:13 · 139 阅读 · 0 评论 -
20200901 练习:杜教筛
1227 平均最小公倍数 思路: 先看一个前置 P1891 疯狂 LCM 求 ∑i=1nlcm(i,n)\sum_{i=1}^nlcm(i,n)∑i=1nlcm(i,n) 有 ∑i=1nlcm(i,n)∑i=1ni×n(i,n) \sum_{i=1}^nlcm(i,n)\\ \sum_{i=1}^n\frac{i\times n}{(i,n)}\\ i=1∑nlcm(i,n)i=1∑n(i,n)i×n 然后巧妙的转化(正反各枚举一次) ∑i=1n−1i×n(i,n)+n12(∑i=1n−1i×n(i原创 2020-09-02 07:51:45 · 78 阅读 · 0 评论 -
20200901 练习:斜率优化
总览: 化为 kx+b=ykx+b=ykx+b=y,并且要求的仅在 bbb 中 将每个 x,yx,yx,y 看成一个点,用斜率为 kkk 的线去切,最大最小化截距 最优的点在凸包上,维护凸包即可 T1 P2900 [USACO08MAR]Land Acquisition G 思路: 先按长 aaa 排序 发现对于两个矩形 i,ji,ji,j 如果 ai<aj,bi>bja_i<a_j,b_i>b_jai<aj,bi>bj,则可以不考虑 jjj 于是可以去掉一些矩原创 2020-09-01 20:22:43 · 209 阅读 · 0 评论 -
20200807 练习:字符串
T1 P3193 [HNOI2008]GT考试 思路: 设 fi,jf_{i,j}fi,j 表示有 iii 个号码,kmp 上匹配到第 jjj 位时的情况总数 gi,jg_{i,j}gi,j 表示 kmp 上第 iii 个位置转移到第 jjj 个位置的总方案数 有 dp 方程: fi,j=∑k=0mfi−1,k×gk,j f_{i,j}=\sum_{k=0}^{m} f_{i-1,k}\times g_{k,j} fi,j=k=0∑mfi−1,k×gk,j 时间复杂度:O(n)O(n)O(n)原创 2020-08-07 22:42:23 · 213 阅读 · 0 评论 -
20200727 练习:生成函数(咕)
T1 CF438E The Child and Binary Tree 思路: 首先写出 dp 方程 枚举根节点的权值,拼接左右子树 f1=1fm=∑i=1mgi∑j=1m−ifjfm−i−j(m>1) f_1=1\\ f_m=\sum_{i=1}^mg_i\sum_{j=1}^{m-i}f_jf_{m-i-j}(m>1) f1=1fm=i=1∑mgij=1∑m−ifjfm−i−j(m>1) 其中 fif_ifi 为权值和为 i 时的种类数,gig_igi 为是否存在 c原创 2020-07-28 00:12:38 · 259 阅读 · 0 评论 -
20200607 练习:最小费用可行流
T1 P4043 [AHOI2014/JSOI2014]支线剧情 思路: 每条边下限为 1,上限为 INF 将每个点连一条到 1 号节点,流量 INF,费用 0的边 跑上下界网络流即可 最小费用可行流: 考虑一张网络流图,每条边定义为 (u,v,l,r,c)(u,v,l,r,c)(u,v,l,r,c),代表从 uuu 到 vvv 的一条有向边,费用为 ccc,容量为 [l,r][l,r][l,r] 闭区间,已知源点 sss 汇点 ttt,且保证源点没有入边、汇点没有出边 同时定义常规费用流图的边为 (u,v原创 2020-07-21 10:31:24 · 208 阅读 · 0 评论 -
20200607 练习:费用流
T1 学姐的逛街计划 描述 doc 最近太忙了, 每天都有课. 这不怕, doc 可以请假不去上课. 偏偏学校又有规定, 任意连续 n 天中, 不得请假超过 k 天. doc 很忧伤, 因为他还要陪学姐去逛街呢. 后来, doc发现, 如果自己哪一天智商更高一些, 陪学姐逛街会得到更多的好感度. 现在 doc 决定做一个实验来验证自己的猜想, 他拜托 小岛 预测出了 自己 未来 3n 天中, 每一天的智商. doc 希望在之后的 3n 天中选出一些日子来陪学姐逛街, 要求在不违反校规的情况下, 陪学姐逛街的原创 2020-07-20 17:06:26 · 81 阅读 · 0 评论 -
20200607 练习:CQOI2017day2(二维数点)(网络流)(树形dp)
T1 P3755 [CQOI2017]老C的任务 思路: 二维数点 离线后线段树维护 代码: #include<bits/stdc++.h> using namespace std; #define in Read() #define int long long #define lch p<<1 #define rch p<<1|1 inline int in{ int s=0,f=1;char x; for(x=getchar();x<'0'||x>'原创 2020-06-08 17:14:10 · 161 阅读 · 0 评论 -
20200603 练习:后缀数组(SA)
文章目录总览:T1 [P3809 【模板】后缀排序](https://www.luogu.com.cn/problem/P3809)T2 [P4051 [JSOI2007]字符加密](https://www.luogu.com.cn/problem/P4051)T3 [P2870 [USACO07DEC]Best Cow Line G](https://www.luogu.com.cn/problem/P2870)T4 [P6140 [USACO07NOV]Best Cow Line S](https://原创 2020-06-05 15:58:06 · 150 阅读 · 0 评论 -
20200601 练习:莫比乌斯反演
文章目录总览:T1 [P3455 [POI2007]ZAP-Queries](https://www.luogu.com.cn/problem/P3455)T2 [P2257 YY的GCD](https://www.luogu.com.cn/problem/P2257)T3 [P2522 [HAOI2011]Problem b](https://www.luogu.com.cn/problem/P2522)T4 [P3312 [SDOI2014]数表](https://www.luogu.com.cn/pr原创 2020-06-01 22:16:16 · 190 阅读 · 0 评论 -
20200529 练习:字符串(KMP+ACM)
文章目录总览:T1 [P3375 【模板】KMP字符串匹配](https://www.luogu.com.cn/problem/P3375)T2 [CF1200E Compress Words](https://www.luogu.com.cn/problem/CF1200E)T3 [P4824 [USACO15FEB]Censoring S](https://www.luogu.com.cn/problem/P4824)T4 [P3435 [POI2006]OKR-Periods of Words](ht原创 2020-05-28 22:15:29 · 196 阅读 · 0 评论 -
20200515 练习:轮廓线dp
T1 P4363 [九省联考2018]一双木棋chess P4363 [九省联考2018]一双木棋chess 题目描述 菲菲和牛牛在一块 n 行 m 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手。 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束。 落子的规则是:一个格子可以落子当且仅当这个格子内没有棋子且这个格子的左侧及上方的所有格子内都有棋子。 棋盘的每个格子上,都写有两个非负整数,从上到下第 i 行中从左到右第 j 列的格 子上的两个整数记作 Ai,j、Bi,jA_{i,j}原创 2020-05-15 22:30:02 · 130 阅读 · 0 评论 -
20200302 练习:计算几何
我以为有必要给这道题专门写一篇… 因为它实在太恶心 P2333 [SCOI2006]一孔之见 P2333 [SCOI2006]一孔之见 题目背景 SCOI2006 DAY3 T3 题目描述 从一个圆孔里看一个凸多边形,为了让看到的面积至少为 SSS,孔的半径至少需要多大? 假设孔的圆心固定在(0,0)(0,0)(0,0),且(0,0)(0,0)(0,0)在多边形的内部(而不是外部或边界上)。 输入...原创 2020-03-03 22:26:36 · 200 阅读 · 0 评论 -
20191103 练习:单调栈
总览: 没什么好说的… 和单调队列一个样 T1 直方图中最大的矩形 (直方图中最大的矩形) 直方图是由在公共基线处对齐的一系列矩形组成的多边形。 矩形具有相等的宽度,但可以具有不同的高度。 例如,图例左侧显示了由高度为2,1,4,5,1,3,32,1,4,5,1,3,32,1,4,5,1,3,3的矩形组成的直方图,矩形的宽度都为111: 通常,直方图用于表示离散分布,例如,文本中字符的频率。 现...原创 2019-11-03 19:49:33 · 98 阅读 · 0 评论 -
20191030 练习:多源最短路
第二道黑题祭~~~ P5304 [GXOI/GZOI2019]旅行者 (P5304 [GXOI/GZOI2019]旅行者) 题目描述 JJJ 国有 nnn 座城市,这些城市之间通过 mmm 条单向道路相连,已知每条道路的长度。 一次,居住在 JJJ 国的 RainbowRainbowRainbow 邀请 VaniVaniVani 来作客。不过,作为一名资深的旅行者,VaniVaniVani 只对 ...原创 2019-10-30 20:30:33 · 242 阅读 · 0 评论 -
20191025 练习:网络流(最大流最小割)
废话不说,直接上题 T1 P2756 飞行员配对方案问题 (https://www.luogu.org/problem/P2756) 题目背景 第二次世界大战时期… 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的222名飞行员,其中111名是英国飞行员,另111名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他若干...原创 2019-10-25 21:30:27 · 320 阅读 · 0 评论 -
20191023 练习:dp
T1 P1060 开心的金明 NOIP 2006 普及组 第二题 0/1背包 代码: #include<bits/stdc++.h> using namespace std; #define in Read() int in{ int s=0;char x; for(x=getchar();!isdigit(x);x=getchar()); for( ;isdigit(x);x...原创 2019-10-23 22:01:42 · 301 阅读 · 0 评论 -
20191021 练习:模拟+搜索+二分+AC自动机
T1 特殊排序 (时间限制:1秒 内存限制:128MB) 【题目描述】 写一个程序,对于读入的一对正整数xxx和yyy,将这两个数之间(包括这两个数本身)的所有数按下述特别规则排序后输出,该特别规则是按两数倒过来的值进行比较决定其大小,如303030倒过来为333,292929倒过来为929292,则292929大于303030。 【输入格式】 输入一行两个正整数xxx 和yyy ,用一个空格隔...原创 2019-10-21 20:01:18 · 136 阅读 · 0 评论 -
20191020 练习:割点和桥+树上差分
割点和桥 总览: 有割点不一定有桥,有桥不一定有割点! 求割点: 子节点low值小于等于父节点dfn值时,父节点为割点。 特别的,对于根节点,如果只有一颗子树,便不是割点。 struct Road{int next,to;}road[N]; int dfn[N],low[N],tim; bool cut[N]; void tarjan(int fa,int x){ dfn[x]=low[x]...原创 2019-10-20 22:27:43 · 132 阅读 · 0 评论 -
20191012 练习:KMP
总览: 用来一对多匹配字符串。 先看模板题: T1 P3375 【模板】KMP字符串匹配 (洛谷P3375)(https://www.luogu.org/problem/P3375) 题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置。 输入格式 第一行为一个字符串,即为s1 第二行为一个字符串,即为s2 输出格式 若干行,每行包含一个整数,表示s2在s...原创 2019-10-18 22:02:59 · 193 阅读 · 0 评论 -
20191015 练习:spfa
总览: bfs版+dfs版 判负权回路加记数数组,经历一个点n+1次时即存在负权回路。 bfs版模板: struct gg { int to,w; }; int s[N]; bool ex[N]; vector <gg> ljb[N]; queue <int> q; void spfa_bfs(int begin) { s[begin]=0; q.push(be...原创 2019-10-18 22:02:49 · 109 阅读 · 0 评论 -
20191012 练习:差分约束系统
总览: 很套路! 用来处理n元一次不等式组。 把每个未知量看成点,建图,用spfa处理。 约束条件xi−xj≤ckx_i-x_j\leq c_kxi−xj≤ck变形为xi≤xj+ckx_i\leq x_j+c_kxi≤xj+ck,在图中即单源最短路中的s[i]≤s[j]+w[k]s[i]\leq s[j]+w[k]s[i]≤s[j]+w[k]。 所以xi−xj≤ckx_i-x_j\le...原创 2019-10-18 22:02:55 · 206 阅读 · 0 评论 -
20191012 练习:强连通分量
总览: 就是生成搜索树,然后找返祖边。 模板: vector <int> ljb[N]; int dfn[N],low[N],tim,num,belong[N]; bool ex[N]; stack <int> st; void tarjan(int x) { dfn[x]=low[x]=++tim; st.push(x); ex[x]=1; for(int y...原创 2019-10-18 22:02:37 · 1083 阅读 · 0 评论