摘要:
传送门 思路: 设 f[ i ][ j ] 为第 i 节,切到第 j 段的最大恶心值。 枚举 左端点 j ,右端点 i ,段数 k → 转移: f [ i ][ k ] = max ( f [ i ][ k ],f [ j ][ k -1 ] + sum [ j ~i ])。( sum [ j~i 阅读全文
摘要:
传送门 思路: 先按学分从大到小排序,根据贪心的思想尽可能地让作业的完成时间延后,这样就能有更多空间给那些限制比较严格的作业 设 f [ i ] 为点 i 向左的最小空闲时间 对于一个限制 t 的作业,我们将它放在 f [ t ] 上,同时使 f [ t ] = f [ t ] - 1(表示这个时间 阅读全文
摘要:
传送门 思路: 看到村庄的数目 ≤ 200,很显然可以用 floyd 来做。 但如果对于每次询问时间 t 都暴力地跑一遍 floyd ,时间复杂度为 n4 ,只能拿到 50 分。 所以,要考虑一下如何优化 。。。 因为每个村庄的 t [ i ],及询问 ( x , y , t ) 中的 t 都是不下 阅读全文
摘要:
传送门 思路: ① 可以把每个学生都看作点,而那些实力相同的学生就处在同一个连通块内,因为连通块内的同学要么都取,要么不取,所以可以将连通块缩成一个点。只需用并查集维护每个连通块的大小。 ② 接着采取神奇的可行性DP:用 f[ i ] 判断选出 i 个学生的方案是否可行。可行就转移 。 伪代码: 初 阅读全文