自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

binarycopycode

人百我一,人万我十,舒服了

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

原创 codeforces1373E Sum of Digits

https://codeforces.com/problemset/problem/1373/E其实这题挺水的,然而看见F好像更可做一些,就去WA F一直到结束了。。。看了jly的代码。。清晰易懂思路简单。。。这题关键的问题在于那种末尾好多个9,然后进位,就一片0,于是并不知道这样如何构造其实就可以直接枚举末尾有多少个9就行了,枚举完以后,我们算出这d个9和末尾上的数字c,在k+1个数字中会产生多少贡献,然后再看剩下还要凑多少值,如果<=8,那么就是这个数+d个9+末尾c就行了,如果&

2020-06-26 12:25:23 427

原创 codeforces1369D TediousLee

https://codeforces.com/problemset/problem/1369/D一眼结论,从这棵树从下往上,能取就取,肯定能得到最大值,因为儿子数量更多一些,如果取父节点会影响很多子树。然后再考虑,i=3,只能取跟节点的1个爪子,i=4的时候,从下往上取,取中间的爪子,根节点不会被取,i=5的时候,也不会取根节点然后可以发现 对于level i , 由3棵子树+1个根节点形成,其中2棵i-2的树,1棵i-1的树那么如果i-2和i-1都不取根节点,也就是i的根节点的子节点,那么

2020-06-24 00:44:02 352

原创 codeforces1370E Binary Subsequence Rotation

https://codeforces.com/problemset/problem/1370/E怎么div2E水到这种地步昨天考完多媒体从下午一直颓废到晚上,1点突然想写写题,然后wa了2发后评测卡住了。。。难受,还好一起来第三发提交A了考虑s[i]与t[i]不同的位置,如果是s[i]=0,那么他就需要变成1,反之亦然那么我们可以想到是把这些s[i]中不同的位置挑出来后,一次变换是1 0 1 0...1 0或者0 1 0 1 ...0 1的。用a[i][j](i,j=0/1)表示当前位.

2020-06-23 14:06:39 209

原创 codeforces1367F2 Flying Sort (Hard Version)

https://codeforces.com/problemset/problem/1367/F2直接把数字离散后把下标丢进对应值的桶里面,然后如果要选择[l,r]这段区间作为不动的位置,其中[l+1,r-1]这些数字所有位置必须完全选满,然后等于l的可以只取小于l+1的中位置最小的,等于r的可以只取大于r-1中位置最大的。滑动窗口搞[l+1,r-1],然后l,r的部分lower_bound搞一下#include<bits/stdc++.h>using namespace std

2020-06-17 02:31:44 377

原创 codeforces1361B Johnny and Grandmaster

https://codeforces.com/contest/1361/problem/B这题wa了好久好久好久。。。。天天掉分了,难顶从大到小考虑幂次,a[n],a[n-1]...a[1]去填求一个上限up,如果p^up>n,当a[i+1]+a[i]>=up且tmp>0的时候,说明tmp要乘以p^up以上,而且之后a[i-1]...a[1]都是<=a[i]的,就算他们全是a[i],也无法把tmp减到0,那么就直接后面的全减就行了。如果当前完成进制转换,也就是tmp*

2020-06-05 01:20:13 273

原创 codeforces1343E Weights Distributing

https://codeforces.com/problemset/problem/1343/E这题大概做了40分钟,做的有点慢了,思考时间估计有15分钟,如果能3分钟以内想出来,20分钟a掉,才有时间去做这场的F题对a,b,c三个起点分别跑dfs,那么枚举中介点,让a-b,b-c必须经过i点,那么走的重复路径就是disb[i],然后不重复的路径条数就是disa[i]+disc[i],前缀和求一下值就行了。一开始的想法错了wa了一发,以为最优值肯定在disa[i]+disb[i]==disa[b

2020-06-04 17:51:13 198

原创 codeforces1343F Restore the Permutation by Sorted Segments

https://codeforces.com/problemset/problem/1343/F感觉这种2400分的题还比较适合刷,一般要做个1个多2个小时,但是要在比赛的时候能做出来的话,应该要能再半小时之内做出来才行。这题首先想到,r=2的时候l=1,那么能做开头的数字是哪些就有限制了,必须是长度为2的序列中的。然后我们可以算一个dis[i][j]表示i离j最远距离的最小值是多少,如果一个[l,r]长度是len,那么他们中间的元素之间相差的距离最多是len-1了,很多个区间中出线过,那就取最

2020-06-04 17:06:52 294

原创 codeforces412D Giving Awards

https://codeforces.com/contest/412/problem/D这题为撒出线在dfs树的列表里。。。于是又是tarjan搞半天对所有边建反边,然后强联通分量缩点后拓扑排序,然后还要处理一下强联通分量中的点的顺序,还挺麻烦的,我纠结到后面不想写了。。。于是有更简单的做法。。。。直接建正边,由于u->v,u欠v钱,那u就不能再v前面一个位置。那么我们直接从一个点开始dfs,然后dfs到最底层后,回溯后,再输出当前节点,因为把u的所有欠钱的对象v都在前面输出过了,现在输出

