摘要: 时间复杂度O(n+mlogn) vector<int>e[maxn]; int fa[maxn],dep[maxn],son[maxn],sz[maxn]; // 存u的父节点,存u的深度,存u的重儿子,存以u为根的子树的节点数 int top[maxn]; // 存u所在重链的顶点 void df 阅读全文
posted @ 2025-03-12 20:34 Marinaco 阅读(12) 评论(0) 推荐(0)
摘要: 离线算法:适用于无向图,(query建无向边) 利用并查集+DFS 时间复杂度O(n+m) vector<int>e[maxn]; vector<pii>query[maxn]; int fa[maxn],vis[maxn],ans[maxn]; int find(int u){ if(u==fa[ 阅读全文
posted @ 2025-03-12 20:03 Marinaco 阅读(18) 评论(0) 推荐(0)
摘要: 题目链接:https://atcoder.jp/contests/abc396/tasks/abc396_f 题意: 给定一个序列A,构造m个序列B,其中第i个序列第j个值为Bj= (Aj + i-1) %m 询问每个Bj的逆序对数目 思路: 由于模了m,所以一开始的序列每个元素的大小在[0,m-1 阅读全文
posted @ 2025-03-12 19:20 Marinaco 阅读(50) 评论(0) 推荐(0)
摘要: 题目链接:https://www.luogu.com.cn/discuss?forum=P1106 题意: 给定一个长整数,删去其中k个数,使最终的数最小 思路: 发现从左至右,如果一个数大于后面相邻的那一个数,则贪心地想将这个数删掉会使答案更优 删除某个数可以用字符串函数 s.erase(i,1) 阅读全文
posted @ 2025-03-12 15:56 Marinaco 阅读(43) 评论(0) 推荐(0)
//雪花飘落效果