自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liangzihao1的博客

博客内容为本人独创,若有相似,纯属意外。

  • 博客(737)
  • 收藏
  • 关注

原创 Codeforces Global Round 12 CF1450A-H 题解

月初打的比赛,今天才把坑填完了。。A.要不出现trygubtrygubtrygub的子序列,只需要给sss排序即符合条件了。代码:#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>const int maxn=1007;using namespace std;int T,n;char s[maxn];int main(){ scan

2020-12-26 14:44:06 235

原创 Codeforces Round #691 (Div. 1) CF1458A-F 题解(待更新)

第一次打div1,比较自闭。。A.因为gcd(x,y)=gcd(x,y−x)gcd(x,y)=gcd(x,y-x)gcd(x,y)=gcd(x,y−x)。那么gcd(a1+x,a2+x,a3+x....)=gcd(a1+x,a2−a1,a3−a1,....)gcd(a_1+x,a_2+x,a_3+x....)=gcd(a_1+x,a_2-a_1,a_3-a_1,....)gcd(a1​+x,a2​+x,a3​+x....)=gcd(a1​+x,a2​−a1​,a3​−a1​,....)所以只需要给a

2020-12-21 11:13:57 365

原创 Educational Codeforces Round 100 (Rated for Div. 2) CF1463A-F 题解

A.如果以777为一个周期,可以知道我们可以打999点伤害。所以要想完美过关,怪的生命值和一定是999的倍数。同时我们可以算出需要sum/9sum/9sum/9个周期才能解决,因此每一个怪的生命值都要大于等于sum/9sum/9sum/9。代码:#include <iostream>#include <cstdio>using namespace std;int a,b,c,T;int main(){ scanf("%d",&T); while (T

2020-12-18 10:16:31 561

原创 Codeforces Round #690 (Div. 3) CF1462A~F 题解

A.根据题目给的构造方式逆推出对应的下标。前(n+1)/2(n+1)/2(n+1)/2位为奇数位,后面的为偶数位,前后顺序相反。代码:#include <iostream>#include <cstdio>const int maxn=307;using namespace std;int n,T;int a[maxn],b[maxn];int main(){ scanf("%d",&T); while (T--) { scanf("%

2020-12-16 09:05:32 260

原创 Codeforces Round #689 (Div. 2) CF1461A-F 题解

A.显然可以构造出S=aaa...abcabc....S=aaa...abcabc....S=aaa...abcabc....,即前kkk个字符都为aaa,后面为abcabcabc的循环。代码:#include <iostream>#include <cstdio>using namespace std;int T,n,k;int main(){ scanf("%d",&T); while (T--) { scanf("%d%d",&n

2020-12-12 13:49:06 249

原创 CF1446D Frequency Problem

题目大意:给定一个长度为nnn的序列,要求一个子区间,使得出现次数最多的数不唯一,要求子区间的最大长度。Easy:n<=2e5,ai<=min(n,100)n<=2e5,a_i<=min(n,100)n<=2e5,ai​<=min(n,100)Hard:n<=2e5,ai<=nn<=2e5,a_i<=nn<=2e5,ai​<=n分析:首先有一个结论是,假设原区间出现次数最多的数为xxx,合法区间出现最多的数其中一个必然是xxx

2020-12-06 20:45:33 164

原创 Codeforces Round #688 (Div. 2) CF1453A-F 题解

A.答案就是在行和列中同时出现的数的个数。代码:#include <iostream>#include <cstdio>const int maxn=107;using namespace std;int n,m,T,x,ans;int a[maxn];int main(){ scanf("%d",&T); while (T--) { scanf("%d%d",&n,&m); for (int i=1;i<=10

2020-12-06 20:34:07 170

原创 Educational Codeforces Round 99 (Rated for Div. 2) CF1455A-G 题解

A.题目大意:设f(x)f(x)f(x)等于把xxx颠倒后的数,给定nnn,对于任意0<x<=n0<x<=n0<x<=n,求xf(f(x))\frac{x}{f(f(x))}f(f(x))x​有多少个不同的值。n<=10100,T<=100n<=10^{100},T<=100n<=10100,T<=100分析:答案就是nnn的位数,十分显然。代码:#include <iostream>#include <

2020-12-01 23:48:54 227

原创 CF1452G Game On Tree

题目大意:有一棵nnn个节点的树,其中Alice的船在xxx节点,Bob有很多船,分别在点y1,y2,...,yny_1,y_2,...,y_ny1​,y2​,...,yn​,每个回合每个船都可以走向相邻的节点或者不走,可以多个船在同一个点。求x=1,2,...,nx=1,2,...,nx=1,2,...,n时,Alice在不会与Bob的船在同一点的情况下游戏最多可以进行多少个回合。分析:假设经过了kkk个回合,Bob的船都不能到点ppp,那么从ppp向周围走k−1k-1k−1步的点都可以至少进行k

