Codeforces
Hany01
这个作者很懒,什么都没留下…
展开
-
【CF558E】A Simple Task(线段树)
Description给定一个长度为nn的小写字母序列,有mm个操作,每次将第lil_i个字母到第rir_i个字母排成升序或倒序,求最后得到的序列。Solution法一由于只有26种元素,考虑用线段树维护每个节点所包含的每个字母的个数以及该区间内是降序还是升序或者乱序,直接维护即可法二考虑用set维护,一开始每一个字母都是一个独立的集合,每次操作将两端的集合暴力拆开,将中间的字母集合合并时间复杂度O原创 2017-10-06 20:39:35 · 531 阅读 · 0 评论 -
【CF 817F】MEX Queries(线段树)
Description维护一个长度1018101810^{18}的010101序列,要求兹瓷区间赋值、区间取反、查询第一个000的位置。Solution离散化后用线段树维护一个取反标记、一个赋值标记即可。Code/************************************************ * Au: Hany01 * Date: Aug...原创 2018-08-03 16:32:41 · 311 阅读 · 0 评论 -
【BZOJ3625】【CF438E】【多项式开方模板题】小朋友和二叉树
Description我们的小朋友很喜欢计算机科学,而且尤其喜欢二叉树。 考虑一个含有n个互异正整数的序列c[1],c[2],…,c[n]。如果一棵带点权的有根二叉树满足其所有顶点的权值都在集合{c[1],c[2],…,c[n]}中,我们的小朋友就会将其称作神犇的。并且他认为,一棵带点权的树的权值,是其所有顶点权值的总和。 给出一个整数m,你能对于任意的s(1<=s<=m)计算出权...原创 2018-07-27 23:44:04 · 309 阅读 · 0 评论 -
【CF 981F】Round Marriage(二分)
Descriptionhttp://codeforces.com/contest/981/problem/FSolution首先分别将目标序列-L、+L的结果加到序列前面和后面。考虑二分答案w,那么每个点可匹配的范围为a_i - w \dots a_i + w,对应了目标序列上的一段,而我们需要在每个点的范围内取一个点且这些点构成了公差为1的等差数列。我们将第i个点的范围L...原创 2018-08-02 17:14:29 · 305 阅读 · 0 评论 -
【CF 833B】The Bakery(DP,线段树)
Description将一个长度为n的序列分为k段使得总价值最大一段区间的价值表示为区间内不同数字的个数Solution容易得到一个简单的DP,dpi,jdpi,jdp_{i,j}表示到了第iii位、用了jjj段的最大价值,那么有dpi,j=max(dpk,j−1+value(k+1,i))dpi,j=max(dpk,j−1+value(k+1,i))dp_{i,j}=\m...原创 2018-08-02 20:54:10 · 294 阅读 · 0 评论 -
【BZOJ5311】【CF321E】贞鱼/Ciel and Gondolas(DP,凸优化)
Description众所周知,贞鱼是一种高智商水生动物。不过他们到了陆地上智商会减半。 这不?他们遇到了大麻烦! n只贞鱼到陆地上乘车,现在有k辆汽车可以租用。 由于贞鱼们并不能在陆地上自由行走,一辆车只能载一段连续的贞鱼。 贞鱼们互相有着深深的怨念,每一对贞鱼之间有怨气值。 第i只贞鱼与第j只贞鱼的怨气值记为Yij,且Yij=Yji,Yii=0。 每辆车载重不限,但是每一对在同...原创 2018-08-11 23:09:21 · 469 阅读 · 0 评论 -
【CF1012E】【LOJ2818】Cycle Sort(并查集)
Description给定一个⻓为nnn 的数列 ,你可以多次进行如下操作: 选定kkk 个不同的下标i1,i2…iki1,i2…iki_1,i_2\dots i_k,然后将i1i1i_1 移动到下标i2i2i_2 处,将i2i2i_2 移动到下标i3i3i_3 处, …… 你的任务是用操作次数最少的方法将整个数列排序成不降的。 注意,所有操作中选定下标的个数总和不得超过sss。如果无...原创 2018-08-26 21:46:20 · 460 阅读 · 0 评论 -
【CF908H】New Year and Boolean Bridges(容斥,状压DP)
Description有一个n个点的有向图。 定义i能到达j时f(i,j)=1,否则f(i,j)=0。 对于每个点对(i,j),给定以下三个条件中的某一个为真: (1) f(i,j) and f(j,i)=1; (2) f(i,j) or f(j,i)=1; (3) f(i,j) xor f(j,i)=1。 求满足条件时的最小边数。 1<=n<=47。So...原创 2018-08-30 21:57:23 · 402 阅读 · 0 评论 -
【CF843D】Dynamic Shortest Path(Dijkstra)
Description一张带权有向图,qqq次操作: 1. vvv 询问111到vvv的最短路 2. c&nbsp;l1&nbsp;l2…lcc&nbsp;l1&nbsp;l2…lcc\ l_1\ l_2 \dots l_c 将边lilil_i 的权值增加111Solution在权值较小时,Dijkstra是可以做到线性的。 我们开值域个队列,从小到大处理,将当前松弛得...原创 2018-08-23 20:52:49 · 495 阅读 · 0 评论 -
【CF908G】New Year and Original Order(数位DP)
Description设S(n)S(n)S(n)表示将nnn的十进制各位从小到大排序后的值,求∑i=1nS(i)∑i=1nS(i)\sum\limits _{i=1}^n S(i)。Solution设fi,j,k,limitfi,j,k,limitf_{i,j,k,limit}表示前iii位、有kkk位的值大于jjj、是否达到上界的方案数,转移很显然。 最后计算答案的时候,对...原创 2018-08-28 21:44:56 · 451 阅读 · 0 评论 -
【Codeforces 662C】Binary Table(FWT)
Description有一个 nnn 行 mmm 列的表格,每个元素都是 000或111 ,每次操作可以选择一行或一列,把 000或111 翻转,即把 000 换为 111 ,把 111 换为 000 。请问经过若干次操作后,表格中最少有多少个 111 。 n≤20,m≤105n≤20,m≤105n\le 20,m\le 10^5Solution考虑到nnn很小,如果我们确定了哪...原创 2018-07-06 19:47:03 · 285 阅读 · 0 评论 -
【Codeforces 932G】Palindrome Partition(回文树,DP)
Description给定一个串,把串分为偶数段 假设分为了 s1,s2,s3....sks1,s2,s3....sks_1,s_2,s_3....s_k 求:满足 s1=sk,s2=sk−1......s1=sk,s2=sk−1......s_1=s_k,s_2=s_{k-1}...... 的方案数Solution神仙题哇首先将给定的串转换成下面这种形式: s1sn...原创 2018-06-24 21:13:33 · 391 阅读 · 0 评论 -
【Codeforces 245H】Queries for Number of Palindromes(回文树)
Description给定一个长度不大于5e35e35e3的串sss,每次询问sl,rsl,rs_{l,r}有多少个子串是回文串。Solution发现串比较短,先预处理出所有的答案,直接回答即可。Code/************************************************ * Au: Hany01 * Date: Jun 22n...原创 2018-06-22 21:59:51 · 1080 阅读 · 0 评论 -
CF 858F Wizard's Tour (DFS)
Description给定一个图,你想在这张图上进行若干次旅游,每次旅游可以任选一个点 x 作为起点,再走到一个与 x 直接有边相连的点 y,再走到一个与 y 直接有边相连的点 z 并结束本次旅游,不能经过任意一条边超过一次。求最多的旅游次数。Solution首先注意图不一定是连通的,对于每一个边的数量为mim_i的连通块,可以选旅游的数量一定是⌊mi/2⌋\lfloor m_i/2\rfloor,原创 2017-10-09 11:12:26 · 668 阅读 · 0 评论 -
【CF438D】 The Child and Sequence(线段树取模)
Description给定一个长度为n的序列,支持区间取模、单点更新、区间求和三个操作Solution单点更新,区间求和显然可以用线段树直接肝,关键在于区间取模。 考虑线段树中除了存该区间的和,同时维护该区间的最大值,当模数大于最大值时,就不需要模了,否则进行单点取模。 注意,这里虽然是单点取模,但是不会TLE,因为对于每次取模操作,如果模数小于该数,则取模有效,该数最大只会变成(n+1)/2−原创 2017-10-01 21:16:54 · 545 阅读 · 0 评论 -
CF Round #439 (Div 2)
CodeForces Round #439 Div 2 部分题解原创 2017-10-07 19:33:18 · 586 阅读 · 0 评论 -
CF 803 F Coprime Subsequences (容斥原理)
Description给定一个序列,求有多少个子串(可以不连续)满足所有数的gcdgcd为1Solution设ansians_i为gcdgcd为ii的子串个数,fif_i为数列中是ii的倍数的数,则gcdgcd为ii的倍数的子序列个数显然是2f(i)−1−12^{f(i)-1}-1,则: ansi=∑d=1⌊ni⌋μ(d)×(2f(id)−1)ans_i=\sum_{d=1}^{\lfloor \原创 2017-11-08 19:32:04 · 280 阅读 · 0 评论 -
Codeforces Round #446 (Div 2)
A. GreedDescription有nn罐可乐,你被告知每罐可乐的容量和已经装了多少可乐,问是否可以通过转移可乐使得最后只剩下两罐可乐。Solution选出容量最大的两罐可乐判断即可。Code传送门B. WrashDescription有nn个人,每个人可以杀死刚好在他前面的LiL_i个人,问最后有多少人活下来?Solution当然可以用线段树过。。然而其实O(n)O(n)从后往前扫一遍、每次更原创 2017-11-19 15:40:08 · 271 阅读 · 0 评论 -
Codeforces Round #447 (Div 2 Only) Hack+FST记
上一场涨了158点rating,隔了一天又有一场,本来又想涨,结果。。A. QAQDescription给定一个长度小于等于100100的串,计算有多少个子序列是“QAQ”。Solution数据规模小,可以直接O(n2)O(n^2)暴力求解。Code传送门B. Ralph And His Magic FieldDescription有一个n×mn\times m的方阵,每个格子中可以填写11或−1-原创 2017-11-23 18:10:27 · 532 阅读 · 0 评论 -
Codeforces Round #449 (Div 2)
A. Scarborough FairDescription给定一个字符串,每次修改给出li,ri,c1i,c2il_i,r_i,c1_i,c2_i,把lil_i到rir_i中所有的c1ic1_i改成c2ic2_iSolution直接XJB模拟即可Codeclick meB. Chtholly’s requestDescription求第1~k个位数为偶数的回文数的和Solution枚举1~k的每一原创 2017-12-03 09:29:18 · 293 阅读 · 0 评论 -
【CF 954 H】Path Counting(DP)
Descriptionclick meSolution求出fi,jfi,jf_{i,j}表示与第iii层的点距离为jjj的点的个数。直接记数即可。 记得开滚动。。Source/************************************************ * Hack me if you can * Au: Hany01 * Date: Mar...原创 2018-03-23 22:03:36 · 486 阅读 · 0 评论 -
【CF666E】Forensic Examination(广义后缀自动机,线段树合并)
Description给定一个串sss和若干个串titit_i,给定很多个询问l,r,pl,prl,r,pl,prl,r,pl,pr,表示询问spl,prspl,prs_{pl,pr}在tltlt_l到trtrt_r中的哪个串中出现次数最多,输出串的编号和次数。(如果有次数相同的输出编号小的)Solution对于t1…nt1…nt_{1\dots n}建出广义SAM。 把询问...原创 2018-05-13 18:34:39 · 597 阅读 · 0 评论 -
【CF446C】DZY Loves Fibonacci Numbers(线段树)
Description给定一个序列,资瓷区间加上一个斐波那契数列,区间求和。Solution有一个性质:fib[a+b]=fib[a−1]×fib[b]+fib[a]×fib[b+1]fib[a+b]=fib[a−1]×fib[b]+fib[a]×fib[b+1]fib[a+b]=fib[a-1]\times fib[b]+fib[a]\times fib[b+1]对于每次...原创 2018-08-24 16:42:10 · 223 阅读 · 0 评论