摘要:
Codeforces Round 975 (Div. 2) A~F 题解(Div.1 A~D) 也是补完整场了。 A. Max Plus Size 枚举最大值的位置,使长度最长,更新答案。 B. All Pairs Segments 每个线段内部的点的答案都是一样的,在处理一下线段两边边界的点。被包 阅读全文
摘要:
高维前缀和 首先考虑最普通的一维前缀和, 可以写成这样: for (int i = 1;i <= n;i++) sum[i] += sum[i-1]; 二维也很简单: for (int i = 1;i <= n;i++) for (int j = 1;j <= n;j++) sum[i][j] += 阅读全文
摘要:
学习链接 学习链接 应用条件 选择恰好 个物品,求最优值 设 对应最优值 , 在图像上呈现为凸包。 无数量限制问题简单可做 问题转化 有 个物品,恰好选 个,计算最优值。 做法 例题 模版题:P2619 阅读全文
摘要:
定义 节点由两个集合组成,且两个集合内部没有边的图 性质 无奇环 每条边都是从一个集合走向另一个集合。 二分图判定 使用染色法。 进行 ,为图进行黑白染色,若可以完成则该图是二分图。 bool vis[N];//0:未染色,1:黑色,2:白色 bool flag= 1; void df 阅读全文
摘要:
CF2008 G. Sakurako's Task 纪念第一次场上切的一道 G 题,想了 多分钟。 题意 给定数组 ,可以进行任意次操作:选定 , 可以操作 或 \(a_i \leftarrow a_i-a_ 阅读全文
摘要:
树上问题若干 树上差分 即在树上进行差分。 例题 1 (点差分) P3128 [USACO15DEC] Max Flow P 题意:对树上一条路径 + 1,求最大点权值。 做法 设操作 s -> t 路径,则设差分数组 , 操作为 d[s]++,d[t]++,d[lca(s,t)]--,d 阅读全文
摘要:
换根DP学习博客 https://www.luogu.com.cn/article/wdk0q56f 一个粗暴的模板。 void dfs(int x,int fa) { for (auto y : v[x]) { if (y == fa) continue; dfs(y,x); } } 树上背包 指 阅读全文
摘要:
势能线段树学习博客 The Child and Sequence 修改为区间取模,维护区间和。 做法是线段树上,当前区间max若小于模数,则直接跳过。 可以发现取模这一操作不会超过 次有效操作。 因为 证明如下 : \(b > a/2,则a 阅读全文
摘要:
学习链接 oiwiki 定义 判别方法 注意是要边联通,有孤立点也可以有欧拉路 P7771 【模板】欧拉路径(有向图) P7771 【模板】欧拉路径 #include<bits/stdc++.h> using namespace std; #define ll long long #define I 阅读全文
摘要:
https://www.acwing.com/solution/content/135911/ oi-wiki扫描线 放个模板先 P5490 【模板】扫描线 #include<bits/stdc++.h> using namespace std; #define ll long long #defi 阅读全文