摘要:
"题目" 维护每个点子树中最深的没有被覆盖的点(仅计算这条链上的关键点)的距离。 若$u$为关键点,则$d_u= k 1$。 记录$mx=\max\limits_{v\in son_u}d_v+1,min=\min\limits_{v\in son_u}d_v+1$。 如果$mx+mn define 阅读全文
摘要:
"题目" $n^2$的dp已经成为辣鸡做法了,%%%wch。 首先一个结论:$a+b$小的人在上。 这个东西我们有三种方法解决证明: 1、感性理解,$a+b$越大的人逃生能力越强,放在下面就越可能溜。 2、交换法。 3、找别的博客。 所以我们排个序确定顺序,然后来考虑如何计算最多能跑多少人。 然后我 阅读全文
摘要:
"题目" 凸优化选手往后稍稍。 显然我们是选择$k$对相邻的,所以我们可以差分后将题意转化为选$k$个不相邻的数使其和最小。 我们考虑一个贪心:每次选最小的。这个贪心的错误性是显然的。 我们加入一个反悔机制: 取走一个数$a$之后,我们把它旁边的两个数$b,c$去掉,在这个位置放一个新的数$b+c 阅读全文
摘要:
"Link" 同上一题。 阅读全文
摘要:
"题目" 1、$a_\le b_i$的在前面。 显然。 2、前面的按$a_i$升序排序。 这样会尽可能地让要等的时间变少。 3、后面的按$b_i$降序排序。 反过来看,跟2一样。 真要严格证明的话交换法吧。 c++ include using namespace std; const int N=1 阅读全文
摘要:
"题目" 如果我们最大比对面最大大,那么直接用。 如果我们最小比对面最小大,那么直接用。 否则用我们最小去换对面最大。 c++ include using namespace std; inline int read() { register int x=0; register char c=get 阅读全文