上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 14 下一页
摘要: dp[i][j]表示最后一位是$b_i[i]$,倒数第二位是$b_i[j]$的最长序列长度。那么dp[i][j]=dp[j][k]+1($b_i[i]$==$b_i[i]$)其他情况dp=2。 阅读全文
posted @ 2020-03-19 11:10 LORDXX 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 令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) 编辑
摘要: 因为x\^k=y,x^x=0,所以求出异或前缀和,$sum_i$\^k=$sum_j$,则区间i+1到j,异或值=k。所以我们运用莫队进行统计,唯一的问题在于,这次维护的区间l\~r,表示的l+1~r的值,所以莫队维护的区间是左开右闭。 阅读全文
posted @ 2020-03-17 22:47 LORDXX 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 可以观察到,因为我们答案是通过MEX函数得到,那么假设,当前MEX的值是p,那么这时候一共有1+2+3+4...+p 1个与$c_1$,$c_2$,$c_3$...$c_p 1$相同,一共是p (p 1)/2个数字,那么MEX值一定不超过$\sqrt n$。故暴力能统计答案。 对于有修改的询问,我们 阅读全文
posted @ 2020-03-17 18:05 LORDXX 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 令dp[u]表示,以u为节点,向下走的路径数目。一次dfs能够做完。再令f[u]表示,以u为节点,向上走需要的代价。 对于u的子节点v,计算v向下走的代价,计算v向上走的代价。 向上走的代价=(u去掉v向下走的代价+f[u]) 所以f[v]=(u去掉v向下走的代价)+f[u] 阅读全文
posted @ 2020-03-17 11:02 LORDXX 阅读(71) 评论(0) 推荐(0) 编辑
摘要: bitset优化背包 阅读全文
posted @ 2020-03-17 09:48 LORDXX 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 曼哈顿最小树。 阅读全文
posted @ 2020-03-16 20:42 LORDXX 阅读(78) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 14 下一页