05 2020 档案

摘要:可以先去考虑没有1×1的砖块的情况,对于最后一个位置只有两种情况,一个是竖着用一块砖铺设2×1,另一个为横着用两块砖铺设2×2。 设没有1×1的砖块的情况铺2×n的路的方案数为Fn,根据上面的分析得$F_ 阅读全文 »
posted @ 2020-05-30 23:21 lhm_liu 阅读(226) 评论(0) 推荐(0) 编辑
摘要:考虑用费用流解决本题。 每个哨站看作一个点,并将其拆为两个点,建图方式为: Sxi 容量为1,费用为0 xiT 容量为1,费用为w \(x_i \longrightarrow x^\prime_j 阅读全文 »
posted @ 2020-05-27 00:20 lhm_liu 阅读(195) 评论(0) 推荐(0) 编辑
摘要:可以分别枚举两人正面朝上的次数来统计答案,所求即为: i=0aj=0b(ai)(bj)[i>j]i 替换为 i+j 来保证 i>j: \[ \large\sum_{i= 阅读全文 »
posted @ 2020-05-22 23:24 lhm_liu 阅读(374) 评论(0) 推荐(0) 编辑
摘要:考虑用分块解决这个题,一次交换对当前逆序对个数的影响是,加上两倍的在区间[l+1,r1]中比ar小的元素个数,减去两倍的在区间[l+1,r1]中比al小的元素个数,再根据alar的大小关系决定这两个位置对答案的影响。 可以用vector来维护每个块内元素有序 阅读全文 »
posted @ 2020-05-14 00:25 lhm_liu 阅读(239) 评论(0) 推荐(0) 编辑
摘要:题意可以转化为是否能找一条从uv的路径,经过的边的ab的最大值恰好都是询问所给定的值。 若只有a的限制,可以将询问离线,对边和询问都从小到大排序,然后双指针维护当前合法的边,用并查集维护连通块的最值和连通性。 现在有ab的限制,考虑对边分块,先对所有边按a从小到 阅读全文 »
posted @ 2020-05-13 00:06 lhm_liu 阅读(443) 评论(0) 推荐(0) 编辑
摘要:考虑若只有查询操作,那么就可以构造Kruskal重构树,然后在线询问了,也可以更简单的把询问离线,把询问和边都按权值从大到小排序,然后双指针依次加入对于当前询问合法的边,用并查集维护每个点的答案即可。 现在加上修改操作,考虑可以对所有操作分块,对块内所有询问操作排序,和之前的离线做法一样,用双指 阅读全文 »
posted @ 2020-05-12 17:02 lhm_liu 阅读(337) 评论(0) 推荐(0) 编辑
摘要:先考虑狼形,其只能走编号小于R的点。若将每条边赋边权为其两端点编号的较大值,然后按最小生成树的顺序构建Kruskal重构树。 那么从原图的一个点x在树上倍增,到达满足要求且深度最浅的节点,该节点子树内所有原图中的点,狼形从x都能到达。 同样的,人形构建重构树就是边权为两端点编号的较小 阅读全文 »
posted @ 2020-05-10 19:04 lhm_liu 阅读(323) 评论(0) 推荐(0) 编辑
摘要:用Kruskal构建生成树的顺序来构建Kruskal重构树 两个连通块合并时,新建一个节点,点权为联通这两个连通块边的边权,新节点向两个连通块的根连边,新节点为合并后的连通块的根 得到的树为有n个叶子节点的二叉树,其满足堆的性质 求一个点x在只经过边权不大于v的边所能到达的点。边 阅读全文 »
posted @ 2020-05-08 00:30 lhm_liu 阅读(188) 评论(0) 推荐(0) 编辑
摘要:考虑原序列中的每一个值作为构成最终答案的那个次大值,那么其所在的合法区间最大时,其对答案的贡献最大。 一个值作为最大值时有两个合法的最大区间,一个是左边第二个比其大的位置和右边第一个比其大的位置构成的区间,另一个是左边第一个比其大的位置和右边第二个比其大的位置构成的区间,这两个区间都是开区间。确定区 阅读全文 »
posted @ 2020-05-02 18:55 lhm_liu 阅读(199) 评论(0) 推荐(0) 编辑
摘要:首先考虑可以用二分答案来解决询问,可以二分一个长度len,若在区间[xlen,x+len]内包含了所有k种的商店,那么这个len就是合法的,可以通过二分来求其最小值。 对每个商店的存在时间转化为在a时刻出现,在b+1时刻消失,然后和询问一起离线按时间排序,就可以解决时间这一 阅读全文 »
posted @ 2020-05-01 00:17 lhm_liu 阅读(191) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示