随笔分类 - codeforces/Gym
摘要:选择的钥匙一定是连续的,人和钥匙一定从左到右连续对应。 就枚举钥匙区间即可。
阅读全文
摘要:http://blog.csdn.net/DorMOUSENone/article/details/73699630
阅读全文
摘要:假设初始人数为0, 将每个时刻在等待的人数写下来,就是求个和。 如果纵坐标看成人数,横坐标看成时间,就是求个面积。 因为初始人数不一定为零,所以离线后扫描线即可回答所有询问。
阅读全文
摘要:让你把所有的“连续的仅有首字母大写的”词组用缩写表示,并且在后面用括号注明原词组。
阅读全文
摘要:发现炸毁的瞭望塔必然是连续的,其余下的部分是一个半平面。 二分答案,枚举所有可能的炸毁情况,做个半平面交,如果交出来面积是0,就可以保证不存在安全区域。
阅读全文
摘要:容易发现,圆锥体积和点的具体x、y坐标无关,只与其到z轴的距离sqrt(x*x+y*y)有关。 于是将这些三维的点都投射到二维的xOy平面的第二象限(sqrt(x*x+y*y),z),求个上凸壳,然后在每一点处,圆锥的母线的斜率的取值范围就确定了,发现这个圆锥的体积关于圆锥母线的函数是单峰的,可以三
阅读全文
摘要:题意跟某道我出的等差子序列求最值非常像…… 反正询问的长度只有10种,你就建立10批树状数组,每组的公差是确定的,首项不同。 然后询问的时候只需要枚举询问串的每一位,找找这一位对应哪棵树状数组即可。 修改的时候会在10棵树状数组里修改,也是算算修改的位置对应哪一棵即可。 要注意,一共有4种字符,每个
阅读全文
摘要:让你构造一棵树(给定了总结点数和总的叶子数),使得直径最小。 就先弄个菊花图(周围一圈叶子,中间一个点),然后平均地往那一圈放其他的点即可。
阅读全文
摘要:在每个给出的子串的起始位置打个标记,记录的是从这里开始的最长子串。 然后输出的时候就扫,如果遇到开始位置,就从这里开始输出,如果其后被更长的覆盖,就跳转到更长的串进行输出。 如果位置没被覆盖,就输出'a'。
阅读全文
摘要:按照回文子串的奇偶分类讨论,分别计算其对答案的贡献,然后奇偶分别进行求和。 推导出来,化简一下……发现奇数也好,偶数也好,都可以拆成一个等比数列求和,以及一个可以错位相减的数列求和。 然后用高中数学知识搞一下就行了。
阅读全文
摘要:主席树里每个值的位置存当前该值出现的最右位置。 如果root[r]的前缀主席树中,某值最右位置大于等于l,说明该值出现在了l,r中。 所以主席树维护区间最小值,如果左半值域的最小值<l,则说明左半值域有值未在l,r出现,则查询左子树;否则查询右子树。
阅读全文
摘要:数位dp预处理之后,可以容易得到f(x),代表小于等于x的数中,有多少个不含13的。然后就能二分答案啦。
阅读全文
摘要:在最外围的一圈没有意义,所以全都涂黑,内部贪心地涂成棋盘即可。
阅读全文
摘要:每个城市有4个城门,每个城门会发出唯一一条边去别的城市的城门。问你能否从城市1出发,经过每个城门恰好一次,再回到城市1。 每个城市的度数都是4,必然存在欧拉回路(如果连通)。欧拉回路显然是一个合法解。
阅读全文
摘要:一种方法是二分总时间,复杂度O(nlogn)。 另外我们可以证明,当所有人同时到达终点的时候,是最优的,因为没有人的时间“浪费”了。 我们又发现,每个人的运动过程总是两段,要么是走路,要么是坐车。于是每个人的运动都是等价的(坐车的时间也相等,走路的时间也相等)。 这里借用一下这个推导,懒得写了。 (
阅读全文
摘要:打个表出来看看,其实很明显。 推荐打这俩组 11 1 10 100 1000 10000 100000 1000000 10000000 100000000 1000000000 10000000000 12 1 10 100 1000 10000 100000 1000000 10000000 1
阅读全文
摘要:容易发现,删除的顺序不影响答案。 所以可以随便删。 如果行数大于列数,就先删列;否则先删行。
阅读全文
摘要:有向图博弈问题。 能转移到一个必败态的就是必胜态。 能转移到的全是必胜态的就是必败态。 转移的时候可以用队列维护。 可以看这个 http://www.cnblogs.com/quintessence/p/6618640.html
阅读全文
摘要:傻逼二分
阅读全文
摘要:预处理每一层最左侧的1的位置,以及最右侧的1的位置。 f(i,0)表示第i层,从左侧上来的最小值。f(i,1)表示从右侧上来。 转移方程请看代码。
阅读全文

浙公网安备 33010602011771号
