这题我做了好几天(真是弱),刚开始不会,然后苏神教了我好长时间,但是我智商太低!还是不懂。。
于是我不得已去看题解。。我一直觉得tc那个神马vexorian写的题解有点反人类,所以一直不想看,结果这场不是他写的(囧)。。一看就懂了
思路嘛。。大概就是一个位置可以放0,可以放1,但是放0有区间限制,怎么办呢?用一个last记录一下前一个1,如果不在以i结尾的区间内,那这个位置就必须放1了。。
贴个代码
相同思想的还有dv1 500pt,这次要求每个区间最多只能放2个,如果用前一题的做法用2个变量来记录前2个1的话,空间超了。如果这个位置放1,还要扫描所有区间看看有木有违背,复杂度就是300^4左右吧,太慢。
不妨换一个角度,只记录前1个1,如果这个位置放1,那么直接跳到下一个能放1的区间作为起始点,这样空间n^2,时间O(nm^2)