======2016 CCPC 长春站====== [[https://vjudge.net/contest/394412#overview|比赛链接]] =====A.===== **upsolved by** ====题意==== ====题解==== =====B.===== **solved by 2sozx** ====题意==== 签到题 ====题解==== 签到题 =====C.===== **upsolved by ** ====题意==== ====题解==== =====D.===== **solved by 2sozx Bazoka13 JJLeo** ====题意==== 长度为 $1\sim n$ 的棍子各一个,问最少拿走几个使得剩下的棍子构不成三角形。 $n\le 20$ ====题解==== 打表即可。 =====E.===== **upsolved by JJLeo** ====题意==== 环套树,求最短路程走完所有节点,如果有多个答案,优先选起点最小,如何还有多个答案,优先选终点最小。 ====题解==== 先找环,然后如果起点终点在同一颗树,那么答案等价于所有树边的两倍加上环长减去这棵树的直径;否则等于所有树边的两倍加上环长减去两点在环上的距离再减去两棵树的最深点的深度,破链成环使用单调队列即可维护。 =====F.===== **solved by ** ====题意==== ====题解==== =====G.===== **solved by** ====题意==== ====题解==== =====H.===== **solved by ** ====题意==== ====题解==== =====I.===== **solved by 2sozx JJLeo** ====题意==== 给定一个序列,多次询问一个子区间,所有数第一次出现的下标拿出来组成一个新序列的中位数,强制在线。 ====题解==== 见后缀和主席树,然后设区间内有 $x$ 个不同的数,直接查询第 $\lceil \frac{x}{2} \rceil$ 小即可。 =====J.===== **solved by ** ====题意==== ====题解==== =====K.===== **upsolved by JJLeo** ====题意==== 求 $1$ 到 $n$ 所有数二进制中 $1$ 的个数和以及两两之间最长公共前缀中 $1$ 的数量之和,不同的算两遍,相同的算一遍。 ====题解==== 前者直接数位dp就行,后者也用数位dp的思想,考虑当每一位为 $1$ 时,对于相同的前缀后面有多少种方案。记录不压上界这一位为 $0$ 或 $1$ 的数量,对于 $1$ 后面随便填很好算出答案,对于压上界的,当这一位为 $1$ 时,后面能填的方案数可以算出来,直接加上平方即可。最后减去每个数的 $1$ 的数量,因为它们多算了。 =====记录===== before:CSK查询比赛找到这场比赛,MJX找个空教室并多次眼神暗示教室另外一人将其劝退\\ 0min:开局分题,MJX冲B\\ 3min:AC,CSK冲F\\ 26min:CSK WA1后AC,ZYF冲I\\ 44min:ZYF TLE,一起讨论D发现可以打表,MJX打表\\ 64min:MJX AC,CSK冲H,ZYF继续冲I\\ 90min:CSK RE1后AC,ZYF冲J\\ 187min:ZYF WA1RE1后AC,看G发现结论ZYF冲G\\ 206min:ZYF AC,冲E,MJX看I\\ 260min:MJX发现主席树多写了一个log,改后AC,一起冲E\\ 300min:CSK发现少讨论一种情况,gg\\ after end:E加上这种情况就过了,期间讨论K应该是正解但是没时间写了\\ 比赛中:教室蚊子太多了,ZYF被叮肿了一圈 =====总结=====