2020-12-01 22:11:45 214

原创 CF1430G Yet Another DAG Problem 状压dp

题目大意:给你一个nnn个点,mmm条边的DAG,每条边(x,y)(x,y)(x,y)有权值wiw_iwi​,要求给每个点赋值,使得对于每条边∑i=1m(ax−ay)∗wi\sum_{i=1}^{m} (a_x-a_y)*w_i∑i=1m​(ax​−ay​)∗wi​最小,且ax−ay>0a_x-a_y>0ax​−ay​>0。n<=18n<=18n<=18分析:考虑把图反向,然后从111开始填,那么111可以填的位置就是没有入度的位置。那么考虑我们当前要填的数字为

2020-11-28 00:00:17 185

原创 CF1452E Two Editorials 差分

题目大意:给定nnn与mmm个区间[li,ri][l_i,r_i][li​,ri​],满足1<=li<=ri<=n1<=l_i<=r_i<=n1<=li​<=ri​<=n。给定kkk,你可以选择两个长度为kkk的区间,[a,b][a,b][a,b]与[c,d][c,d][c,d]。对于每个区间[li,ri][l_i,r_i][li​,ri​],它的贡献是与[a,b][a,b][a,b]和[c,d][c,d][c,d]交集的大小的最大值。输出所有区间贡

2020-11-25 20:32:24 107

原创 Codeforces Round #686 (Div. 3) CF1454A~F 题解

A.题目大意:输出一个长度为nnn的错排。n<=100,T<=100n<=100,T<=100n<=100,T<=100分析:直接令a[i]=i+1,a[n]=1a[i]=i+1,a[n]=1a[i]=i+1,a[n]=1输出即可。#include <iostream>#include <cstdio>using namespace std;int main(){ int n,T; scanf("%d",&T);

2020-11-25 20:18:20 197

原创 CF1425F Divide Powers 构造乱搞

题目大意:给你一个由2n2^n2n组成的集合,2i2^i2i有cnticnt_icnti​个。当iii不为0时,我们可以使用一次操作把2i2^i2i变成两个2i−12^{i-1}2i−1。有2类操作,修改cnticnt_icnti​,或者询问至少要多少次操作后有不少于kkk个元素小于等于2x2^x2x。n<=30,q<=2e5n<=30,q<=2e5n<=30,q<=2e5分析:对于小于等于2x2^x2x的元素,进行一次操作可以增加一个元素;而对于大于2x2^

2020-11-24 13:00:04 106

原创 CF739B Alyona and a tree 树上差分+倍增

