自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 codeforces633H Fibonacci-ish II

题面题意给出n个数,每次询问给出l,r,询问把[l,r][l,r][l,r]这段数排序去重后,求第i个数乘上斐波那契数列的第i项的和。做法这题需要一个公式Fi−1∗Fk+Fi∗Fk+1=Fk+iF_{i-1}*F_k+F_i*F_{k+1}=F_{k+i}Fi−1​∗Fk​+Fi​∗Fk+1​=Fk+i​发现利用这个公式,可以推得∑i=1nnumi∗Fi+t−1∗Fk+∑i=1nnum...

2019-02-27 15:45:44 163

原创 codeforces1023F Mobile Phone Network

题面题意有n个点,并给出k条还没有权值的边和m条有权值的边,要求你给这k条边赋上权值,使得存在一种最小生成树包含这k条边,问k条边的最大权 值和是多少。做法首先可以先求出这棵最小生成树,然后这m条边中的所有非树边都会与原树构成一个环,要满足它不是树边,它就必须是环上的最大值,相当于要对环上的所有树边都取一次最小值,这个用树链剖分,差分+启发式合并或可并堆…都可以做,但都很麻烦。可以发现,...

2019-02-26 18:51:13 153

原创 codeforces1129E Legendary Tree

题面题意交互题,要求你通过询问确定一个有n个节点的树的边,每次询问输出两个集合S,T和点v,将会告诉你从S集合的某个点到T集合的某个点并经过点v的路径数。做法首先钦定点1为根节点,然后发现,询问({x∈N∗x \isin N^*x∈N∗ | 2<=x<=n,x̸=i2<=x<=n,x\not =i2<=x<=n,x̸​=i...

2019-02-25 21:47:21 302

原创 codeforces1129D Isolation

题面题意给出一个长度为n的序列,将它划分成一个或多个子串,使每个串中只出现过一次的数字个数小于等于m,求方案个数。做法记dp[i]表示前i个的答案,f(i)f(i)f(i)表示iii到nnn(nnn表示此时的右端点)的只出现一次的数字个数,则dp[n]=∑f(i)<=mdp[i−1]dp[n]=\sum_{f(i)<=m}dp[i-1]dp[n]=∑f(i)&...

2019-02-25 19:28:21 269

原创 codeforces1098E Fedya the Potter

题面题意给出一个长度为n的序列a,将它的所有子区间的gcd计算出来并存入数组b(长度为n∗(n+1)/2n*(n+1)/2n∗(n+1)/2),并将b区间排序,然后将数组b的所有子区间的和计算出来存入数组c,问数组c的中位数是多少。做法首先因为数组a中的所有数都小于等于100000,因此gcd的数字种类也在这个范围内,对数组a可以用倍增求出每个数字作为gcd的次数。然后考虑二分答案,可以...

2019-02-24 20:52:39 377

原创 codeforces1098D Eels

题面题意在鱼缸中有一些鱼,这些鱼之间会相互吞噬直到只剩下一条鱼,若一条鱼的质量为a,另一条鱼的质量为b,则吞噬之后会剩下一条质量为a+b的鱼,若a<=ba<=ba<=b且b<=2∗ab<=2*ab<=2∗a,则这次吞噬是危险的。现在有一个空鱼缸,进行多次操作,每次操作会加入一条鱼或去掉某一条鱼,问这次操作后,鱼缸中的鱼相互吞...

2019-02-22 16:24:04 246

原创 codeforces1110H Modest Substrings

题面题意给出三个数l,r,nl,r,nl,r,n,求出一个由数字组成的字符串,使其所有子串中,符合在[l,r][l,r][l,r]内的数量最多,若有多组解,输出字典序最小的一个。做法首先考虑最朴素的做法,可以将[l,r]内的所有数字当作字符串加入一个AC自动机,直接在上面dp。但是因为l和r极大,因此需要优化。发现当一个数的长度确定,并且某一个前缀也确定之后,无论其后面填什么数,它都在[...

2019-02-22 13:46:40 231

原创 codeforces1110G Tree-Tac-Toe

题面题意给出一棵树,一些点被染成了白色,现在有两个人A,B轮流操作,A会把某个未染色的点染成白色,B会把某个未染色的点染成黑色,若出现了一个颜色相同的连通块,则对应颜色的人获胜,A先操作,则哪一方会获胜。做法首先我们考虑转化一下初始为白色的节点,若点A为白色,则我们可以新建点B,C,D,并且连边(A-B),(B-C),(B-D),并将A变为未染色的点,不难发现两者等价,现在考虑如何处理没有...

2019-02-22 09:45:34 234 1

原创 codeforces1110F Nearest Leaf

题面题意给出一棵树,它的节点的标号恰好为其dfs序,多次询问,每次询问给出三个数u,l,r,求点u到标号在[l,r][l,r][l,r]中的叶子节点的最近距离。做法考虑用线段树维护点1到各个叶子节点的距离,发现若要维护点1的儿子节点点2到各个叶子节点的距离,只要将点2的子树中的所有叶子节点的距离减去边权,其余叶子节点加上边权,这样只要将询问离线,再维护区间加和区间最小值即可。代码#in...

2019-02-22 08:15:50 199

原创 codeforces1117G Recursive Queries

题面题意给出一列数。定义m(l,r)m(l,r)m(l,r)表示l到r之间的最大值的位置。f(l,r)=(r−l+1)+f(l,m(l,r)−1)+f(m(l,r)+1,r)f(l,r)=(r-l+1)+f(l,m(l,r)-1)+f(m(l,r)+1,r)f(l,r)=(r−l+1)+f(l,m(l,r)−1)+f(m(l,r)+1,r)多次询问,每次询问给出lll,rrr,求f(l,...

2019-02-22 08:03:49 437 2

原创 codeforces1118F2 Tree Cutting (Hard Version)

题面题意给出一棵一共有k种颜色的树,每个点要么没有颜色,要么是k种颜色中的一种颜色,每种颜色至少出现一次,现在要你删去k-1条边,使每个连通块中有且仅有一种颜色,问有几种删法。做法首先判断无解的情况,可以发现如果一个有颜色的点为根的子树不包括所有这个颜色的点,则这个点与其父亲之间的边不可以被删去,我们可以据此将其父亲也染为与它颜色相同的颜色。因此,我们可以进行bfs,如果这一层中有多个颜...

2019-02-21 20:46:43 299

原创 codeforces1117F Crisp String

题面题意给出一个长度为n的字符串和一个m*m的矩阵A,若矩阵中A[i][j]=1则说明,字符(i+‘a’-1)与字符(j+‘a’-1)可以相邻,反之则不能。一开始给出的字符串是合法的,现在你每次可以去掉一种字符,要求每次操作后字符串仍然合法,则经过任意次操作后,字符串的最短长度是多少。做法首先如果对于每个字符集,我们能确定其是否合法,就可以轻易求解。现在考虑如何确定某个字符集是否合法。...

2019-02-21 19:34:22 438

原创 2015 ACM-ICPC World Finals G - Pipe Stream

题面做法我们可以发现从v2-t开始,每减去t比较一次,直到L,就可以得到答案。考虑建出二分查找树,发现每一个速度都有一个时间上限(如果超过这个时间就无法比较),这个时间就以为着它在二分树上的最大深度,可以发现每个速度的最大观察深度是一个分段函数,可以逐层考虑这棵二分树,计算它每层可以将答案精确到几个区间中,然后减掉这一层必须确定的速度(若节点数不够,则说明无解),逐层枚举,最后的深度即为答案...

2019-02-21 18:10:22 385

原创 [NOI2017]蔬菜

题面题意有n种蔬菜,每种蔬菜有c[i]的单位,每单位可以获得收益a[i],第一次卖出它可以额外获利s[i],每天会有x[i]个单位过期,每天最多卖出m个单位的蔬菜,k次询问,每次询问给出一个数p,询问用p天最多可以获利多少。做法首先考虑一次询问,则可以将时间倒序来看,这样蔬菜过期就可以看作是这一天将一部分的蔬菜运来,第一次卖也同样额外获利s,然后用优先队列贪心维护最大的m个即可。现在考虑...

2019-02-01 09:28:43 297

空空如也

空空如也

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

TA关注的人

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