Blocking Elements
这道题目打得我很郁闷。。为啥考试的时候明明想到算法了,只要在想深一点就可以解决问题了,但却没有这么做呢?
看到求最小最大,想到二分,然后没有什么好的判断方法,又想到了DP
设\(f[i]\)表示前\(i\)个数,选择第\(i\)个数到第一种序列里面,满足题意的第一种序列的最小值,有很明显的转移
最后的求\(n+1\)的操作太妙了,记住
update 2024.7.8
重新做一遍,还是想到了二分和DP,却不知道怎么判断。。。
因为在DP的时候,太关注两个部分了(选出来的第一部分和第二部分都想要不超过\(s\)),这里就告诉我们,可以将其中一个部分当做限制条件
update 2024.8.28
重新做一遍,做出来了;但是设的是\(f[i]\)表示前\(i\)个数满足题目条件的第一个值的最小值,也就是第\(i\)个数可以选也可以不选;仍然可以做
像这种在满足一个条件的前提下去做题,可以记住(因为两个条件不好同时满足,所以在满足一个条件的前提下去最优化另一个条件)