- 博客(394)
- 收藏
- 关注
原创 生涯总结——退役贴
光阴似箭,岁月如梭。(老套的开头……)转眼间从那个报名参加OI单纯只是为了打游戏的懵懂少年,到现在已经拿到ecfinal和ccpc金奖和硕博连读资格的我,转眼也快要有十年了。这十年间,虽说前期很长一段时间都是在浪费生命,但是最终也算是拿到了一个自认为比较满意的成绩。大学以前的事情就不说了,现在总结一下大学三年三个赛季的训练和成绩吧。2017赛季怎么说这个时候呢,大概就是自以为是,不知天高地...
2019-12-18 20:37:24 2628 11
原创 2018年上半赛季总结
从去年ACM/ICPC ECL Final到现在,六个月已经过去。不知不觉中2018年上半年的赛事也已经结束了…… 也许是凭借经验,也许是凭借发挥;也许是队友给力,也许是强手没来;也许是运气,也许是实力。至少在这上半年中,从成绩上看,我们确实是取得了长足的进步。但是,自己打心底里还是对自己、对我们队的实力有很大疑问。我们是否真的已经能够称得上是强队,是否真的能够拿到下...
2018-06-12 00:57:12 764 7
原创 2017年赛季总结
随着ACM/ICPC南宁站落下帷幕,我2017年的ACM赛季就告一段落了…… 先说说收获。 首先是奖励方面的。从上半年的校赛第一,到下半年省赛的二等奖,再到最后CCPC+ICPC的三个铜牌,可以说今年算是实现了从无到有的突破。仍然不会忘记上半年在武汉、在湘潭和在西安的时候那种打铁的落寞和无力感,但是经过自己的不懈努力,现在已经到了那种即使是一个人参赛,也不至于打铁的地步。但是实力虽在,却无法完全展现。这么说并不是想表明自己有多牛逼,自己运气有多差,毕竟运气在某种程度上也是实
2017-11-28 21:34:29 859 3
原创 About Myself
其实CSDN的号注册比较久了,但是一直没有发东西,主要是用来膜拜别人的…… 我自己呢其实没什么,蒟蒻一只。虽然说接触OI比较早,但是其实很多时候都是在混,对就是混。小学的时候迷迷糊糊参加了一个选拔,然后有幸成为我那个年纪唯一入选OI培训的人。说培训,其实也只是普及,然后就迷迷糊糊的混过了小学,只是学了学基本的语言还有贪心啊一些入门东西,大部分时间都是自己偷偷呢玩游戏,你懂的……
2017-02-03 20:11:00 900 7
原创 CodeForces - 1264D2 Beautiful Bracket Sequence(生成函数 + 组合计数)
大致题意给你一个由左右括号和?组成的字符串,现在?可以替换成左右括号的任意一个。定义一个字符串的深度为最大的左右括号嵌套数。现在问,所有的替换方案产生的字符串的深度总和是多少。做法如果有nnn括号,那么就会有2n2^n2n个字符串,显然直接计算不可以。考虑一个字符为 ‘(’ 的位置iii,如果他要对最后的深度产生影响,当且仅当它和它左边的 ‘(’ 数目小于等于它右边的 ‘)’ 数目。那...
2019-12-12 11:18:49 848
原创 CodeForces - 1073G Yet Another LCP Problem(后缀数组 + 单调栈 / 分治)
大致题意给你一个字符串SSS,然后有qqq个询问。对于第iii个询问,给出两个数字kik_iki和lil_ili序列a1,a2,...,akia_1,a_2,...,a_{k_i}a1,a2,...,aki和b1,b2,...,blib_1,b_2,...,b_{l_i}b1,b2,...,bli,让你求∑i=1i=k∑j=1j=lLCP(s[ai…n],s[bj…n]...
2019-12-03 20:05:11 580
原创 CodeForces - 1260F Colored Tree(树链剖分 + 组合计数 + 树状数组)
题意给你一棵n个节点的树,每个节点都有一个颜色。这棵树的权值定义为,任意两个相同颜色的点之间的路径长度之和。但是,这棵树的每个点的颜色是不确定的,你只知道节点iii的颜色属于某一个区间[li,ri][l_i,r_i][li,ri],于是这棵树总共就有∏1≤i≤n(ri−li+1)\prod_{1\le i \le n}(r_i-l_i+1)∏1≤i≤n(ri−li+1)种可能。你需...
2019-12-02 16:03:18 515
原创 CodeForces - 1218D Xor Spanning Tree(仙人掌图找环 + FWT)
大致题意给你一个包含最多42个环的仙人掌图,让你找最小异或和生成树,并且输出方案数。做法由于只有42个环,所以我们可以暴力找出每一个环。由于是要找生成树,所以肯定是每个环中选择一条边去掉,然后把这些边的权值异或起来即可。考虑如果某个环有x个点,那么最多就会有x个不同的异或和数值,我们可以把这些数值用一个多项式记下来,这样总共就有42个多项式。然后对于不在环上的边,直接求出异或和,也用...
2019-11-29 11:21:04 563
原创 CodeForces - 1261F Xor-Set(动态开点线段树 + dfs)
大致题意给你AAA、BBB两个集合,两个集合里面的数字是由很多个区间构成的。现在让你求∑i∈A,j∈Bi⊕j\sum_{i \in A,j \in B}i\oplus ji∈A,j∈B∑i⊕j其中同样的异或结果只计算一次。解法显然我们要按位来考虑,对于每一位考虑异或之后可以取的数值,然后对低位就会产生对应的贡献。具体来说,如果第ddd位可以取1,那么第ddd位下面的所有位不论结果取什...
2019-11-28 15:23:58 422 1
原创 CodeForces - 1254D Tree Queries(树链剖分 + 树状数组 + 组合计数)
题意两种操作。第一种操作(v,d)(v,d)(v,d),首先随机选择一个点rrr,然后把所有满足路径<u,r><u,r><u,r>经过vvv的uuu点都加上权值d。第二种操作询问点xxx期望权值。做法显然要考虑每个询问对于单个点的贡献。以样例为例,对于每一个操作(v,d)(v,d)(v,d),考虑对节点2产生的贡献,可以分为两种情况。当vvv在节...
2019-11-20 11:51:02 961
原创 Comet OJ - Contest #14(set区间操作 + 树状数组)
Comet OJ - Contest #14做法这题是一个很骚的做法。因为每次是把整个区间覆盖为某个数字,所以可以看作是把一段区间内的很多段数字合并成一个的过程。我们考虑用setsetset去维护这个过程,setsetset里面保存四元组(l,r,x,id)(l,r,x,id)(l,r,x,id),表示区间[l,r][l,r][l,r]都是xxx且是在第ididid个操作之后改变的。se...
2019-11-09 18:31:14 320
原创 Comet OJ - Contest #11 F arewell(FWT + 状态压缩)
大致题意做法考虑到n的大小只有20,所以应该和状态压缩或者说集合按位表示有关。因此,我们考虑用FSF_SFS表示考虑的点的状态为SSS的情况下,所有可能的DAGDAGDAG的方案数。考虑每一个状态的转移,容斥一下可以得到如下转移方程:FS=∑T⊂S(−1)∣T∣−1FT2∣ET,S−T∣F_S=\sum_{T \subset S}(-1)^{|T|-1}F_T2^{|E_{T,S...
2019-11-01 11:18:59 298
原创 CodeForces - 235E Number Challenge(莫比乌斯反演 + 数论分块)
CodeForces - 235E Number Challenge大致题意做法如何插入一段漂亮的代码片KaTeX数学公式大致题意计算如下式子做法如果只是两个数字乘积的约数个数,那么有公式:σ(ij)=∑a∣i∑b∣j[(a,b)=1]\sigma(ij)=\sum_{a|i} \sum_{b|j}[(a,b)=1]σ(ij)=a∣i∑b∣j∑[(a,b)=1]当有三个数字...
2019-10-31 18:05:57 351
原创 CodeForces 1225E Rock Is Push(dp + 前缀和优化)
大致题意:一个迷宫,里面有很多箱子,你可以向右或者向下走。当你遇到一个或者多个箱子的时候,你可以把箱子往你移动的方向推动,但是不能把箱子推出到墙壁外面。你从左上角出发,问你有多少种方法到右下角。考虑如果没有箱子,那么就是一个很简单的递推问题,对于一个格子,要么从上面要么从左边来。有箱子的话,由于箱子可以被推动而且不能推到外面,所以我们要考虑是否可以从上面或者下面过来。还...
2019-10-26 23:53:55 991
原创 CodeForces 1251F Red-White Fence(NTT + 组合计数)
大致题意:给你一堆木条,一些是白色的,一些是红色的。然后要把这些木条拼到一起构成长度先递增后递减的样子,然后要求红色木条长度最长,问最后使得这个拼凑出来的多边形的周长为Qi的方案数是多少。首先,很显然周长相当于是2*(n+L),其中这个L表示最长的红色木条的长度,然后红色木条的只有最多5个,所以我们枚举这个红色木条相当于就知道了这个n。即只需要计算长度为n的先上升后...
2019-10-26 09:37:37 908
原创 CodeForces 1238E Keyboard Purchase(状态压缩dp)
大致题意:给你一个由最多m种字符构成的长度为L的字符串。定义两个相邻字符的代价之差是两个字符对应位置的绝对值,现在让你找到这m种字符的一种排列方式,使得总的代价之和最小,问最小代价是多少。很神奇的一种状压姿势。我们考虑最好的情况下肯定是让任意两个字符位置之差为1,但是实际上相邻的最多只有两个,不能所有的位置之差都为1。但是我们在做的时候,可以维护当前可以取的最小距离。初...
2019-10-09 11:07:47 765
原创 计蒜客 ICPC2019 上海网络赛 C Triple(FFT + 组合计数)
大致题意:给你三组边长,让你从三组边长里面各选出一条边,问组成非严格三角形的方案有多少种。这里非严格是指,可以退化为一条直线。这题其实算是半个原题,详见HDU 4609。那道题是一组边选三条构成严格三角形,这里是三组边。其实本质上类似。参照那道题目的做法,我们枚举一条最大边,于是我们就可以知道另外两条边的和就是这条边的长度到最大长度这个区间内。我们要做的就是看,从另...
2019-09-16 20:38:20 422
原创 计蒜客 2019ICPC 徐州网络赛 H function(Min25筛)
大致题意:定义f(n)表示n分解质因数后,各个质因子的幂次之和,现在让你计算。显然只需要考虑质数,计算质数的贡献。我们令 那么质数p的贡献就是: 对于小于的质数,我们可以直接暴力求解。对于大于,...
2019-09-14 10:15:39 445
原创 计蒜客 2019ICPC 南昌网络赛 F Megumi With String(后缀自动机)
大致题意:给你一个字符串S和一个多项式f(x),然后再告诉你一个长度。随机取这样一个长度的字符串T,如果T包含S的某个子串且这个子串的长度为len,那么T的权值就增加f(len),如果包含多个子串,那么权值为他们的和。现在问你这个T的期望权值是多少,且S不断变长,你需要求T在每个S情况下的期望。这题可以参照 HDU 6405 两题有类似之处。这里本质上相当于统计每个...
2019-09-14 09:39:48 288 1
原创 CodeForces 1217E Sum Queries?(线段树)
打比赛的时候,最后两分钟发现是INF设小了,改了之后没来得及交上去比赛就结束了。。。大致题意:有n个数字,m个操作。操作分为两种,1是修改某个数字,2是询问某个区间内是否存在一个集合,使得集合内数字的和存在至少一位,在所有的集合内数字对应位中都没有出现过,如果有输出最小的,否则输出-1。看起来好难的样子,要求的是一个集合而不是连续区间,然后判断条件是和的每一位数字,而且...
2019-09-06 08:22:59 359
原创 计蒜客 2019ICPC 南京网络赛 E K Sum(莫比乌斯反演 + 杜教筛)
大致题意:自己看吧……直接上莫比乌斯反演。 令,显然g是一个积性函数,我们考虑用杜教筛求它的前缀和。 ...
2019-09-02 13:00:50 342
原创 HDU 6706 2019CCPC网络赛 1005 huntian oy(杜教筛)
大致题意:告诉你n、a和b,让你求 中间那个gcd(i^a-j^a,i^b-j^b)这个看起来很吓人,其实你打表会发现其实它等于i-j,那么就变成了求 这个显然可以拆成两个部分 第一...
2019-08-24 16:07:24 549
原创 2019HDU多校赛 第十场 HDU 6694 Play Games with Rounddog(后缀自动机 + 线性基)
大致题意:给你一个字符串S,然后q个询问,每次给出S的一个子串T。对于每个询问的子串T,Calabash可以在S中选择任意个以T作为后缀的子串,然后生成子串对应数目个石子堆,每堆的石子数量等于w[对应子串在S中出现的次数]。然后Rounddog可以从这么多堆石子中选择任意堆的石子(至少选一堆),两人开始玩Nim游戏,Calabash先手。现在问Calabash是否存在必胜策...
2019-08-23 10:15:25 619
原创 2019HDU多校赛 第九场 HDU 6682 Rikka with Mista(折半搜索 + 组合计数 + 排序)
大致题意:给你最多40个数字,你可以任意的取数字,问所有的取法下,所有取的数字的和中4的个数的和是多少。40个数字,其实就是折半搜索,但是好像有一个听起来好像挺厉害的名字meet in middle。具体来说,数字分为两半,然后分别求出两部分可以构成的所有的和。这样两部分分别最多有2^20约100W种数字,然后我们考虑这两部分求和。由于是计算和种4出现的次数,所以我们考...
2019-08-20 20:21:24 466
原创 2019牛客多校赛 第九场 I KM and M(贡献 + 组合计数)
大致题意:告诉你一个n和m,让你求。涉及到位运算的东西,很容易想到计算贡献,这里也是一样。因为最后按位与的是一个常数,所以只需要看这个常数对应为1的位置,在M、2M、3M...NM这N个数字中,有多少个仍然是1。用个数乘以对应位的2的幂次即可。那么现在问题变成了如何求这个个数。我们考虑对于一个数字iM,如果求它二进制下第j位是否是0。显然,我们可以先把iM右移j位得到x...
2019-08-19 08:39:44 402
原创 2019牛客多校赛 第八场 H How Many Schemes(AC自动机 + 矩阵 + 向量 + 树链剖分 + 线段树)
大致题意:给你一棵树,每条边上有一个字符串,然后有一些模式串。现在给你一个询问<u,v>,问你u到v的路径上,每个条边任意选择一个字符,最后按照顺序组成一个字符串,最后的字符串包括至少一个模式串的方案有多少种。看起来很难的样子,写起来其实很复杂,但是理解清楚了其实思路也不太难。首先,既然涉及到匹配问题,而且是多个模式串,很容易想到对模式串建立AC自动机。...
2019-08-15 20:57:54 345
原创 2019HDU多校赛 第七场 HDU 6652 Getting Your Money Back(区间dp + 单调优化)
大致题意:告诉你你的存款余额在一个区间内,然后每次你可以猜一个数字,如果余额大于等于你猜的数字,那么你可以取走这些钱并且代价为a,否则为代不能取走且价为b。你可以多次重复这个动作,直到你能够确定你初始时的总共有多少钱。现在问你,最少花费多少的代价能够知道你初始时的账户余额。这题有点像二分的意思,如果a和b相等,那么显然按照二分的策略即是最优。考虑到这一点,我们显然可以发现,...
2019-08-13 11:17:40 757
原创 2019牛客多校赛 第七场 H Pair(数位dp)
大致题意:告诉你范围A和B,让你求在两个范围内,有多少对数字可以使得二者按位与大于C或者异或小于C。一个比较常规的数位dp,然而比赛的时候由于自己复杂度计算错误,还写了好久的优化,最后发现不优化也能过。我们令dp[len][x][y][lim1][lim2]表示在二进制下,当前长度为len的时候,第一个条件的状态为x,第二个条件状态为j,第一个数字的限制情况为lim1,...
2019-08-08 17:20:41 771 8
原创 2019HDU多校赛 第五场 A HDU 6624 fraction(辗转相除法)
大致题意:给你一个分数在p下的逆元表示形式,现在让你反推这个分数的a/b的形式,求最小的b且0<a<b。首先,我们推一下式子: ...
2019-08-06 16:37:52 467
原创 2019牛客多校赛 第六场 C Palindrome Mouse (回文树/回文自动机)
大致题意:给你一个字符串,问这个字符串的子串中,有多少个本质不同的回文串恰好是另外一个回文串的子串,求这样的回文串的对数。可以说,这是一个回文树/回文自动机的裸题吧。显然,在回文树里面,一个节点的所有后代都是回文串而且包含当前回文串,所以可以直接统计所有节点的size。然后,当前节点的所有后代也包含当前节点的fail回文串,所以后代的贡献也要算到fail上。那么,一个很显然的问题...
2019-08-04 18:26:51 479 2
原创 2019牛客多校赛 第五场 C generator 2(矩阵乘法 + 分块 + bsgs)
大致题意:给你一个很长的数列,然后这个数列递推公式是Xn = a * Xn-1 + b。问你在模p下,这个数列中,第一次出现v的位置是多少,如果不出现那么输出-1。这个东西,你先尝试着用矩阵快速幂去做,然后你构造出矩阵,假设答案为x。之后你会发现,答案可以化简成一个通项公式。具体来说,我们设转移矩阵为A,那么A=[[a,b],[0,1]],然后A^x=[[a^x,b*(...
2019-08-01 22:29:12 322
原创 2019牛客多校赛 第三场 D Big Interger(数论 + 组合计数)
大致题意:一个数列为1,11,111,1111,......令A(n)表示这个序列的第n小的数字。告诉你p,n和m,让你求有多少对(i,j)可以使得,其中1<=i<=n,1<=j<=m,p为质数。根据这个数列的形式,数列的第n项等于。那么我们相当于找到所有的,使得。我们整理一下这个式子,可以得到:。当时,,根据欧拉定理有。但是这里不一定是...
2019-07-26 21:59:40 442 3
原创 2019HDU多校赛 第一场 K HDU 6588 Function(莫比乌斯反演)
大致题意:计算和式 显然是一个道反演的题目,话不多说直接开始推导吧。首先把式子拆成两个求和部分: 然后你会发现前后两个式子都是的形式,于是我们考虑这个式子怎么计算。...
2019-07-26 10:25:33 533
原创 2019HDU多校赛第二场 H HDU 6598 Harmonious Army(最小割 + 构图)
大致题意:你要把n个东西划分为A和C两个部分,然后有m对关系。对于第i个关系,表示两个人有关联,如果两个人同时分到A里面,那么权值增加a;如果同时分到C那么权值增加c;如果一个在C一个在A,那么权值增加a/4+c/3。这道题,网络流看多了你就知道怎么做了,建图求最小割即可。具体来说,要把这些东西分成两个部分,相当于在图中求最小割,这样点要么和源点在一个部分,要么和汇点在一个部分...
2019-07-24 17:45:12 1193 4
原创 CodeForces 1197E Culture Code(最短路/dp)
大致题意:给你n个俄罗斯套娃,告诉你每个套娃内外的半径。问你这里面有多少个集合,可以使得外层不能再套别的套娃而且里面剩余的空间最小。这题的话想到思路还是不难的,无非是套娃的嵌套关系。如果我们找到所有的嵌套关系,我们可以考虑建立一个有向带权图。对于任意的边<u,v,w>表示第u个套娃可以套第v个套娃而且套了的话中间缝隙为w。如此,我们只需要对于这个带权有向图求一下...
2019-07-23 13:06:44 539
原创 2019HDU多校赛 第一场 D HDU 6579 Operation(线性基 + 贪心)
大致题意:给你一个长度为n的序列。有两个操作,0表示询问在一个区间中取任意数字使得异或和最大,1表示在这个序列的最后加上一个数字x。强制在线。最显然的暴力方法就是对整个区间用数据结构维护区间的线性基,对于每个区间进行线性基的合并然后求出最大值。但是本题数据较大,不管是从时间上还是空间上都过不去。然后考虑分块的做法,分块虽然空间复杂度不成问题,但是在查询的时候,复杂度可以到,然后...
2019-07-22 20:51:45 302
原创 2019 CCPC江西省赛 C HDU 6569 Trap(容斥原理 + 组合计数)
大致题意:给你一些边长,问你这些边长可以构成几个不同的等腰梯形且梯形的四条边的gcd为1。首先,我们考虑如果没有这个gcd为1的限制,这题应该怎么做。由于总共只有两千条边,所以我们很容易想到至少用N^2的算法去做。显然,我们可以枚举梯形的腰和其中一个底,这里我们不妨枚举梯形长的那个底。知道这两个之后,我们就要考虑,如何快速的求出第三条边的选择方案。这里,我们约定梯形的腰长为c,...
2019-07-22 19:26:57 770
原创 2019牛客多校赛 第一场 H题 XOR (线性基 + 组合计数)
大致题意:给你n个数字,然后让你求所有满足异或和为0的子集的大小之和。首先这个子集大小之和,显然可以转换为计算每个数字的出现次数之和。考虑到异或和为0的子集,相当于可以用集合中的一部分数字去表示另外一部分数字,所以很容易想到用线性基解决这个问题。对于这n个数字求线性基,假设线性基的个数为r(r<n),那么对于线性基外的n-r个数字,他们的任意组合都可以在线性基内的...
2019-07-19 16:14:53 907 2
原创 2019牛客多校赛 第一场 I题 Points Division (DP + 线段树)
大致题意:给你n个点,第i个点在的位置为(xi,yi),有两个属性值(ai,bi)。现在让你把这n个点划分为A和B两个部分,使得最后不存在i∈A和j∈B,使得xi>=xj且yi<=yj。然后对于所有的划分方法,找到并输出 首先那个划...
2019-07-19 12:59:40 952 26
原创 国防科技大学第二十二届“银河之光”计算机文化节ACM程序设计大赛 简要题解
补题地址:https://ac.nowcoder.com/acm/contest/878#questionA首先暴力搜索找到距离每个人最近的出口是哪个。然后,对每个出口建立优先队列,把每个人放到他应该走的出口的队列即可。B显然人的强壮程度没有意义。考虑最小费用流。每个出口按照时刻拆成多个点,表示哪个时刻出来。同一个出口第i时刻向i+1时刻连边,流量无穷费用1。每个人向每个出口...
2019-05-04 16:59:40 946 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人