自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 codeforces 1295E

题目链接题意有一个排列p,需要先将其在中间分割开,分割成非空的两个部分,然后每个p[i]有一个权值a[i],意思是把p[i]从一个集合调整到另一个集合的代价是a[i],要求最后第一个集合里的所有数都比第二个集合里的数小。球最小花费数据范围∣p∣≤2e5,a[i]≤1e9|p|\le 2e5,a[i]\le 1e9∣p∣≤2e5,a[i]≤1e9解法考虑枚举最终第一个集合的大小,从0到n...

2020-01-30 19:52:30 161

原创 codeforces 1292C

题目链接题意有一棵n个点的树,要给树上的每一条边一个不同的权值,范围在0~n-1,要求S=∑1≤u<v≤nmex(u,v)S=\sum_{1\le u<v\le n} mex(u,v)S=∑1≤u<v≤n​mex(u,v)最大,输出SSS数据范围n≤2000n\le 2000n≤2000解法dp首先考虑把mex转化一下,可以变成对于一条路径,有权值0时答案加上所有...

2020-01-27 19:12:39 215

原创 codeforces 1292B

题目链接题意有一些标记点,其中每个点都是上一个点根据一定的规律变化而来的:xi=xi−1∗ax+bx,yi=yi−1∗ay+byx_i=x_{i-1}*ax+bx,y_i=y_{i-1}*ay+byxi​=xi−1​∗ax+bx,yi​=yi−1​∗ay+by给一个起点,每一个时刻可以想上下左右中的一个方向移动一步,给出总时间t,问最多可以经过几个标记点。数据范围2≤ax,ay≤100...

2020-01-22 09:47:41 148

原创 luogu P4308

添加链接描述题意有一个有向图,每个点有权值,有一个起点和一只蚂蚁,然后蚂蚁初始体力值为1,蚂蚁在每个点能够收获的权值就是当前体力值和当前点的权值的乘积.蚂蚁每移动一步,体力值就会乘上p问最大的权值是多少,保留一位小数数据范围点数<=100 边数<=1000 ,p<=1e-6,点权<=100解法首先由于求的是近似解,所以考虑一直求解直到所剩的体力值不再足以影响答...

2020-01-18 15:05:40 102

原创 一道线段树练习题

题意解法首先考虑一个O(n2)O(n^2)O(n2)的解法,我们先考虑求出不含任何星星的矩形个数,这个可以考虑单调栈做法,具体而言,对于每个右下角,它的左上角形成的图形是一个台阶的形状,然后就枚举每一行,然后首先计算每个位置出现星星的最晚时间,用单调栈维护每个位置向后第一个出现星星时间比当前时间晚的位置,转移的时候对一些区间加等差数列.然后考虑更快的做法:将单调栈换成线段树,然后维护同...

2020-01-17 20:22:22 107

原创 一道sam练习题

题意解法考虑答案实际上是每个子串的出现次数的平方和.这个可以通过手玩样例验证.考虑广义sam:先将所有字符串建成trie,然后再在trie上bfs,建出sam.考虑fail树每次插入一个新节点,会改变从这个节点开始到根的路径上的每个节点的right集合大小.所以考虑树剖维护这种操作,然后每一个单词的答案就是之前所有单词的答案,再计算自己的答案,然后注意这里一个线段树节点维护的有...

2020-01-17 17:52:55 254

原创 codeforces 848C

题目链接题意给定长度为n的数组, 定义数字X在[l,r]内的值为数字X在[l,r]内最后一次出现位置的下标减去第一次出现位置的下标给定m次询问, 每次询问有三个整数a,b,c,询问规则如下:当a=1时, 将数组内第b个元素更改为c当a=2时, 求区间[b,c]所有数字的值的和输入:第一行两个整数n,m第二行n个整数, 表示数组第3到3+m行, 每行三个整数, 表示每次询问输出:...

2020-01-15 17:50:49 280

原创 codeforces 17E

题目链接题意给定一个长度为n的小写字母串。问你有多少对相交的回文子 串(包含也算相交) 。 输入格式第一行是字符串长度n(1<=n<=2*10^6),第二行字符串 输出格式相交的回文子串个数%51123987Translated by liyifeng解法因为首先是回文串,所以考虑manacher,求出每个节点的f[i],然后考虑直接求相交的回文串对数量不是很好求,所以用...

2020-01-15 09:23:35 197

