摘要: 令dp[i]表示长度为i,最少费用。 可以发现,当且仅当i为偶数的时候,dp[i]=min{dp[i/2]+y}。当为奇数的时候,dp[i]=min{dp[i+1]+x,dp[i 1]+x}。因为这个更新直接做不好做。我们考虑倍增。因为i从0开始,一开始一定dp[1]=x。所以考虑1\~2区间,2\ 阅读全文
posted @ 2020-03-18 21:33 LORDXX 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 首先可以发现,若是后手能赢,那么先手取后手的值,一定能赢,所以首先排除后手胜。 对于平局,当且仅当,所有异或值为零,无论怎么取,双方均相等。剩下的便是先手胜利。 阅读全文
posted @ 2020-03-18 21:17 LORDXX 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 分块+floyd 令dp[i][j][k]表示i到j恰好k条路经的最小权值。那么就有:dp[i][j][k]=min{dp[i][p][k 1]+dp[p][j][1]}我们可以预处理出前100条路径的dp值。然后考虑大范围转移,对dp[i][j][100]做一次floyd转移到200,再做一次转移 阅读全文
posted @ 2020-03-18 21:14 LORDXX 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 状压dp,先记录偶数状态,然后直接暴力转移即可。 阅读全文
posted @ 2020-03-18 21:05 LORDXX 阅读(75) 评论(0) 推荐(0) 编辑