随笔分类 - codeforces/Gym
摘要:卡题意……妈的智障 一个人的服务时间完整包含在整个工作时间以内。 显然,如果有空档的时间,并且能再下班之前完结,那么直接输出即可,显然取最左侧的空档最优。 如果没有的话,就要考虑“挤掉”某个人,就是在某个人之前1分钟到达,这样显然比较优。 就这些情况都考虑上就得了。
阅读全文
摘要:题意不复述。 用个bool数组记录一下,如果某一天,当前剩下的最大的出现了的话,就输出一段。
阅读全文
摘要:将整个游戏可以划分成若干个互不相交的子游戏。 每个子游戏的sg值只与其中的数的个数有关。而这个数不会超过30。 于是可以预处理出这个sg值表。 然后从1到n枚举,对<=sqrt(n)的部分,用个set判重。 对于大于sqrt(n)的部分,统计其中不包含在之前已经划分出来的子游戏内的数的个数,如果是奇
阅读全文
摘要:根据那两个式子 g(h(x))=x h(g(x))=f(x) 可以推出来两个新的式子 g(f(x))=g(x) h(x)=f(h(x)) 于是,我们先找到f(x)的所有不动点,有几个不动点,m就是多少,将它们依次赋值给h(1),h(2),...,h(m),对应的g(h(i))赋值成1,2,..,m
阅读全文
摘要:D题: 题目思路:给你n个不想交的矩形并别边长为奇数(很有用)问你可以可以只用四种颜色给n个矩形染色使得相接触的 矩形的颜色不相同,我们首先考虑可不可能,我们分析下最多有几个矩形互相接触,两个时可以都互相接触 三个时也可以互相接触,而四个时怎么摆我们都不能让他们相互都接触,所以我们最多可以用三种不同
阅读全文
摘要:标题写的树形DP是瞎扯的。 先把1看作根。 预处理出f[i]表示以i为根的子树是什么颜色,如果是杂色的话,就是0。 然后从根节点开始转移,转移到某个子节点时,如果其子节点都是纯色,并且它上面的那一坨结点也是纯色,就输出解。 否则如果其上面的一坨是纯色,并且其子节点有且只有一个杂色的时候,就递归处理该
阅读全文
摘要:纪念死去的智商(虽然本来就没有吧……) 三重循环枚举将哪三个fix string作为数字、字母和符号位。记下最小的值就行了。 预处理之后这个做法应该是O(n^3)的,当然完全足够。不预处理是O(n^3*m)的,也够。 我写了一个O(n^2+n*m)的分类讨论贪心做法……蜜汁错,容我查一下。 现在查出
阅读全文
摘要:线段树每个结点维护两个值,分别是这个区间的 负债 和 余钱。 按时间顺序从前往后看的时候,显然负债是单调不减的。 按时间顺序从后往前看的时候,显然余钱也是单调不减的,因为之前如果有余钱,可能会增加现在的余钱,但之前的负债不会减少现在的余钱。 所以线段树的区间合并这样做: 当前区间的负债 = 左区间的
阅读全文
摘要:每次取相邻的两个可以射击的从序列中删除,重复n次。 可以看作括号序列的匹配。
阅读全文
摘要:一般思路的dp是用f(i,j,0)表示前i位最后有j个1的方案数,用f(i,j,1)表示前j位最后有j个2的方案数,j都是大于等于1的,然后比较容易转移。 但这题卡内存,就只能用f(i,j)表示前i位最后有j个1的方案数,这里j大于等于0。 然后转移就略麻烦,自己看代码领会一下吧。 也可以看成是滚动
阅读全文
摘要:读懂题意其实是模板题。就是细节略多。
阅读全文
摘要:就按照题意建出有向图来(n个点,2n-2条边),然后从按随便一个rating排序,从最后一个开始dfs,用vis数组防止重复访问,因为每次之前的肯定能访问之后的(及之后的能访问的),所以不会有重复。就行了。
阅读全文
摘要:读懂题意发现是傻逼状压。 只要会向量旋转,以及直线求交点坐标就行了。(验证了我这俩板子都没毛病) 细节蛮多。
阅读全文
摘要:题意就是对每个点i,统计在其子树内(不含自身),且depj-depi<=xj的点有多少个。 把点分别按照dep-x和dep进行排序,离线处理, 每次把dep-x小于等于当前dep值的点插入树状数组,就变成了询问dfs序在一个区间内的点有多少个,可以用树状数组轻松解决。
阅读全文
摘要:裸dp,看代码。
阅读全文
摘要:如果K>n,就无解; 如果K==n,就答案是P(n,n); 如果K<n,答案就是s(n,K)*P(K,K); P为排列数,s为第二类斯特林数。 第二类斯特林数就是将n个球,划分为K个非空集合的方案数(无序),所以要再乘上集合数的全排列。
阅读全文
摘要:按题意把图建出来跑最短路就行了。注意遮挡不会影响答案,所以不必考虑,因为走直线经过遮挡的时候,一定不会比答案更优。
阅读全文
摘要:以后这种题还是不能空想,必须打个表看看,规律还是比较好找的……具体是啥看代码。用SG函数暴力的部分就不放了。
阅读全文
摘要:就是给你一些元素的进栈 出栈操作,不按给定的顺序,要求你对于每次输入,都依据其及其之前的输入,判断出栈顶的元素是谁。 用线段树维护,每次push,将其位置的值+1,pop,将其位置的值-1。相当于寻找最靠右的和>0的后缀。 也就是线段树区间加减,寻找最靠右侧的大于0的数的位置,记录个区间最大值就行了
阅读全文
摘要:水dp,加个二分就行,自己看代码。 B. Travel Card time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output B. Trav
阅读全文

浙公网安备 33010602011771号