原创 一道数学题

题意有一群无聊的人,共n个,编号1-n,他们互相发信,共有m个发信请求,每个请求ai,bi表示标号为ai希望将1封信发给bi,每个人有且只有一次到达邮筒的机会,到达邮筒时,他们先接收邮箱中发给自己的信,然后他们会将自己要发的信放在邮筒里。每个人在(pi,qi)之间随机一个时间到达,这之中每个时间被选中的概率均等,此时间为0,100之间的实数。收到信的总数的期望是多少。数据范围n<=...

2020-01-14 19:24:01 388

原创 codeforces 700E

题目链接题意给一个字符串S,要求构造字符串序列s1,s2,...,sks_1,s_2,...,s_ks1​,s2​,...,sk​,满足任意s都是S的子串,且任意i∈[2,n],都有sis_isi​在si−1s_{i-1}si−1​里出现了至少2次,问k最大可以是多少。数据范围∣S∣≤200000|S|\le 200000∣S∣≤200000解法SAM+线段树合并考虑先对原串建出SA...

2020-01-14 19:05:56 165

原创 一道费用流练习题

题意在平面上有N条平行于Y轴的线段,每条线段都有一个权值,每次可以找出的Y轴上投影互不重叠的若干线段,求M次后,找出的线段最大权值和为多少。(每条线段只能贡献一次)数据范围对于30%的数据,N<=100;M<=2;1<=Y1<Y2<=501;对于50%的数据,P=1;对于100%的数据,N<=1000;M<=100;1<=Y1<Y2&...

2020-01-13 15:38:08 129

原创 luogu P2503

题目链接【数据规模】对于 40%40\%40% 的数据,保证有 m≤n≤10m \le n \le 10m≤n≤10,2≤m≤62 \le m \le 62≤m≤6对于 100%100\%100% 的数据,保证有 m≤n≤20m \le n \le 20m≤n≤20,2≤m≤62 \le m \le 62≤m≤6解法模拟退火首先考虑把均方差的式子划开,找出哪些项和分组的方案有关先不...

2020-01-13 15:23:59 136

原创 一道模拟退火练习题

题意为了打击敌人的飞行设施,我军正是准备利用飞行轨道中的一个高科技武器——全手动化定时炸弹来打击敌人。通过用望远镜仔细观察发现,发现敌人的飞机均匀地停放在一个圆形的飞机坪跑道上,为了方便计算距离,我军把飞机跑道均分成了L等份,并从某个等分点开始按顺时针方向从0开始依次标号到L-1,敌人的飞机也正好落在了这些等分点上。现在有N架飞机停在了跑道上,同时也有N个定时炸弹被我军地下组织人员事先放在了飞...

2020-01-13 14:20:24 435

原创 codeforces 1280D

题目链接题意给一棵树,树上每个点有两个权值,分别是wi,bi要求将树分成m个联通块,要求最多能有几个联通块内的∑wi>∑bi\sum wi \gt \sum bi∑wi>∑bi数据范围多组数据,组数<=100n,m<=3000∑n≤1e5\sum n\le 1e5∑n≤1e5解法树形背包首先有一个简单的想法:f[i][j][k]表示第i个点的子树,被分成...

2020-01-11 15:59:53 172

原创 bzoj 5026

题目链接题意给了一个长度为n的数组a,输出两个排列.如果a[i]!=0a[i]!=0a[i]!=0,则要求在输出的排列中,a[i]要比i的值更小.分别输出满足要求的排列中字典序最小和字典序最大的排列.考虑从a[i]向i连边,然后就可以用优先队列跑拓扑排序了然后有关第一问,其实是有O(n)O(n)O(n)解法的,考虑从1到n枚举每个数,然后将它之前的点都赋值,遇到已经赋值过的点就停下来....

2020-01-11 14:06:54 148

原创 bzoj 4681

题目链接题意有一张边有权的无向图,现在要从1号点前往n号点,然后可以交换k次边权,问最短路最短是多少数据范围n≤50,m≤150,k≤20n\le 50,m\le 150,k\le 20n≤50,m≤150,k≤20解法最短路:考虑现在在一个点上,需要多计算的状态有什么:首先我们需要知道走到这个点上交换了几次边权,然后还有现在边的状态.第一个很好记录,但是第二个并不好办.所以考虑加上...

2020-01-11 13:50:42 197

原创 codeforces 1111D

