CodeForces
文章平均质量分 58
hzeroto
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #717 (Div. 2) D. Cut题解
D. Cut感觉这场的题思维上都非常妙,一开始建模想着用网络流跑二分匹配,但是觉得码量过大不太可能是cf正解,看题解果然,贪心就行,另外用到了倍增,感觉很不chuo。官方题解地址题意给出nnn个数和qqq个询问。对于每个询问,给出一个区间,问你最少把这个区间分成多少份(连续),使得每个区间内的数都两两不互质。想法可以证明,用贪心的方法,对于每个开始数找一个最大区间作为划分,接着这个区间后的第一个数最为新区间的第一个数即可得到最优解(最少划分)。预处理方法为倒序处理,定义数组go[i]go[i原创 2021-04-29 17:16:59 · 233 阅读 · 3 评论 -
Codeforces Round #717 (Div. 2) C. Baby Ehab Partitions Again题解
C. Baby Ehab Partitions Again恢复训练第一天,记录一道比较简单但是比较有美感的cf题和思路过程。题意给出nnn个数,问最少去掉几个数让他不能选择其中一些数,使得选择的数的和等于剩余的数字和。想法首先,容易想到,输出为0的情况是所有数字的总和是奇数,另外一种就是无论怎么选数字都不能得到sum2\frac{sum}{2}2sum,这可以通过dp用背包的思想构造。然后如果输出不为0,数字和必为偶数,一种最简单的想法是找到序列中的一个奇数(如果存在)并且删除。再然原创 2021-04-28 15:49:30 · 160 阅读 · 0 评论 -
2020 ICPC Shanghai Site H Rice Arrangement
H Rice Arrangement题意有一个有nnn个座位的桌子,有kkk个人和kkk盘菜,通过旋转桌子让每个人都吃且仅吃一道菜问最小旋转角度。思路首先引入一个结论把每个人和对应的手抓饭在圆盘上连线,这些连线是不会相交的然后设置k层轮转,选择第一个人的菜然后对于每一个轮转,上面的每一道菜可以分为两类:通过逆时针旋转到对应的人的口中通过顺时针寻转到对应的人的口中每一种轮转的最小答案值就是min(2∗maxCost顺+maxCost逆,maxCost逆+2∗maxCost顺)min(2原创 2020-12-22 19:39:14 · 471 阅读 · 0 评论 -
Codeforces Round #692 (Div. 1) C. Poman Numbers题解
C. Poman Numbers题意给出一个长度为nnn的串和一个整数T,串由小写英文字母组成。递归定义f(S)=−f(S[1,m])+f(S[m+1,∣S∣])f(S)=-f(S[1,m]) + f(S[m+1,|S|])f(S)=−f(S[1,m])+f(S[m+1,∣S∣]),mmm可以为任意[1,∣S∣)[1,|S|)[1,∣S∣)的任意值。递归出口为∣S∣=1|S|=1∣S∣=1,则f(S)=2S[0]−′a′f(S)=2^{S[0]-'a '}f(S)=2S[0]−′a′。想法总体来原创 2020-12-21 16:58:58 · 255 阅读 · 0 评论 -
Codeforces Round #685 (Div. 2) E2 - Bitwise Queries (Hard Version)题解
E Bitwise Queries题意交互题,有一个nnn个数(nnn为222的幂次)的序列,每个数范围[0,n−1][0,n-1][0,n−1]。最多给出n+1n+1n+1次询问,能得到任意两个数的AND或OR或XOR。根据询问还原序列。想法easy version的比较简单,直接n−1n-1n−1次的XOR来链接这些数然后用3次的两两OR来确定前三个数(能根据XOR结果知道前三个数哪些位两两相同并且用OR来确定这些相同的位的值,XOR为000的位OR为000则全000,OR为111则全111)。原创 2020-11-22 11:26:21 · 288 阅读 · 1 评论 -
Codeforces Round #684 (Div. 2) D Graph Subset Problem
D Graph Subset Problem题意给出一张nnn点mmm条边的无向图和一个数kkk。给出两个定义:cliquecliqueclique:一个由kkk个顶点及相互之间的边组成的子图,且为完全图。给定条件的子图:每个顶点有大于等于kkk个邻居。思路首先根据数据量n,m,kn,m,kn,m,k都是e5e5e5级别的数据,然后能隐隐感觉到数据之间的某些限制关系,能保证问题规模始终不会有想象中那么大,个人水平问题不会很严格的证明,证明可以参考官方题解。如下只考虑具体做法。首先我们只原创 2020-11-19 11:31:23 · 169 阅读 · 1 评论 -
Codeforces Round #683 Div2 E Xor Tree(字典树,树上问题)
E. XOR Tree题目描述给出nnn个点,每个点有一个值aia_iai,对于每个点,它将找到其余所有点中与其异或和最小的点,并且与之连上双向边,问最少要在给出数组中删掉多少数才能使得剩余的数经过这样的操作能变成一颗树。思路同样又是熟悉的最小异或点对的问题,容易联想到CF之前的另一道XOR MST。同样首先最直接的想法是n2n^2n2的暴力求最小点对,但是显然会T飞。正解是01字典树,同样这题也是基于01字典树去思考。首先是熟悉的思路,对于某个特定01串的最小异或和串,应该是从最高位到最低位去贪原创 2020-11-16 22:35:41 · 274 阅读 · 0 评论 -
Codeforces Round #675 1422-D Returning Home
D. Returning Home题目描述在一个n×nn \times nn×n 的空间中,给出起点终点和mmm个瞬移点,每个瞬移点之间可以000花费瞬时转移(当前位置在与瞬移点在同一行或同一列中时可触发)。否则花费111四向移动一个单位。求问从起点出发最少花费多少到达终点。思路:题目中nnn的范围是1e91e91e9的,但是其中的实际有效的处理点只有m(1e51e51e5)个,所以容易想到需要根据瞬移块来建图,需要注意的只有转移条件。所有瞬移点之间,只需要两者在同一行或列,就能0费用转移,所以原创 2020-11-11 22:29:58 · 151 阅读 · 1 评论