摘要: 数据结构 加入的元素单调:队列代替堆 [NOIP2004提高组] 合并果子 [NOIP2016提高组] 蚯蚓 前缀询问后缀修改:维护关键前缀的答案 2021CCPC Harbin L 后缀操作:栈 CF1849E 2021CCPC Harbin L 询问 [l,r] 信息 从 \([l,r- 阅读全文
posted @ 2023-09-21 20:12 ft61 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 数据结构 n 是点数还是值域:权值 BIT 可持久化的根也是新建结点 trie 注意传的深度是父边还是子边 标记永久化记得累加 并查集输出方案注意点还是根 DP 奇偶相互转移时奇数的初值为不合法 图论 拓扑排序先更新信息后判 !--deg 拆点后算总点数 数学 计数题不取模考虑是否需要 __ 阅读全文
posted @ 2023-07-18 10:23 ft61 阅读(61) 评论(0) 推荐(0) 编辑
摘要: uoj675 加强:k6×105 暴力 ust 路径上 正图上 su 且反图上 ut 时间复杂度 O((n+m)q) 正解 只关 阅读全文
posted @ 2024-09-10 20:00 ft61 阅读(25) 评论(0) 推荐(0) 编辑
摘要: https://codeforces.com/problemset/problem/2002/D2 考虑找一个容易维护的必要条件,再证明充分性。我们希望这个条件在 swap 后需要重新 check 的不多 每个子树对应一个区间,子树根位于左端点 父子 自下而上地 check 每个子树都合法 父子 \ 阅读全文
posted @ 2024-09-07 22:51 ft61 阅读(37) 评论(0) 推荐(0) 编辑
摘要: gym D. Balanced Array 赛时做法 枚举前缀维护合法的 k 感性上 k 越大需要满足的式子越少,只保留最大的 logk,可以通过 std 枚举 k,合法的 l 一定是一个左端点为 2k+1 的区间, 阅读全文
posted @ 2024-09-04 20:56 ft61 阅读(281) 评论(0) 推荐(0) 编辑
摘要: CF2002E Cosmic Rays 顺着询问想增加二元组 (a,b) 的影响。只需要考虑它的合并情况,即尾部什么时候会出现数字 b,而总时间可以看作是最后一个尾部的存在时间,所以我们只需要关心尾部 用栈维护尾部的数值和存在时间(不难发现这是一个单调栈) vec 阅读全文
posted @ 2024-09-03 19:33 ft61 阅读(13) 评论(0) 推荐(0) 编辑
摘要: CF1995D Cases 显然如果选了某个字符那么不妨选它出现的所有位置。check 方式等价于相邻两个选择的位置间距 k,等价于连续 k 个必须选一个(最后一个必须选) 枚举位置维护字符集是做不了的,状态数 O(n2c) 无法优化 考虑枚举字符集 s。设 阅读全文
posted @ 2024-09-02 20:58 ft61 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 题意 uoj768 构造长为 n 的序列 a,满足 m 条限制:minj=LiRi{aj}=Vi,要求逆序对数最少 n,m106 题解 21pts 暴力 先进行一些观察: 逆序对只关心相对大小,所以 \(\forall a_j 阅读全文
posted @ 2024-09-01 11:42 ft61 阅读(27) 评论(1) 推荐(0) 编辑
摘要: https://ac.nowcoder.com/acm/contest/88848#question https://ac.nowcoder.com/discuss/1367191?type=101&order=0&pos=2&page=0&channel=-1&source_id=1 mgj 上次 阅读全文
posted @ 2024-08-31 17:00 ft61 阅读(36) 评论(0) 推荐(0) 编辑
摘要: https://ac.nowcoder.com/acm/contest/81601#question B - Cake 2 考虑平面图欧拉定理:VE+F=2 每条线段相交的数量可以由小的那一侧顶点数推出,kn2 时有 \(V=2\min(k-1,n-k-1) 阅读全文
posted @ 2024-08-29 22:09 ft61 阅读(27) 评论(1) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2024-08-24 22:55 ft61 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 数据结构 树 权值 BIT 上二分 struct { int n,t[N]; void add(int i,int x) { for(;i<=n;i+=i&-i)t[i]+=x; } int sum(int l,int r) { int res=0; for(--l;r>l;r-=r&-r)res+ 阅读全文
posted @ 2024-08-17 22:49 ft61 阅读(25) 评论(1) 推荐(0) 编辑
点击右上角即可分享
微信分享提示