大致题意是说给出位置1~n,以及m个闭区间,在每个位置上放置0或者1,要求每一个闭区间至少包含一个1,求合法的放置方案总数()。 笔试的前面四题都很好解决,当时对第五题干想了很久没有思路,最后部分分也没骗出来。作为前ACMer感觉有点失落,又抽空花了几小时想了想,总算可以给一个解法。 首先按区间的右端点进行从小到大排序,右端点相同的情况下左端点从大到小排序。接着排除发生区间包含的情况(如果出现包含,显然只需要保留被包含的区间即可),即排序后遍历,去掉让左端点不递增的区间。于是筛选后的所有个区间,只会出现区间交叉的情况,左端点和右端点都是严格递增的。 现在我们考虑二维dp(当时一直没往二维状态上...