摘要: 看这篇题解 对这篇题解做一些解释 首先看到这道题目,时间范围很大,所以我们先考虑如何对区间进行排序,但是你会发现无论是按照左端点排序还是按照右端点排序,都很难DP下去,所以我们只能对时间排序,然而时间非常大,要对时间进行排序,就必须要离散化(这里启发我们,不要太固定思维觉得大的时间无法排序),设离散 阅读全文
posted @ 2024-02-29 19:55 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 看这篇题解 update 2024.7.5 重新做了一遍题目,差一点做出这道题目了 我的想法是,先考虑所有村庄都要赔偿,然后考虑在哪些村庄安装基站可以得到最多的退款 但是这样显然也要知道最后一个基站建在哪里,但是我们显然不能再开一维表示最后一个基站建在哪里,所以只能认为最后一个基站就建在最后一个村庄 阅读全文
posted @ 2024-02-29 17:57 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 应用DFS序非常好的一道题目 首先考虑暴力如何做,我们先考虑删除的点\(a\)在\(x\)下方,那么就相当于移除\(a\)的子树,由于与子树有关,所以可以想到DFS序 设\(in[a]\)表示DFS序中\(a\)第一次出现的位置,\(out[a]\)表示DFS序中\(a\)第二次出现的位置 当\(x 阅读全文
posted @ 2024-02-29 16:51 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 比赛遇到这种题目不要惊慌,一般都是用贪心 由于是序列操作题目,我们没有太多的办法,不可能把所有的情况都列举出来,所以根据贪心一般都有一个操作的顺序 这里我们按照\(b_i\)单调递增地操作,循环到某个\(b_i\)时,我们考虑\(a_i\)对应的数是多少,如果\(a_i<b_i\),我们考虑如何将\ 阅读全文
posted @ 2024-02-29 12:48 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 这道题目看官解就好了,但解释一下为什么当\(k=2\)时,只用考虑\(v\)的前驱和后继 当操作出\(v\)之后,如果不是考虑的前驱和后继,那么第二次操作一定不包括\(v\),而是原来序列就有的两对数,这个时候可以选择在第一次操作操作这两对数去考虑,不会丢失答案 update 2024.7.13 重 阅读全文
posted @ 2024-02-29 12:21 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