Codeforces Round #791 (Div. 2)
AB签得比较顺利,A题一个类似线性规划的问题,对比下解法我做得还是太复杂了,印象中这种类似的point在一次div2C里出现了没搞出来,那个线性规划好像复杂很多
C题又卡了,这次是真服了,题目都读错了在那瞎想了一个多小时,把or以为成and,最后读懂之后树状数组维护还是比较简单的,不过应该有更好的解法
D题就剩10min了,应该是那种图上的dp,或者说记忆化搜索吧,做得比较少,也没什么信心能做出来。。。
好吧,补了下D题,并不是我想的那样,其实也不算特别不能做吧
首先,求最小最大值很显然要对答案二分,然后就是对于某个x,假设x是路径中的最大值,check一下
check的写法:在不包含a[i]>x的点的子图上做bfs拓扑排序,如果有环,那么很显然不论k多大都是ok的,而如果没有环的话,就看一下bfs过程中拓展到的距离dis的最大值有没有>=k-1的,如果有那么也可以获得这样一条长度为k的链
另外注意一个小细节,dis最好从1开始,表示链的长度,这样当k=1的时候不会出问题