上一页 1 2 3 4 5 6 ··· 11 下一页
摘要:矩阵快速幂 按列递推 cpp include include include include include include define ll long long using namespace std; const int MOD = 10000007; int n, m; struct Mat 阅读全文
posted @ 2018-03-30 19:40 Mr_Wolfram 阅读 (27) 评论 (0) 编辑
摘要:矩阵分治 注意不要用 ( this) 会改变原值 cpp include include include include include include using namespace std; int n, p, k; struct Matrix{ int num[35][35]; void cl 阅读全文
posted @ 2018-03-30 15:37 Mr_Wolfram 阅读 (39) 评论 (0) 编辑
摘要:树的直径 树的直径有两种求法 1.两遍 dfs 法, 便于输出具体方案,但是无法处理负权边 2.DP 法,代码量少,可以处理负权边 cpp include include include include include include using namespace std; const int M 阅读全文
posted @ 2018-03-29 16:43 Mr_Wolfram 阅读 (42) 评论 (0) 编辑
摘要:最优比率生成树 01 分数规划与MST的结合,注意总成本与总长度比值最小,不等价于总长度与总成本比值最大 阅读全文
posted @ 2018-03-29 15:09 Mr_Wolfram 阅读 (22) 评论 (0) 编辑
摘要:最短路 + 矩阵快速幂 我们可以改进矩阵快速幂,使得它适合本题 用图的邻接矩阵和快速幂实现 注意 dis[i][i] 不能置为 0 cpp include include include include include include using namespace std; struct edge 阅读全文
posted @ 2018-03-28 19:33 Mr_Wolfram 阅读 (47) 评论 (0) 编辑
摘要:floyd求无向图最小环 +输出路径 注意保存原来的边, 求最小环的时候要用 cpp include include include include include include include using namespace std; int n, m, dis[105][105], ans = 阅读全文
posted @ 2018-03-28 15:18 Mr_Wolfram 阅读 (24) 评论 (0) 编辑
摘要:最短路 因为有负权边,所以不能 dijkstra ,本题数据还卡 SPFA 但是我们发现,有负权的都是有向边,而且如果把无向边连成的联通块看成一个点的话,有向边就连成了一个 DAG,所以我们可以对所有的联通块用dij求最短路 在 DAG上用拓扑序求最短路 注意: 堆优化的 Dijkstra 在定义的 阅读全文
posted @ 2018-03-27 21:21 Mr_Wolfram 阅读 (47) 评论 (0) 编辑
摘要:二分答案 首先,最大值最小,就是二分答案 cpp include include include include include include include using namespace std; const int MAXN = 10005; int head[MAXN], nume, n, 阅读全文
posted @ 2018-03-27 16:31 Mr_Wolfram 阅读 (34) 评论 (0) 编辑
摘要:莫比乌斯函数 cpp include include include include include define ll long long using namespace std; const int MAXN = 500005; int T, a, b, k, miu[MAXN], prime[ 阅读全文
posted @ 2018-03-27 09:33 Mr_Wolfram 阅读 (42) 评论 (0) 编辑
摘要:可重集的排列数 + 容斥原理 对于 $\{A_1 C_1, A _2 C_2, \cdots, A_n C_n\}$这样的集合来说, 设 $N = \sum_{i = 1} ^ n A_i$, 要在这个集合中取出 $M$ 个元素来,这样的方案数是: $$ C _ {N+M 1}^{N 1} \sum 阅读全文
posted @ 2018-03-26 20:50 Mr_Wolfram 阅读 (47) 评论 (0) 编辑
摘要:期望DP 本题递推比较麻烦,可以记忆化搜索 注意搜索的边界条件 以及每一次转移 阅读全文
posted @ 2018-03-26 15:17 Mr_Wolfram 阅读 (68) 评论 (0) 编辑
摘要:期望 被精度坑惨的我 注意:能开 long long 尽量开, 先除后乘, int 转 double 的时候 先转换在做运算 本题与位运算有关,位与位之间互不影响,所以我们可以分开考虑 cpp include include include include include using namespa 阅读全文
posted @ 2018-03-25 21:43 Mr_Wolfram 阅读 (65) 评论 (0) 编辑
摘要:01 分数规划 利用实数域下的二分答案来解 阅读全文
posted @ 2018-03-25 20:04 Mr_Wolfram 阅读 (23) 评论 (0) 编辑
摘要:卢卡斯定理 注意特判底数和模数相等的情况 http://www.cnblogs.com/poorpool/p/8532809.html cpp include include include include include define ll long long using namespace st 阅读全文
posted @ 2018-03-24 09:41 Mr_Wolfram 阅读 (40) 评论 (0) 编辑
摘要:当 p 为质数时 $$c_m^n \equiv c_{m\%p}^{n\%p} c_{m/p}^{n/p}\pmod p$$ 模版,注意这其中的逆元求法 cpp include include include include include define ll long long using nam 阅读全文
posted @ 2018-03-23 20:25 Mr_Wolfram 阅读 (37) 评论 (0) 编辑
摘要:"题解" cpp include include include include include define ll long long using namespace std; const int MOD = 1e9 + 9, MAXN = 100005; int T, n, num[MAXN], 阅读全文
posted @ 2018-03-23 14:46 Mr_Wolfram 阅读 (67) 评论 (0) 编辑
摘要:逆序对 n 数码问题的扩展 对于一个n m 的问题来说,结论和 列数 m 奇偶有关 对于 m 是奇数来说 , 两个局面互相可达,当且仅当这两个局面按顺序写成一个数列,这个数列的逆序对数的奇偶性相同 对于 m 是偶数来说, 两个局面互相可达,当且仅当这两个局面按顺序写成一个数列,这个数列的逆序对数的差 阅读全文
posted @ 2018-03-22 19:41 Mr_Wolfram 阅读 (68) 评论 (0) 编辑
摘要:状压DP cpp include include include include include define ll long long using namespace std; const int MAXN = 3000; bool f[MAXN]; ll dp[14][MAXN], n, m; 阅读全文
posted @ 2018-03-22 14:52 Mr_Wolfram 阅读 (21) 评论 (0) 编辑
摘要:贪心 cpp include include include include include using namespace std; const int MAXN = 50005; int init() { int rv = 0, fh = 1; char c = getchar(); while 阅读全文
posted @ 2018-03-21 15:10 Mr_Wolfram 阅读 (37) 评论 (0) 编辑
摘要:贪心 首先以 miSPF 为关键字降序排列,然后对于每一头奶牛寻找满足范围的 SPF 值最大的防晒霜用, 我们发现,因为已经按最小值降序排列,所以对于下界来说若当前奶牛满足,之后的奶牛肯定满足,对上界来说, 对于 SPF[x] include include include include usin 阅读全文
posted @ 2018-03-21 11:32 Mr_Wolfram 阅读 (32) 评论 (0) 编辑
上一页 1 2 3 4 5 6 ··· 11 下一页