- 博客(193)
- 收藏
- 关注

原创 ACM组队训练记录(Grooming)(2019)
本文主要记录了本菜鸡(Chen.Jr)所在的队伍的2019年训练记录以及部分题解,以此来鼓励本蒟蒻奋发图强。TimeNameSolveABCDEFGHIJKLM2019-4-22018 ACM-ICPC, Universidad Nacional de Colombia Programming Contest9/13O·OØOO·...
2019-04-30 21:16:19
468
3

原创 ACM组队训练记录(Grooming)
本文主要记录了本菜鸡(Chen.Jr)所在的队伍的2018年训练记录以及部分题解,以此来鼓励本蒟蒻奋发图强。Name Solved A B C D E F G H I J K L M 2018-2019 ICPC, NEERC, Southern Subregional Contest ...
2018-10-26 14:53:18
333
原创 bzoj 1798(线段树)
传送门分析:因为同时涉及两种区间更新操作,故考虑用两种lazytaglazytaglazytag去打标记。而在我们进行区间加和区间乘的时候,我们会发现,因为乘法的优先级较加法的优先级要高,因此,为了方便处理,我们优先选择下放乘法标记。同时我们需要注意,在我们下放乘法标记mulmulmul的时候,如果当前区间存在加法标记addaddadd,则我们需要在addaddadd的基础上乘上mulmu...
2019-05-29 21:35:58
281
原创 [网络流24题(2/24)] 餐巾计划问题 (洛谷P1251)最小费用最大流
传送门题意:现在有NNN天,第iii天需要使用aia_iai个新的餐巾,新餐巾用完后,可以花费fff元使得第i+mi+mi+m天后可以重新利用;可以花费sss元使得第i+ni+ni+n天后可以使用;也可以把旧餐巾留到下一天去洗。现在买一个新的餐巾需要ppp元,现在问你在满足所有天的要求的前提下的最小花费。分析:一个比较厉害的最小费用最大流的模型。看到即涉及物品的(物品还能流动的),又...
2019-05-28 22:36:22
239
原创 [网络流24题(1/24)] 最小路径覆盖问题(洛谷P2764)
传送门分析:本题的结论是:最小路径覆盖=顶点数-原图的最大匹配数证明(逼逼) :对于111对由111条边覆盖的点而言,点数−1=边数点数-1=边数点数−1=边数倘若对于nnn个由mmm边所覆盖的点而言,则等价于把上述式子归纳,则有:n−m=covern-m=covern−m=cover而现在我们需要令covercovercover最大化,显然我们必定是要取到尽可能多的符合题意的边数。...
2019-05-27 16:36:36
211
原创 Codeforces 1082 G(最大权闭合子图)
传送门题意:有一张图,点权为aia_iai,边权为wiw_iwi,求这张图的最大权闭合子图分析:这……最大权闭合子图裸题?甚至题意都没有任何隐藏代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=10005;const ll inf=0x3f3f3f...
2019-05-27 10:06:16
153
原创 bzoj 1497(最大权闭合图/最小割)
传送门题意:有nnn个通信塔,建立第iii个通讯塔需要花费pip_ipi元。同时有mmm个人,对于第iii个人,如果aia_iai号塔以及bib_ibi号塔被建了,则会赚cic_ici元。问最大的收益。分析:最大权闭合图的经典的模型。所谓闭合图,即要满足一定的依赖关系,即一个事件要发生,它需要的所有前提也都一定要发生。而最大权闭合图即为点权最大的闭合图。而这类问题的一个比较经...
2019-05-26 01:15:16
177
原创 loj 515(bitset优化dp)
传送门题意:一共有 nnn个数,第 iii 个数 xix_ixi 可以取 [ai,bi][a_i , b_i][ai,bi] 中任意值。设 S=∑xi2S = \sum{{x_i}^2}S=∑xi2,求 SSS 种类数。分析:显然可以发现,极限情况下SSS最大为100000010000001000000,同时,我们可以发现,当前取到了第iii个数的状态,必然可以由第i−1i-1i...
2019-05-25 00:48:24
284
原创 bzoj 3998 (后缀自动机)
传送门:题意:给你一个长度为nnn的字符串strstrstr和一个数KKK,现在有两个询问:op=0op=0op=0:不同位置的相同子串算作一个,求字典序第KKK小子串op=1op=1op=1:不同位置的相同子串算作多个,求字典序第KKK小子串题目分析:因为后缀自动机能够包含所有的子串,因此我们考虑在后缀自动机上贪心的跳转。我们设后缀自动机上第iii号结点所包含的字符串的个数为n...
2019-05-24 18:39:28
218
原创 HDU 6071(同余最短路)
传送门:题意:给你四个点,相邻两个点之间有一条连边。现在问你从222号点走到222号点的至少为KKK的最短路的长度。题意:一个非常有意思的算法!因为题目中的KKK比较大,因此一些乱搞的算法显然无法通过,而鉴于点数相对来说比较少,因此我们得研究一下这几个点所蕴涵的性质。我们发现,对于222号结点,它有两条可行的边,我们设这两条边的距离分别为d12d_{12}d12以及d23d_{23}...
2019-05-23 09:47:37
289
原创 SPOJ COT2 (树上莫队)
传送门题意:给你一棵大小为nnn的树,每个点都有点权。现在有mmm个询问,每个询问给你一个两个数a,ba,ba,b,问你从点aaa到点bbb之间的路径中不同的点权的个数。分析:万恶的spoj并没有写点权的数据范围,害我我先re(此题需要离散化点权)求解带有询问的不同数的个数这类题,一看就相当莫队 ,但是因为莫队只能够在一个序列上进行操作,因此我们考虑如何让树的树形结构转化为线性的结构。...
2019-05-22 10:52:40
239
原创 Atcoder Grand Contest 20 C(bitset优化背包)
传送门:题意:给你nnn个数,现在一共可以形成2n−12^{n}-12n−1个集合。他们的和能够形成一个新的数列。现在问你这个新的数列的中位数是多少。题目分析:首先需要知道,一个数列的中位数必定是大于等于(∑i=1nai)/2(\sum_{i=1}^{n}a_i)/2(∑i=1nai)/2,证明如下。设集合AAA能够分为P,QP,QP,Q两个不同的子集,且(P⋃Q=AP \bigcu...
2019-05-21 18:22:06
168
原创 hdu 6480-6489 (2018 黑龙江省大学生程序设计竞赛)
Problem A题意:给你一个串,问你这个串内有多少个只含有一种字符的子串分析:双指针扫描,每次向右扫描相同字符,设每次扫描到的长度为lenlenlen,最终答案为len∗(len+1)2\frac{len*(len+1)}{2}2len∗(len+1)代码:#include <bits/stdc++.h>#define maxn 100005using names...
2019-05-07 21:00:56
1008
原创 Gym102174 (The 14-th BIT Campus Programming Contest)
传送门:Problem A温暖的签到题,用个map记录一下就行了。#include <bits/stdc++.h>using namespace std;string str[20];map<string,int>mp;int main(){ //sfreopen("in.txt","r",stdin); //1 chui 0 xi ...
2019-05-06 20:13:22
630
4
原创 zoj 4130(The 16th Zhejiang Provincial Collegiate Programming Contest D)(思维)
传送门:题意:你现在有nnn个点,对于第iii个点,可以到达第i−1i-1i−1、2∗i2*i2∗i、2∗(i+1)2*(i+1)2∗(i+1)、⌊i2⌋\left \lfloor \frac{i}{2} \right \rfloor⌊2i⌋号点。现在问你从111号点开始的哈密顿路径。分析:一道非常有意思的题目。我们需要发掘题目中隐藏的信息。首先,假设该顶点不能到达第i−1i-1i−...
2019-04-28 21:57:03
264
原创 The 16th Zhejiang Provincial Collegiate Programming Contest
传送门:Problem AProblem BProblem CProblem DProblem E题意:给你一个长度为长度为nnn的序列,每次你可以选取其中的某一个数aia_iai,你可以把aia_iai放到序列的首位。问最少进行多少次操作可以使得序列单调递增。分析:先记录原序列中每个数的位置id1id_1id1,再记录升序排序之后的位置id2id_2id2,最后...
2019-04-28 11:25:45
679
原创 2019 The Preliminary Contest for ICPC China Nanchang National Invitational
传送门:Problem A温暖的签到题,打个表就行了。吐槽一下:出题人并没有说用什么格式输出,害得我输出一行怒得一pe#include <bits/stdc++.h>using namespace std;int main(){ cout<<6<<endl; cout<<28<<endl; cout&...
2019-04-22 12:17:26
261
原创 2019年华南理工大学程序设计竞赛(春季赛)K(后缀自动机)
传送门题意:给你一个长度位lenlenlen的串,一共有ttt组询问,每次询问给你一个数iii,你要将原来的串在位置iii处分开,构造出两个不同的字符串str1str_1str1,str2str_2str2。现在要问你str1str_1str1和str2str_2str2的公共子串的个数。分析:讲真这又是一个简化版的原题呀 。(原题poj3415poj3415poj3415)我们...
2019-04-15 18:41:56
214
原创 2019年华南理工大学程序设计竞赛(春季赛)
传送门总结:状态和节奏都异常稀烂的一场比赛。全场梦游。开场看到隔壁黄色气球打得异常的多,因此上机直接打找到水题两分钟1y(这里有个小插曲,打完代码之后发现还没登陆,又花了一些时间登陆,再又花了一些时间找如何提交,痛失1血,可能这也是全场比赛的缩影)。过了L题之后,我全场看题,发现了E是个裸的dancing links,准备掏出板子一端狂抄。此时发现I题已经有不少人A了,看题之后发现这是个多...
2019-04-14 10:35:46
396
原创 Gym 101982 (2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) )
传送门:Problem A温暖的签到题#include<bits/stdc++.h>using namespace std;const int maxn=1007;char s1[maxn],s2[maxn];int main(){ ios::sync_with_stdio(false); cin.tie(0); int n,k,sum0=0,su...
2019-04-10 09:02:51
664
原创 Gym 101845(2018 ACM-ICPC, Universidad Nacional de Colombia Programming Contest)
Problem AProblem BProblem C题意:给你两个串str1str1str1和str2str2str2以及mmm种操作,对于第iii操作你可以花费costicost_icosti元,将字符cic_ici编程字符viv_ivi。现在问你将str1str1str1转化为str2str2str2的最小花费。分析:考虑将这mmm种操作的关系连边,并形成一个关系图。要...
2019-04-07 22:22:44
1409
原创 HDU 3966(树链剖分)
传送门题意:给你一个有nnn个顶点的树,树上的每一个点都有一个点权,现在有333种操作:I u v kI~ u~v~kI u v k,代表将结点uuu到结点vvv的最近的路径上的所有点的点权增加kkkD u v kD~ u~v~kD u v k ,代表将结点uuu到结点...
2019-04-01 22:16:32
213
原创 bzoj 3631 (树上差分)
传送门题意:给你一棵有nnn个结点的树,现在给你一个大小为nnn的排列,说明你的行走路径。你每经过树上的每一个点,你就需要将这个点的点权加1。问你最后所有点的点权大小。题目分析:根据题目的意思,很明显这道题是一个非常典型的点差分的问题。我们只需要对结点uiu_iui,viv_ivi以及lca(ui,vi)lca(u_i,v_i)lca(ui,vi),fa[lca(ui,vi)]fa...
2019-03-28 09:51:43
236
原创 bzoj 4390(树上差分)
传送门题意:给你一颗有nnn个结点的树以及mmm个路径。对于每一个路径pathipath_ipathi,代表着你将会从uiu_iui走到viv_ivi。现在问你,你走完着mmm个路径后,在这nnn个结点中经过的最多的次数。题目分析:首先,如果我们用dfsdfsdfs在树上暴力去跑的话,显然时间肯定是接受不了的。因此我们需要考虑一种较为优美的算法。我们发现,经过每一个路径pathip...
2019-03-27 21:27:46
215
原创 bzoj 5321(二分+优先队列+线段树)
传送门题意:给你一个长度为nnn的数组, 以及mmm个连续的区间。现在让你取恰好kkk个区间,你要将你选取的kkk个区间都加上aaa。现在要你最大化整个数组的最小值,即要最大化min{Ai}\min \{ A_i \}min{Ai}题解:最大化最小值,看到这样的词汇就非常二分了,于是乎我们就考虑采用二分答案解决。于是乎,我们现在需要考虑的就是如何进行check\text{check}...
2019-03-27 20:23:26
189
原创 Luogu p3379(LCA)
传送门题意:求一颗nnn个节点的树的LCALCALCA题目分析:复习+学习一下三种不同LCALCALCA的求法(特别是根据欧拉序+STSTST表求LCALCALCA)的方法。下面简单总结(借鉴)一下LCALCALCA的三种求法代码:树上倍增算法(在线),预处理时间复杂度O(nlogn)\mathcal{O}(nlogn)O(nlogn),每次询问的时间复杂度为O(logn)\mat...
2019-03-22 21:41:06
202
3
原创 Luogu P1886(单调队列)
传送门题意:给你一个长度为nnn的数组以及一个宽度为mmm的窗口,现在让你不断移动这个窗口,问你在每个位置上在窗口范围内的最大值以及最小值。题目分析:单调队列模板题,显然我们可以用两个双端队列dequedequedeque分别维护一个单调递增的单调队列(用来获取最小值),以及一个单调递减的单调队列(用来获取最大值)。PS:这个题的原题是poj 2823poj~2823poj&n...
2019-03-22 14:01:20
114
原创 bzoj 3223 (平衡树)
传送门题意:实现某个数列的区间翻转题解:获得了一份更为完整的平衡树的板子。代码:#include <bits/stdc++.h>using namespace std;const int maxn=200005;int ch[maxn][2],par[maxn],val[maxn],cnt[maxn],size[maxn],ncnt,root;int rev[ma...
2019-03-22 09:46:03
136
原创 bzoj 3224(平衡树)
传送门题意:请你完成666种最基础的平衡树的操作。题目分析:什么也别说了,平衡树的板子题。收获到了一个写起来比较舒服的平衡树的板子。代码:#include <bits/stdc++.h>using namespace std;const int maxn=200005;int ch[maxn][2],par[maxn],val[maxn],cnt[maxn],siz...
2019-03-21 22:36:31
231
原创 Codeforces 404D(dp)
传送门题意:111维扫雷问题。给你一个长度为lenlenlen的字符串,每一个字符串分别有五种可能性:111,000,???,222,∗*∗‘,如果字符为111,则代表其相邻有一个∗*∗。如果字符为000,则代表相邻没有∗*∗。如果字符为222,则代表相邻有两个’ ∗*∗ ‘如果字符为∗*∗,则代表此处是地雷如果字符为???,则代表有该字符能够表示为其他四种字符...
2019-03-13 22:13:17
205
3
原创 Codeforces 235 C(后缀自动机)
传送门题意:给你一个主串strstrstr以及nnn个模式串。问你这nnn个模式串的所有循环同构在主串strstrstr中的出现次数。题目分析:这是一个需要转换思维的题目。首先,如果题目中不要求我们求每一个模式串的循环同构的出现此时,显然这道题我们直接可以用后缀自动机进行求解。而现在的问题就是我们应当如何在比较优的时间内将一个字符串中的所有循环同构的出现次数。我们首先对主串建立后缀自动...
2019-03-01 15:26:09
289
原创 Codeforces 300 E(数论)
传送们题意:让你找到一个最小的p=n!p=n!p=n!使得ppp能够式子∏i=1kai\prod_{i=1}^{k}ai∏i=1kai整除。题目分析:非常棒的一个题目!首先,因为要求得一个最小的满足条件的值,因此,我们不妨可以想到可以使用二分。而对于这个问题,倘若n!n!n!能够被∏i=1kai\prod_{i=1}^{k}ai∏i=1kai整除,则可知,(n+1)!(n+1)!(n...
2019-02-28 21:15:10
268
2
原创 Gym 101741 K(AC自动机)
传送门题意:给你一个长度为nnn的模式串以及mmm个总长度长度不超过10510^5105的匹配串。问这mmm个匹配串分别在模式串中出现了多少次,要求每一次出现位置不能够相交。题目分析:首先,我们要知道,虽然匹配串的总长度为$10^5$,但是因为KMP的时间复杂度为$\mathcal{O}(n+m)$,这就使得整体复杂度总会变成$\mathcal{O}{(n^2)}$,因此KMP显然是会超时...
2019-02-20 15:01:07
229
原创 Codeforces 362D (并查集)
传送门:题意:有一个nnn个结点,mmm条边的无向带权图。现在你想要在加ppp条边,使得其能够划分成qqq个连通块。对于加的边:如果两个结点之前不在同一个连通块里,则加的边的边权为:min(109,S+1)\min(10^9,S+1)min(109,S+1),SSS是两个结点分别所在的连通块的权值和如果两个结点在同一个连通块中,则加的边的边权为:100010001000现在问你是否...
2019-02-17 14:18:42
191
原创 Codeforces 1105E(最大独立集)
传送门题意:现在有两种操作:更改名字iniiniini输入一个名字namenamename,如果namenamename和iniiniini相同,则名字为namenamename的朋友会开心(否则不开心)现在有nnn次这两种操作,问你最多能够使得多少个朋友开心。题目分析:首先我们考虑每一个1…2&nbsp;2&nbsp;2…11\dots 2~2~2\dots 11…2&nbsp...
2019-02-10 20:42:12
358
原创 Codeforces 1107 F (二分图最大权匹配)
传送门题意:有nnn个贷款,你在月初可以申请任意一个贷款。对于第iii个贷款,你可以获得aia_iai元,但是你要在未来的kik_iki个月底还bib_ibi元。现在每个贷款只能申请一次,问在某个时刻,你能够获得的最多的钱。题目分析:我们思考这样的一个问题,假设我们选取了第iii个贷款,并经过了jjj个月,那么对于选取第iii个贷款这个行为,它对答案的贡献为:max(ai−bi×(...
2019-02-10 13:03:57
448
原创 Codeforces 1105C (dp)
传送门题意:有一个长度为nnn的数列的未知数列,数列的每一个数的值都在区间[l,r][l,r][l,r]的范围内。现在问你能够构成多少个这样的数组,使得数组内的所有数的和能够被333整除。题目分析:在这个题中,我们不能纠结在具体的数值的变化,我们需要关注数量的变化。首先,涉及到这类整除性的问题,我们需要将它转化成余数的问题。那么我们可以发现,这些数的余数只会在[0,2][0,2][0,2...
2019-02-06 10:27:35
1049
原创 Codeforces 1104 E(DFS生成树)
传送门题意:给你一个有nnn个结点,mmm条边的无向连通图,以及一个数字kkk。现在问你,能否构成如下的两种情况:找到111条长度大于nk\frac{n}{k}kn路径,并把这条路径输出找到kkk个环,要求每个环的长度至少要为333,且环的长度不能被333整除。并把这kkk个环的路径都输出出来题目分析在这道题中,我们需要运用到DFS生成树的一些性质。首先,对于DFS生成树,简...
2019-02-03 21:09:15
718
原创 Codeforces 1104 D(数论+二分+交互)
传送门题意:让你在606060步之内猜出一个模数aaa。每次你可以输入两个数xxx和yyy。如果xmod&amp;ThinSpace;&amp;ThinSpace;a≥ymod&amp;ThinSpace;&amp;ThinSpace;ax \mod a \ge y \mod axmoda≥ymoda,则交互器输出"XXX",否则输出“YYY”.题目分析:平日里遇到交互题的机会不多,正好借...
2019-02-02 18:21:14
475
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人