枚举矩形上边界和下边界 i,j,然后枚举每一列 y,且必须当前列上有 h 牛,然后向右枚举直到遇到有 g 牛的列,更新最大值。注意要离散化一下坐标,再处理一下二维前缀和,时间复杂度 O(n3)。
状压dp,设 fi 表示当前集合为 i 时,要连续看多久电影,然后枚举不在集合 i 中的电影 j,二分找到 j 中的第一个开始时间小于 dpi 的场次,转移即可,时间复杂度 O(2nnlogc)。
先缩点,设 s 为 1 所在的强连通分量,跑从 s 出发和到 s 的最长路。
因为只能逆行一次,所以回到 1 肯定是从1 出发到一个点 u,再从 u 逆行到一个能到 1 的点 v,所以枚举这一条逆行的边,答案即为 max(f[u][0]+f[v][1]+e[u][v]−cnt[s])。
作者:wyyqwq
出处:https://www.cnblogs.com/wyyqwq/p/18385313
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
怎么没人点赞呜呜
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步