随笔分类 - codeforces/Gym
摘要:题意:给你一个台球桌面,一个台球的初始位置和初始速度方向(只可能平行坐标轴或者与坐标轴成45度角),问你能否滚进桌子四个角落的洞里,如果能,滚进的是哪个洞。 如果速度方向平行坐标轴,只需分类讨论,看它是否在台球桌的边沿即可。 如果速度方向和坐标轴成45度,如下图 将整个过程展开, 设出射方向与当前所
阅读全文
摘要:题意:给你一个序列,让你找一个k,倘若把大于等于k的元素都标记为不可用,那么剩下的所有元素形成的段的长度相同,并且使得段的数量尽量大。如果有多解,输出k尽量小的。 把元素从大到小排序插回原位置,用一个set维护前驱后继,相当于删除一个原有的段,然后将这个段切成两半,产生两个新的段。维护这次操作后所有
阅读全文
摘要:题意:给你一棵树,让你切掉尽可能多的边,使得产生的所有连通块都有偶数个结点。 对于一棵子树,如果它有奇数个结点,你再从里面怎么抠掉偶数结点的连通块,它都不会变得合法。如果它本来就有偶数个结点,那么你怎么抠,都是合法的。 所以,我们只需要切断所有有偶数结点的子树的父边即可。 然后再判一遍最后是否仍是合
阅读全文
摘要:题意:定义,对于a数组的一个子区间[l,r],f[l,r]定义为对该子区间执行f操作的值。显然,有f[l,r]=f[l,r-1] xor f[l+1,r]。又定义ans[l,r]为满足l<=i<=j<=r的f[i,j]的最大值。多次询问你某些区间的ans值。 ans=max(f[l,r],ans[l
阅读全文
摘要:题意:给你一个分数,问你在b进制下能否化成有限小数。 条件:p/q假如已是既约分数,那么如果q的质因数分解集合是b的子集,就可以化成有限小数,否则不能。 参见代码:反复从q中除去b和q的公因子部分,并缩小该公因子,继续尝试。直到q没有和b的公共因子为止,如果q变成了1,那么有限,否则无限。
阅读全文
摘要:题意: 给你一个空的可重集,支持以下操作: 向其中塞进一个数x(不超过100000), 询问(x,K,s):如果K不能整除x,直接输出-1。否则,问你可重集中所有是K的倍数的数之中,小于等于s-x,并且与x异或结果最大的数是多少(如果不存在这样的数,也输出-1)。 建立100000个二进制Trie,
阅读全文
摘要:题意:给你3个字符串,3个人各对自己的字符串执行n轮操作,每一次选择一个字符变为任意一个和原来不同的字符。最后问你谁能使自己的串中的任意重复子串出现的次数最大化。 显然只需关注字符而非子串。 枚举每个字符,尽力使其他字符变成它。 只有一种情况需要注意!如果字符a的出现次数等于len,并且n=1,那么
阅读全文
摘要:题意:让你对[0,255]这个序列任意划分成一些不重叠的子段,每个子段的大小不超过K。给你n个不超过255的数,让你将每个数替换成它所在子段的任意一个元素,使得最终这个n个数的序列的字典序最小。 p[x]代表x作为代表元素的话,其所控制的区间的最后一个元素是谁。 读入一个数a的时候,在[0,255]
阅读全文
摘要:题意:给你一个4*n的网格,保证n为奇数,让你在其中放k个障碍物,不能放在边界的格子上,使得从左上角走到右下角的最短路的方案数,恰好等于从左下角走到右上角的最短路的方案数。 k为偶数时,以纵向为对称轴进行摆放即可。 k为奇数且小于等于n-2时,如下图横向对称摆放: .................
阅读全文
摘要:题意:给你一条直线以及初始时刻这条直线上的一些人的坐标,以及他们的速度矢量。让你对每个人计算他在过去无限远到将来无限远的时间内会与多少人处于同一个点,然后对每个人的这个值求和。 列方程组:两个人i,j相撞的条件是: a*x(i)+b+t*vy(i)=a*xj+b+t*vy(j) x(i)+t*vx(
阅读全文
摘要:题意:有n个事件,每个事件有一个严重程度,m个人(m>=n),你要让m个人去背锅,每个人只能背一个事件的锅,但是一个事件可以由很多人背。让你使得这m个人所承受的严重程度的方差最小化。 考虑一开始n个人各背一个事件,记录下该初始状态下的ans。然后分配剩下的m-n个人。堆里存储每个事件的严重程度x和当
阅读全文
【枚举】【二分】Codeforces Round #477 (rated, Div. 2, based on VK Cup 2018 Round 3) D. Resource Distribution
摘要:题意:有两个服务要求被满足,服务S1要求x1数量的资源,S2要求x2数量的资源。有n个服务器来提供资源,第i台能提供a[i]的资源。当你选择一定数量的服务器来为某个服务提供资源后,资源需求会等量地分担给它们,要求每台服务器承担的资源需求不超过其所能提供的资源需求。给定一种合法的方案,每台服务器要么没
阅读全文
摘要:题意:海平面每天高度会变化,一个人会在每天海平面的位置刻下一道痕迹(如果当前位置没有已经刻划过的痕迹),并且记录下当天比海平面高的痕迹有多少条,记为a[i]。让你最小化每天比海平面低的痕迹条数之和。 贪心,使得痕迹条数尽可能小。 考虑处理出每天痕迹条数的数组f[i]的最小可能值。 满足几个约束即可,
阅读全文
摘要:题意:给你一个棋盘的最终局面。 你的一次操作可以选择一些行和列,将它们的交叉点染黑,不能重复选择某行或者某列。问你是否能经过数次操作之后,达到目标局面。 就枚举所有黑点,如果该点行列都没被标记,就给它的行列新建一次操作的序号;否则如果只有行有操作标号,就把它付给列操作标号;对列亦然。 然后模拟一遍,
阅读全文
摘要:题意:定义一种无进位加法运算,给你n个正整数,问你取出两个数,使得他们加起来和最大/最小是多少。 无进位加法运算,其实是一种位运算,跟最大xor那个套路类似,很容易写出对于每个数字,其对应的最优数字是谁,就对于十叉的字典树,贪心地尽量往使结果更优越的方向走即可。
阅读全文
摘要:题意:给你两个串A,B,以及一个整数K,让你找到B的一个尽可能长的前缀,使得其在A串中出现的次数不小于K次。 对A串建立后缀自动机,然后把B串放在上面跑,由于每到一个结点,该结点endpos集合的大小就是该前缀出现的次数,又由于较长前缀的出现次数不大于较短前缀,所以只要跑到不满足条件停下即可。
阅读全文
摘要:题意:问你n*n的国际象棋棋盘上放3个互不攻击皇后的方案数。 oeis……公式见代码内
阅读全文
摘要:求最长上升子序列方案数。 转载自:http://blog.csdn.net/u013445530/article/details/47958617,如造成不便,请博主联系我。 数组A包含N个整数(可能包含相同的值)。设S为A的子序列且S中的元素是递增的,则S为A的递增子序列。如果S的长度是所有递增子
阅读全文
摘要:题意:给你一张2-SAT,问你加至少几句a V b(不能用非运算)这样的语句,使得其无法全为真。 如果最开始没有左右两项都含非运算的析取表达式,则无解,因为显然你可以对每一项的不含非的那项规定为真,使得整个2-SAT成立。 由于规定了你添加的语句不能含有非运算,故添加的边一定从 非某 指向 某。 如
阅读全文
摘要:题意:给你一张有向图,每条边有个限制范围,只有权值在限制范围内的人能走这条边,问你权值不超过K的人中,有多少人能从S到T。 K很大,因此我们只处理边的范围的上下界这O(m)个权值能否到达,以防万一,还处理了这些权值+1、-1的可达性。然后去重。离散化出来的这些区间中,两个端点都可达的话,其内部的点也
阅读全文

浙公网安备 33010602011771号