题目链接题意给一个长度为n(n≤2e5)n(n\le 2e5)n(n≤2e5)的字符串,字符集为大写字母和小写字母,有q次询问.每次指定两个位置,要求将所有和这两个位置的字母相同的字母都放在字符串的同一半,然后其它每种字母也要放在字符串的同一半.对每组询问,回答合法方案数mod 1e9+7mod~1e9+7mod 1e9+7.解法首先考虑对问题的转化,将哪些字母放在字符...

2020-01-10 19:39:47 118

原创 luogu P3286

题意方伯伯有一天去参加一个商场举办的游戏。商场派了一些工作人员排成一行。每个人面前有几堆石子。说来也巧,位置在 i 的人面前的第 j 堆的石子的数量,刚好是 i 写成 K 进制后的第 j 位。现在方伯伯要玩一个游戏,商场会给方伯伯两个整数 L,R。方伯伯要把位置在 [L, R] 中的每个人的石子都合并成一堆石子。每次操作,他可以选择一个人面前的两堆石子,将其中的一堆中的某些石子移动到另一堆,...

2020-01-10 16:20:56 113

原创 luogu P3288

题目链接题意有一张满流的DAG,其中起点只有一条出边,然后每条边有扩容和压缩的费用,还有单位运输量的费用,除了起点所连的边不能修改容量,其它的边都可以,问至少修改一条边,且最大流量不减少的情况下,X−YK\frac{X-Y}{K}KX−Y​最大是多少,其中X表示原来的运输费用,Y表示现在的运输费用+修改边容量的费用,K表示修改边容量的次数.数据保证答案大于0数据范围1<=N<...

2020-01-10 14:34:30 147

原创 codeforces 915G

题目链接题意给两个数n,k问对于一个长度为n,元素范围为1到k1到k1到k的数组a,有多少个a的总gcd为1,记这个值为bib_ibi​,要求输出∑i=1k(bi xor i)\sum_{i=1}^k(b_i ~xor ~i)∑i=1k​(bi​ xor i)数据范围n,k≤2e6n,k\le 2e6n,k≤2e6解法首先列出bbb的式子:bm...

2020-01-09 16:26:32 142

原创 一道数位dp练习题

题意给定一个n*m的网格图,图上有一个起点和一个终点(起点和终点处没有障碍),以及若干障碍,对于每个数字0-9都将会给出一对数(ai,bi)。对于一个数t,我们从高位到低位扫一遍,对于t的每一个数字i将当前位置行加上ai列加上bi,若从起点开始在模拟过程中能不走出边界且不走到障碍最终到达终点,就说数t对于当前网格图合法。问区间[L,R]内合法的数t个数有多少,答案对1,000,000,007取模...

2020-01-09 13:31:40 219

原创 一道网络流练习题

题意现有一款游戏,你作为玩家,拥有k种物品。开始时,每种物品有1000件。现在,在你面前有n个任务,每种任务都可能消耗一些物品,也可能得到一些物品。做第i个任务的物品得失情况用一个包含k个字母的字符串Si表示,其中每个字母都是+,-,/中的一种,第j个字母表示该任务对物品j的数量的影响。+表示做这个任务能得到一个物品j,-表示做这个任务会消耗一个物品j,/表示做这个任务对物品j的数量不产生影响...

2020-01-08 19:33:02 271

原创 codeforces 1214F

题目链接题意有一个长度为m的环形铁路,在铁路的某些点上有一些人或一些办公室,现在要求给每个人配一个办公室,让所有人的上班路程最短。人和办公室的数量都是n。数据范围m≤1e9,n≤2e5m\le 1e9,n\le 2e5m≤1e9,n≤2e5解法参考博文首先可以发现,如果不是环,而是一条链,那么一定是将人和办公室分别排序,然后一一对应,因为如果不是这样,就一定会花费更多的路程.然后如...

2020-01-08 18:10:14 161

原创 一道字符串练习题

题意给了一个长度为n的字符串,要求将其分为k段,求这k段最长的并且字典序最小的LCS.数据范围k≤n≤1e5,∣∑∣小写字母k\le n\le 1e5,|\sum|小写字母k≤n≤1e5,∣∑∣小写字母解法二分+hash+SA首先可以把问题转化为求一个最长的并且字典序最小的字符串,在原串中不重叠地出现了k次.然后二分这个字符串的长度l,因为原串长度为l的字符串数量是O(n)O(n)O...

