codeforces
Position_yjl
这个作者很懒,什么都没留下…
展开
-
KMP自动机详解(CF808G)
啥??kmp还有自动机??没错,我们经常听到ac自动机,后缀自动机之类的,kmp自动机我还真是第一次见。。。前置知识:https://oi-wiki.org/string/kmp/(kmp都不会还学啥kmp自动机)我接触到这个知识点是由于我碰见了这么一个题目:Codeforces 808Ghttps://codeforces.com/contest/808/problem/G中文题意在这:https://www.luogu.com.cn/.原创 2021-07-13 20:00:25 · 1737 阅读 · 0 评论 -
CF359D Pair of Numbers
很容易发现满足题目要求的区间长度是符合二分性质的,即如果长度为len的[l, r]可行,那么一定至少存在一个长度为len-1的子区间[l+1, r]或[l, r-1]可行所以就对长度进行二分答案接下来的问题是如何判断一个区间是否符合要求首先发现如果存在一个 aj 可以被 a[l,r] 中的所有元素整除,那么它一定是这个区间的最小值,并且它还是这个区间的所有元素的gcd所以问题就转化成了区间查询最小值和gcd,如果一个区间的最小值和区间gcd相等,那么这个区间就符合条件...原创 2021-05-05 12:01:06 · 129 阅读 · 0 评论 -
CF1153D Serval and Rooted Tree
这也能dp??不dp也没法做了设sz[x]是x子树中叶子节点的个数,f[x]是把1 ~ sz[x]这个排列放入到x子树的叶子节点上,x节点能取到的最大值当x为叶子时,当x不是叶子时,,f[x]就得分别考虑取最大值和取最小值的情况1)当x取最大值时,考虑某个儿子v对x的转移,对于一个儿子v,它要占掉sz[v]-f[v]个值,也就是说向其中放入sz[v]个数,从小到大后sz[v]-f[v]个数是x取不到的那么这时候就发现f[x]的取值只与某个儿子v有关,也就是把1~sz...原创 2021-04-29 00:29:38 · 129 阅读 · 1 评论 -
CF1081E Missing Numbers
初中数学首先记p1^2,p2^2...pn^2,为构造完的a数组的前缀和(如果存在的话),假定已经处理好a数组的前 i - 2 项,现在正在处理第 i - 1 项和第 i 项(其中i为偶数)然后得出 ai = pi ^ 2 - (pi-1) ^ 2,再用初中学过的因式分解处理一下,就得到ai = (pi + pi-1) * (pi - pi-1)注意到 ai <= 1e5 ,所以可以直接枚举ai的因数得到 (pi + pi-1) 和 (pi -pi-1),再解一次二元一...原创 2021-04-26 21:02:10 · 115 阅读 · 1 评论 -
CF1217C The Number Of Good Substrings
这题的关键点是字符串的长度不超过2e5所以对于一个“好”的字符串,抛出去它的前导0,它的长度不会超过17 (log(2e5))然后直接考虑枚举左端点,统计右端点有多少个符合题意的在这之前要先预处理 nxt 数组,nxt[i] 表示在 i ~ n 中从左往右数第一次出现‘1’的位置这样对于一个左端点 i ,就令j = nxt[i],向右暴力枚举并计算当前字符串的数值判断即可,一旦数值超过2e5就break#include<bits/stdc++.h>...原创 2021-04-26 14:04:32 · 82 阅读 · 0 评论 -
CF1503B 3-Coloring
首先很容易看出来如果对于一个未填颜色的格子,它的上下左右任意两个点的颜色不一样,那么必输就是类似以上这种情况,c1,c2为两个不同的颜色,?是未填充的颜色所以填充颜色的时候一定要避免出现这种情况首先在(1,1)处填充第一个格子,设alice选择的颜色为d,那么记c1,c2是不等于d的两个颜色,c3=d,然后在(1,1)处填上c1那么怎么样才能避免上述的情况呢,这时候就联想到了棋盘格(以3*3为例)最开始我们才(1,1)处填上了c1,那么在接下来的操作中,如果可以选..原创 2021-04-04 14:12:38 · 211 阅读 · 0 评论 -
CF1185G1 Playlist for Polycarp (easy version)
状压dp康复训练 AFO太久了连状压都忘了一开始我想的状态是选到了第i个曲子,之前已经选了a1, a2, a3个类型分别为1, 2, 3的曲子的个数 ,所用时间为t但后来通过第二个样例发现这么做与遍历曲子的顺序有关,也就是说打乱输入给的曲子的顺序答案会完全不一样然后我就不会了之后看了题解才恍然大悟,尼玛这不就是旅行商问题(TSP)吗设i为当前选了那些曲子的状态,j是放在最后的曲子的类型,直接转移就好了初始化的时候令f[0][0]=1,一个曲子都不选的时候j...原创 2021-03-25 10:03:25 · 114 阅读 · 0 评论 -
CF1416B Make Them Equal
首先观察到每次操作不会改变整个数组的和 sum,所以最终整个数组都会变成平均数因此如果sum不是n的倍数 则无解由于没观察到这个点导致我被卡的死死的其次就是当选择(1, i, x)这个三元组的时候,可以对任意的 x>=a[1],a[1]-=x,a[i]+=x, 这就使每次加减的数不受是"某个除1以外的数的倍数"的限制所以接下来的想法是把a[2]~a[n]都加到a[1]上,然后再由a[1]分配到这些位置上由于a[i]只能减去i的倍数的数所以可分为两种情况1.a[i]是i的倍数原创 2021-03-19 14:59:18 · 162 阅读 · 0 评论 -
CF1500A Going Home
啊啊啊 明明注意到ai<=2.5e6这个条件可现场就是不会处理 然后挂了结束后俩小时突然反应过来 ~~感觉自己好傻~~-----------------------------------------------------------分割线-----------------------------------------------因为1<=ai<=2.5e6 所以任意两个数的和在1~5e6这个范围区间内,这是这道题的突破口然后就可以开一个set当z枚举到i时,.原创 2021-03-19 14:57:31 · 413 阅读 · 0 评论 -
CF1499D The Number of Pairs
首先由裴蜀定理可得 对于方程 lcm(a,b)*c+gcd(a,b)*(-d)=x , x必定是gcd(gcd(a,b),lcm(a,b))的倍数显然gcd(gcd(a,b),lcm(a,b))=gcd(a,b) 之后可以在根号x的时间内枚举x的约数作为gcd(a,b)由于c,d,x,都是给定的,那么lcm(a,b)也能直接求出来那么问题就转化成了给定lcm(a,b),gcd(a,b),求有多少对a,b注意到t<=1e4,c,d,x<=1e7,之前枚举约数就已经用了根号x的时间.原创 2021-03-19 14:51:54 · 614 阅读 · 1 评论