摘要:
Sol 注意到如果多个间谍在一个 scc 内,那么显然只需要买通一个就行了,那么缩点之后的权值就是缩点前里面点权值的最小值。 然后求出入度为 \(0\) 的点的权值之和即可(缩点以后的)。 Code #include <bits/stdc++.h> #define x first #define y 阅读全文
摘要:
Sol 线段树优化建图板子。 跑完建图以后就 tarjan 以下跑个最长路就行了。 Code #include <bits/stdc++.h> #define x first #define y second #define pb push_back #define pf push_front #d 阅读全文
摘要:
Sol 考虑莫队。 首先不难想到用 BIT 维护,查询修改都是 \(O(\log n)\) 的,时间复杂度 \(O(q\sqrt{n}\log n)\),不幸的是,它 TLE 了。 考虑把 BIT 换成别的数据结构,观察修改和查询次数的数量级,不难发现修改次数比查询次数多得多,那么考虑修改快,但是查 阅读全文
摘要:
Sol 直接建立两颗可持久化线段树,一个维护以 dfn 为下标的数,这个是为了做子树异或,一个做根到当前点的,这个是为了做链上异或。 Code #include <bits/stdc++.h> #define x first #define y second #define pb push_back 阅读全文
摘要:
Sol 直接一位一位贪,判断贪完之后是否能放满 \(k\) 个即可。 这个东西我们只需要维护一个区间里面最多能取几个,然后 set 维护当前没选的段即可。 Code #include <bits/stdc++.h> #define x first #define y second #define p 阅读全文