2020-01-08 14:52:33 221 1

原创 codeforces 1263F

题目链接题意给两棵有根树,叶子数相同,每个叶子都连接着某个电机,同一棵树的叶子连着不同的电机,电机数等于叶子数,问最多可以删掉几条边,使得每台电机至少连接着一个树根数据范围叶子数num≤1000,树的节点个数n,m≤2000叶子数num\le 1000,树的节点个数n,m\le 2000叶子数num≤1000,树的节点个数n,m≤2000解法dp设val[0/1][l][r]表示第0...

2020-01-07 19:44:43 192

原创 一道莫比乌斯反演练习题

题意n<=1e9n<=1e9n<=1e9,答案对2322^{32}232取膜部分分n<=1e6n<=1e6n<=1e6,n<=1e7n<=1e7n<=1e7首先发现mu(i∗j)=mu(i)∗mu(j)∗[gcd(i,j)==1]mu(i*j)=mu(i)*mu(j)*[gcd(i,j)==1]mu(i∗j)=mu(i)∗mu(j)∗[...

2020-01-07 15:38:11 238

原创 一道bitset练习题

题意其中a[i]<=2ka[i]<=2^ka[i]<=2k ,n∗k<=2e6n*k<=2e6n∗k<=2e6,x==3x==3x==3数据分治对于k较大的情况,可以n2∗kn^2*kn2∗k暴力,这里可以用手写bitset优化这里因为不知道n,k所以使用不定长数组(其实和vector一样)tips:tips:tips:不定长数组其实是一个指针数组,...

2020-01-07 15:37:08 358

原创 codeforces 1239D

题目链接题意有n个人和n只猫,其中第i个人至少认识第i只猫,还会给出其他的m条认识关系,现在需要选出jjj个人,ppp只猫,j+p==nj+p==nj+p==n,然后1≤j,p1\le j,p1≤j,p,问是否存在满足条件的方案,如果有,随便输出一个解法首先可以把猫这个概念丢掉,变成n个人之间有m条单向的认识关系,然后题目可以转化成是否存在一个没有出度的强连通分量,且总的强连通分量数大于一...

2020-01-07 15:30:10 221

原创 luogu P3469

题目链接题意一张联通无向图,对每个点询问删去该点后,有多少对点本来联通,现在不连通.数据范围点数≤1e5\le 1e5≤1e5,边数≤5e5\le 5e5≤5e5解法割点板子题:首先可以发现只有割点才会额外造成某些点连通性的改变,所以求割点的同时计算贡献.就是记录每个点在dfs树上的子树大小,然后如果是割点,就把这个点的每个儿子的子树节点数乘起来,最后还要+n-1,表示和该点的所有...

2020-01-07 14:49:09 248

原创 一道树hash练习题

题意给两个二叉树,问两个二叉树有多少对点的子树相同输入给出每个点的左右儿子,左右儿子在判断子树的时候是位置不同的数据范围二叉树点数≤1e5二叉树点数\le 1e5二叉树点数≤1e5解法树hash模板,由于点数较多,所以需要比较强的hash(这次的树hash比上次的强非常多)由于是二叉树,所以可以设置多个hash步长,一个给左儿子,一个给右儿子,然后还可以记录子树高度,计算左儿子has...

2020-01-07 13:08:45 253

原创 一道sam练习题

题意有两个字符串A,B,求这两个字符串长度大于等于k的公共子串数量数据范围串长≤1e5,∣∑∣小写字母串长\le 1e5 ,|\sum|小写字母串长≤1e5,∣∑∣小写字母解法sam板子题…具体来讲,首先求出A的sam,然后把B串放在上面跑LCS的操作,求出对于B的每个前缀在A上的LCS.然后记下这个LCS的长度和位置.然后做dfs,求出sam上每个节点的贡献就可以了,具体实现看代码...

2020-01-06 19:08:30 132

原创 codeforces 1257F

题目链接题意有n个数,要求找到一个数x,使得每个数都与x异或后,所有数的二进制表示中的1的数量一样.数据范围n≤100,0≤数,x<230n\le 100 ,0 \le 数,x< 2^{30}n≤100,0≤数,x<230解法meet in middle分别搜索x的前15位,用一个结构体存n个数二进制表示下1的个数,然后把搜索的结果存下来,然后搜索后15位,将后15...

2020-01-06 18:58:28 165

原创 luogu P5043

题目链接题意给m(m<=50)棵树,每棵树的节点<=50,问和每棵树同构的编号最小的树是哪一棵,每棵树的编号就是输入时的顺序.解法树hash:dfs的同时给每个节点计算一个hash值,然后最后就会有根节点的hash值,因为这种hash与选择哪个点为根关系很大,所以需要把每个点都当做根跑一边,然后得到关于一棵树的每个节点作为根的hash数组,为了比较两棵树是否同构,还需要将这个数...

2020-01-06 14:26:37 180

原创 codeforces 1284E

题目链接题意给n(n≤2500)n(n\le 2500)n(n≤2500)个点,保证没有三点共线,求每个点可以被其它4个点严格包含的方案数之和。解法考虑用总数减去不合法的方案数,先枚举被包含的点,然后总数就是Cn−14C^{4}_{n-1}Cn−14​,不合法的方案数是这4个点都在过被包含的点的某条直线的一侧,这个需要把所有点先按和被包含的点的相对位置极角排序,然后双指针扫过去。复杂度O...

2020-01-05 21:11:57 124

原创 codeforces 1284C

题目链接题意定义一个排列aaa的一个区间[l,r][l,r][l,r]是好的,当且仅当alalal到ararar中的最大值-最小值=r-l.求长度为n的所有排列中总共有多少个好的区间,答案对一个给定质数取模解法首先观察一下题目的样例,可以发现l=r的区间一定符合要求,这样的区间有n!×nn! \times nn!×n个,然后长度为n的区间也一定符合要求,这样的区间有n!n!n!个,这对我...

2020-01-05 20:49:45 144

原创 bzoj 2192(求基环树森林的本质不同标号方案数)

题目链接(但是好像数据有问题)题意数据范围n<=30n<=30n<=30解法首先这个问题看起来比较奇怪,可以想办法转化一下,就是如果把A看做一个基环树森林(i和Ai之间有一条边),B看做对这些点重标号的方案,那么C可以理解成i这个点重标号之后连向的点重标号之后的标号(其实也相当于一种边).然后可以变成求一棵基环树有几种本质不同的重标号方案数,这里的基环树指的是Ci形...

2020-01-04 15:20:45 401

原创 codeforces 1207G

题目链接#include<bits/stdc++.h>using namespace std;const int maxn=4e5+5;inline int read(){ char c=getchar();int t=0,f=1; while(!isdigit(c)){if(c=='-')f=-1;c=getchar();} while(isdigit(c)){t=(t...

2020-01-03 21:16:38 155

原创 一道点分治题(股神小D)

题意有一棵无根树,树上每条边都有一个时间区间[li,ri],表示这条边在这个时间段内连通.问树上一共有多少条路径,至少在某一个时刻连通.路径上至少要有一条边数据范围1≤n≤2e5,1≤li,ri≤1e91\le n \le 2e5,1\le li,ri \le 1e91≤n≤2e5,1≤li,ri≤1e9解法可以使用LCT但是这里不谈考虑点分,然后就是对于每个分治中心,其不同的路径的...

2020-01-03 16:14:00 129

原创 一道贪心题(股神小L)

题意有n天,每天必须进行两个操作中的一种:买一股股票,或者卖一股股票。第i天股票的价格为a[i],一开始没有股票,卖股票的时候手上至少要有一股股票,问最后的最大利润是多少。可以是复数。n≤2e5n \le 2e5n≤2e5解法贪心:首先考虑一种策略,奇数天买,偶数天卖,然后不断调整这个策略使其变优,考虑对卖的价值维护一个小根堆,如果某奇数天卖更划算,就把之前卖的价格最小的那一天改成买。(对...

2020-01-02 22:19:42 318

原创 [APIO2019]桥梁

题目链接(luogu上现在这个题时限非常紧,题解区的代码也不一定能过)题意:有一张n个点,m条边的无向图,然后每条边有权值;有两种操作:1 将一条边的权值修改.2 询问从某个点开始,只允许进过大于给定权值的边,最多可以到达几个点.解法首先考虑如果没有修改操作,应该怎么做:显然可以把询问离线下来,并按给定的权值从大到小排序,然后用并查集维护答案.如果有操作呢?我们也延续上面的思路,...

2020-01-02 19:42:59 252

空空如也

空空如也

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

TA关注的人

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