2020-06-04 00:30:09 194

原创 codeforces1277E Two Fairs

https://codeforces.com/contest/1277/problem/E这题直接搞的话,先边双缩点,然后记录每个边双直接连的边是连的哪两个点,然后再考虑加不a,b是不是刚好是它所在边双的出口,再计算。这样写估计得200+行然而这题用dfs树就会简单许多,直接以a为起点开始跑tarjan,如果跑到b,b的某个儿子v,low[v]>=dfn[b],那么说明v所在的子树所有点到a都需要经过b,于是sum1+=son[v],然后再以b为起点做一遍一样的动作#include&lt

2020-06-03 22:02:53 247

原创 codeforces858F Wizards Tour

https://codeforces.com/contest/858/problem/F一开始看错题了,以为是一个联通块只能从一个地方出发,走最多的点,边双缩点后树形dp求每个连通块的最长路径,以后读完题还是看看样例比较好结果发现必须是长度为2的路径那么就直接dfs树了,从最底下开始处理完所有儿子后向上,先找到当前节点u所有的还有没连满的儿子节点v,就u->v->a[v]成一次。然后再对于那些连满的儿子,直接两个两个分,v1->u->v2这样。最后如果有剩下的v,说明u的

2020-06-03 01:15:13 244

原创 codeforces962F Simple Cycles Edges

https://codeforces.com/contest/962/problem/F这题其实就是求边仙人掌的所有边dfs树上对每一条向上的边(u,v),在(u)这个儿子的位置打上标记,标记为{v,id},id为给这个环一个编号然后再dfs一遍,让子节点的标记向上传递,如果撞了,就说明两个环共用一条边,那么这两个环的所有边都不可以。在转移的时候要注意我们只保留那个深度最小的环的标记,就从当前的点向上最远的标记,这样才可以处理所有冲突这种题应该都要注意一下树(图)是不是联通的。。。又wa

2020-06-02 22:00:54 224

原创 codeforces231E Cactus

https://codeforces.com/contest/231/problem/E看错题了。。。看成了要求每个点只经过一次的路径,然后想了一年。。。觉得这题比前面的2900分题难多了然后开始思考人生要求每条路径只经过一次,那就很简单了由于在仙人掌中每一个点最多属于一个环,那么在dfs树的过程中可以直接求出每个环的根节点(深度最小的)在哪,就相当于缩点了,还可以把缩点后的每个点的父亲节点是谁很方便的求出来然后答案就是u,v的路径上所有的环的个数的2次幂了,包括u,v本身所在的环,这个用l

2020-06-02 02:01:53 239

原创 codeforces732F Tourist Reform

https://codeforces.com/problemset/problem/732/F很显然我们把双联通分量缩点,然后最大的那个连通块就是答案但是我第一种写法,是直接从1开始dfs树,然后把所有的边定向,最后在缩点的树上,从最大连通块开始dfs,再把那些连通块之间的边的重新定向,然而这样wa13,答案没错,但是边错了??最后我改成从哪个最大连通块的某个点开始倒着定向就过了?我觉得是一样的啊。。。when i got a wa, why does this be wa,change s

2020-06-01 22:13:45 248

原创 codeforces19E Fairy

https://codeforces.com/contest/19/problem/E这题怎么2900分啊。。。可能以前dfs树的做法还不是well known,现在感觉最多2500了显然这题就是要求删去哪些边使得这个森林没有奇环我们只考虑dfs树每个点连向他祖先节点的奇环,如果没有奇环,那么边就随便选咯如果整个森林只有一个奇环的话,并不是这个奇环上的每条边都可以选,当然那条向上连向祖先的边是必然可选的,然而,如果有一个偶环跟这个奇环有重叠部分的话,那么偶环可以通过去掉这些重叠部分的边,和奇

2020-06-01 17:47:48 219

原创 codeforces1363D Guess The Maximums

https://codeforces.com/problemset/problem/1363/Dmd昨晚卡E卡太久了,这道水题没时间做了我平常写的二分好像都有可能要多问一次,因为出来以后还要再询问一次,改成那种边二分边记录答案的写法就过了这题就先确定最大值的最靠左的位置在哪里,然后判断那里时候被某个子集包含,如果不被任何子集包含,那么答案全是mx否则,再查询除了这个子集外的全部位置的次大值,就是这个子集的答案,其余的子集的答案全是mx#include<bits/stdc++.h&

2020-06-01 15:09:29 283 1

原创 codeforces1363E Tree Shuffling

https://codeforces.com/problemset/problem/1363/E这题一看到子树,立刻想到dfs序,然后直接dfs序搞线段树打区间标记,bit维护区间剩余换0的个数和换1的个数,然后把点按ai排序搞就行了。因为一个cost更小的点,肯定是它能处理的尽量处理,然后如果当前这个枚举的点被某个ai更小点曾经处理过这个dfs序的区间了,说明那个ai更小的点是它的父节点,他就什么都不能干。这个点把他能处理的处理完之后,在dfn[id]的位置减去处理的个数,01都减,因为如果之后他的某

2020-06-01 01:50:51 236

空空如也

空空如也

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

TA关注的人

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