题目描述:Alyona有一棵有 nnn 个节点的树。这棵树的根节点是 111。在每个节点里,Alyona写了一个正整数,在节点 iii 她写了正整数 aia_iai​。另外,她在这棵树上的每条边上写了一个正整数(不同边上可能有不同的数)。让我们定义 dist(v,u)dist(v,u)dist(v,u) 作为从 vvv 到 uuu 的简单路径上的边权和。当且仅当 uuu 在 vvv 的子树中并且 dist(v,u)≤audist(v,u)≤a_udist(v,u)≤au​,顶点 vvv 控制顶点 u(

2020-08-28 12:00:29 193

原创 CF837D Round Subset dp

题目描述我们把一个数的 roundness 值定义为它末尾 000 的个数。给你一个长度为 nnn 的数列,要求你从中选出 kkk 个数,使得这些选出的数的积的 roundness 值最大。n≤200,k≤n,ai≤1018n≤200,k≤n,a_i≤10^{18}n≤200,k≤n,ai​≤1018分析:显然考虑每个数222的质因数与555质因数个数。我们可以设f[i][j][k]f[i][j][k]f[i][j][k]表示前iii个数,选了jjj个数,555因子个数为kkk时,222因子的最大

2020-08-28 11:15:46 126

原创 CF868F Yet Another Minimization Problem dp+分治

题目大意:给定nnn个数,把他分成kkk段,每段的权值是相同数的对数(指有多少对相同的数),求最小权值和。n<=105,k<=20n<=10^5,k<=20n<=105,k<=20分析:显然对于前面的两个状态j,kj,kj,k且j<kj<kj<k,如果在某个状态kkk比jjj优时,那么这个状态后kkk一定也比jjj优。因为往jjj后面加一个数权值的增量一定大于等于kkk的增量。也就是满足决策单调性。很显然可以想到单调队列,但区间权值很难维护,这

2020-08-26 11:17:10 168

原创 洛谷 P3846 [TJOI2007] 可爱的质数 bsgs

题目网址:https://www.luogu.com.cn/problem/P3846分析:一道bsgs的模板题。代码:#include <iostream>#include <cstdio>#include <cmath>#define LL long longconst int c=1e6+7; using namespace std;int p,b,n;struct node{ int x,y;}hash[c];void

2020-08-19 09:09:12 116

原创 洛谷 P3324 [SDOI2015]星际战争 二分答案+网络流

题目描述3333年,在银河系的某星球上,X军团和Y军团正在激烈地作战。在战斗的某一阶段,Y军团一共派遣了N个巨型机器人进攻X军团的阵地,其中第i个巨型机器人的装甲值为Ai。当一个巨型机器人的装甲值减少到0或者以下时,这个巨型机器人就被摧毁了。X军团有M个激光武器,其中第i个激光武器每秒可以削减一个巨型机器人Bi的装甲值。激光武器的攻击是连续的。这种激光武器非常奇怪,一个激光武器只能攻击一些特定的敌人。Y军团看到自己的巨型机器人被X军团一个一个消灭,他们急需下达更多的指令。为了这个目标,Y军团需要知

2020-08-17 09:48:06 193

原创 洛谷 P3747 [六省联考2017]相逢是问候 线段树+扩展欧拉定理

题目:https://www.luogu.org/problemnew/show/P3747分析:幂次可以考虑扩展欧拉定理。对于一个模数ppp,使得ϕ(ϕ(...ϕ(p)))=1\phi(\phi(...\phi(p)))=1ϕ(ϕ(...ϕ(p)))=1,最少ϕ\phiϕ的个数limlimlim。每次的ccc是一样的,显然当一个位置修改次数大于limlimlim。这个位置就不变了。维...

2019-04-23 20:29:42 186

原创 洛谷 P3750 [六省联考2017]分手是祝愿 dp

题目:https://www.luogu.org/problemnew/show/P3750分析:显然按一个开关不能使得比他大的数熄灭。所以最优方案一定是每次选出最大的数按掉。可以用枚举倍数,然后用vector存某个数的约数,求出需要按的开关数cntcntcnt。设f[i]f[i]f[i]表示还有iii个开关需要按到还有i−1i-1i−1个开关需要按的情况期望需要多少步,显然f[i]...

2019-04-23 10:56:16 313

原创 bzoj 3328: PYXFIB 单位根反演

DescriptionInput第一行一个正整数,表示数据组数据 ,接下来T行每行三个正整数N,K,POutputT行,每行输出一个整数,表示结果Sample Input11 2 3Sample Output1HINTSourceBy Wcmg分析:组合数很大,考虑化掉组合数。化简上诉式子得到=∑i=0n[i mod k==0](ni)∗F...

2019-04-23 10:25:57 216

原创 洛谷 P3746 [六省联考2017]组合数问题 矩阵乘法

题目:https://www.luogu.org/problemnew/show/P3746分析:设f[i][j]f[i][j]f[i][j]表示在m mod k=jm\ mod\ k=jm mod k=j的(im)\binom{i}{m}(mi​)的和。转移显然,f[i][j]=f[i−1][j]+f[i−1][(j+k−1) mod&n...

2019-04-22 10:30:26 218

原创 洛谷 P3749 [六省联考2017]寿司餐厅 最小割

题目:https://www.luogu.org/problemnew/show/P3749分析:显然选择了一个区间[l,r][l,r][l,r],那么一定要选他的子区间。因为区间的价值有正负,所以考虑最大权闭合子图。即SSS向每个权值为正区间[l,r][l,r][l,r]连边,[l,r][l,r][l,r]向负区间连边,每个区间[l,r][l,r][l,r]向[l+1,r][l+1,r]...

2019-04-22 10:26:37 145

原创 洛谷 P5284 [十二省联考2019]字符串问题 后缀数组+主席树优化加边

题目:https://www.luogu.org/problemnew/show/P5284分析:考虑怎样构造一个合法串。我们从每一个AAA类串向他支配的BBB类串连边,BBB类串向以他为前缀的AAA类串连边,形成一个有向图。每一个AAA类串权值设为他的lenlenlen,BBB类串设为0。那么一条路径的权值和就是某个合法串的长度。显然相当于求图最长链,存在环则解无限大,不然可以拓扑排序求...

2019-04-18 18:56:29 182

原创 jzoj 5062.【GDOI2017第二轮模拟day1】航海舰队 fft

DescriptionByteasar 组建了一支舰队!他们现在正在海洋上航行着。海洋可以抽象成一张n×m 的网格图,其中有些位置是“.”,表示这一格是海水,可以通过;有些位置是“#”,表示这一格是礁石,不可以通过;有些位置是“o”,表示这一格目前有一艘舰,且舰离开这一格之后,这一格将变为“.”。这些“o” 表示Byteasar 的舰队,他们每天可以往上下左右中的一个方向移动一格,但不能有任...

2019-04-17 10:40:38 260

原创 洛谷 P5290 [十二省联考2019]春节十二响 堆+启发式合并

题目:https://www.luogu.org/problemnew/show/P5290分析:考虑一条链且根不为链端的情况。一定是根左儿子的一个数和右儿子的一个数组成一个集合。因为显然两个节点都在一侧显然不行,只选一个太亏。那么就是左边最大匹配右边最大,左边第二匹配右边第二……拓展到任意子树,我们可以合并两个儿子的方案。显然不能选两个集合都在一边(一定会有冲突,不然这两个集合一定...

2019-04-16 20:36:52 135

原创 洛谷 P5283 [十二省联考2019]异或粽子 字典树+堆

题目大意:https://www.luogu.org/problemnew/show/P5283分析:考虑对数列跑前缀异或和,然后相当于取两个数,把前kkk大的加起来。可以像超级钢琴那道题一样,先把每个位置iii结尾的序列,找到一个j&lt;ij&lt;ij<i且ai xor aja_i\ xor\ a_jai​ xor aj​...

2019-04-16 18:39:51 174

原创 洛谷 P3308 [SDOI2014]LIS 最小割

题目描述给定序列A,序列中的每一项Ai有删除代价Bi和附加属性Ci。请删除若干项,使得A的最长上升子序列长度减少至少1,且付出的代价之和最小,并输出方案。 如果有多种方案,请输出将删去项的附加属性排序之后,字典序最小的一种。输入输出格式输入格式:输入包含多组数据。输入的第一行包含整数T,表示数据组数。接下来4*T行描述每组数据。每组数据的第一行包含一个整数N,表示A的项数。接下来三行...

2019-04-16 11:06:59 139

原创 洛谷 P5293 [HNOI2019]白兔之舞 单位根反演+fft

题目:https://www.luogu.org/problemnew/show/P5293分析:设f[t]f[t]f[t]为余数为ttt的答案。考虑走iii步的贡献,f[t]=∑i=0L[i mod k==t](Li)W(x,y)if[t]=\sum_{i=0}^{L}[i\ mod\ k==t]\binom{L}{i}W^i_{(x,y)}f[t]=i=0∑L​[...

2019-04-16 08:38:30 182

原创 洛谷 P5280 [ZJOI2019]线段树 dp+线段树

题目描述九条可怜是一个喜欢数据结构的女孩子,在常见的数据结构中,可怜最喜欢的就是线段树。线段树的核心是懒标记,下面是一个带懒标记的线段树的伪代码,其中 tagtagtag 数组为懒标记:其中函数 Lson⁡(Node)\operatorname{Lson}(Node)Lson(Node) 表示 NodeNodeNode 的左儿子,Rson⁡(Node)\operatorname{Rson}(...

2019-04-16 08:12:45 189

原创 jzoj 5061.【GDOI2017第二轮模拟day1】最长路径 dp

Description在Byteland 一共有n 个城市,编号依次为1 到n,它们之间计划修建n(n-1)/2条单向道路,对于任意两个不同的点i 和j,在它们之间有且仅有一条单向道路,方向要么是i 到j,要么是j 到i。换句话说,这是一个n 个点的竞赛图。Byteasar 居住在1 号城市,他希望从1 号城市出发,沿着单向道路不重复地访问一些城市,使得访问的城市数尽可能多。请写一个程序,帮...

2019-04-15 18:28:36 261

原创 洛谷 P3233 [HNOI2014]世界树 虚树+dp

题目:https://www.luogu.org/problemnew/show/P3233分析:先把虚树建出来,顺便把根节点插入到虚树中。然后进行dp求出虚树上每个节点到最近关键点的编号。可以两次bfs求,因为有可能是他的兄弟最近。我们先求儿子对父亲的影响,再让父亲更新儿子,这样就可以求出来了。考虑怎么求答案。对于每一个虚树节点维护一个sum[x]sum[x]sum[x],先把他赋值成...

2019-04-11 11:49:27 165

原创 洛谷 P4218 [CTSC2010]珠宝商 后缀自动机+点分治

题目:https://www.luogu.org/problemnew/show/P4218分析:一种显然的暴力就是枚举一个起点,在这个点进行dfs,然后在后缀自动机上跟着跳。跳到的点的right集大小即为这条路径的答案。这样做的复杂度是O(n2)O(n^2)O(n2)。树上的路径问题可以考虑点分治。显然一条路径可以被拆成两段,xxx到根和根到yyy。这条路径的答案就是所有xxx到根路径...

2019-04-08 14:58:46 185

原创 洛谷 P4324 [JSOI2016]扭动的回文串 manacher+字符串hash

题目描述JYY有两个长度均为 NNN 的字符串 AAA 和 BBB。一个扭动字符串 S(i,j,k)S(i,j,k)S(i,j,k) 由 AAA 中的第 iii 个字符到第 jjj 个字符组成的子串与 BBB 中的第 jjj 个字符到第 kkk 个字符组成的子串拼接而成。比如,若 A=’XYZ’A=’XYZ’A=’XYZ’,B=’UVW’B=’UVW’B=’UVW’,则扭动字符串 S(1,2...

2019-04-04 10:28:23 210

原创 洛谷 P4323 [JSOI2016]独特的树叶 树hash

题目描述JYY 有两棵树 AAA 和 BBB:树 AAA 有 NNN 个点,编号为 111 到 NNN;树 BBB 有 N+1N+1N+1 个节点,编号为 111 到 N+1N+1N+1。JYY 知道树 BBB 恰好是由树 AAA 加上一个叶节点,然后将节点的编号打乱后得到的。他想知道,这个多余的叶子到底是树 BBB 中的哪一个叶节点呢?输入输出格式输入格式:输入一行包含一个正整数 NNN...

2019-04-04 07:57:06 192

原创 洛谷 P5043 【模板】树同构([BJOI2015]树的同构) 树hash

题目描述树是一种很常见的数据结构。我们把 NNN 个点,N−1N-1N−1 条边的连通无向图称为树。若将某个点作为根,从根开始遍历,则其它的点都有一个前驱,这个树就成为有根树。对于两个树 T1T1T1 和 T2T2T2,如果能够把树 T1T1T1 的所有点重新标号,使得树 T1T1T1 和树 T2T2T2 完全相同,那么这两个树是同构的。也就是说,它们具有相同的形态。现在,给你 MMM ...

2019-04-03 12:06:15 347

原创 洛谷 P3320 [SDOI2015]寻宝游戏 set

题目描述小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N-1条道路,并且任何两个村庄之间有且仅有一条路径可达。游戏开始时,玩家可以任意选择一个村庄,瞬间转移到这个村庄,然后可以任意在地图的道路上行走,若走到某个村庄中有宝物,则视为找到该村庄内的宝物,直到找到所有宝物并返回到最初转移到的村庄为止。小B希望评测一下这个游戏的难度,因此他需要知道玩家找到所有宝物需要行走的最短路程。但是这个...

2019-04-03 09:25:25 164

原创 洛谷 P4322 [JSOI2016]最佳团体 分数规划+dp

题目大意:给定一棵树,nnn个节点。每个节点有aia_iai​和bib_ibi​两个值。要求选出若干节点,保证某个节点被选,他的父亲一定被选。使∑i=1kai∑i=1kbi\frac{\sum_{i=1}^{k}a_i}{\sum_{i=1}^{k}b_i}∑i=1k​bi​∑i=1k​ai​​最大化。n≤1000n≤1000n≤1000分析:考虑分数规划,二分一个midmidmid,...

2019-03-29 16:17:27 161

原创 jzoj 6086. 【GDOI2019模拟2019.3.26】动态半平面交 主席树+set

DescriptionInputOutputSample Input0 54 6 3 2 71 21 33 43 521 23 0Sample Output843Data ConstraintHint注意:输入格式第5行“正整数”改为“非负整数”分析:考虑序列上要怎么做。因为要取模,所以不能有欧几里得求lcm,只能通过因数分解形式求。显然不用质数间...

2019-03-29 16:09:31 230

原创 洛谷 P3352 [ZJOI2016]线段树 dp

题目描述小Yuuka遇到了一个题目:有一个序列a_1,a_2,…,a_n,q次操作,每次把一个区间内的数改成区间内的最大值,问最后每个数是多少。小Yuuka很快地就使用了线段树解决了这个问题。于是充满智慧的小Yuuka想,如果操作是随机的,即在这q次操作中每次等概率随机地选择一个区间l,r,然后将这个区间内的数改成区间内最大值(注意这样的区间共有(n(n+1))/2(n(n+1))/2(n(n...

2019-03-28 14:39:37 312

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除