摘要: "LINK" 定义了一种函数f 对于一个数组b 当长度是1的时候是本身 否则是用一个新的数组(长度是原数组 1)来记录相邻数的异或,对这个数组求函数f 大概是这样的: $f(b[1]⊕b[2],b[2]⊕b[3],…,b[m−1]⊕b[m])$ 然后q次询问每次问一个区间的子区间里面最大的连续段的f 阅读全文
posted @ 2018-11-06 20:45 Dream_maker_yk 阅读(157) 评论(0) 推荐(0) 编辑
摘要: "LINK" 每次删除一个数,代价是左右两边相邻的数的当前数的积 第一个和最后一个数不能删除 问最后只剩下第一个数的最后一个数的最小代价 思路 很简单的DP 正着考虑没有办法确定两边的数 那么就把每个区间内最后一次删除的数枚举出来,就可以确定左右两边的点是什么了 感觉挺对的 $dp_{i,j}$表示 阅读全文
posted @ 2018-11-06 20:17 Dream_maker_yk 阅读(172) 评论(0) 推荐(0) 编辑
摘要: "LINK" solution 很简单的题 你就考虑实际上是对每一个边求出两端节点分别在两个子树里面的附加边的数量 然后这个值是0第二次随便切有m种方案,如果这个值是1第二次只有一种方案 如果这个值是2或者更大没有方案 然后就可以直接统计答案了 那么就对每一次查询的边 在两个节点++,lca处 2就 阅读全文
posted @ 2018-11-06 18:52 Dream_maker_yk 阅读(289) 评论(0) 推荐(0) 编辑