摘要:
Aimee 这是个dp?不过没有必要用dp 毕竟显然距离为2中间一定要经过一个点,那枚举中间点即可 之后显然假设一个点所有相邻的点的点权为集合$A= { a_1,a_2,a_3······a_k}$ 显然对于这个点,和就是$\sum_{1} \sum_{1} a_i*a_j |i!=j$ 那么这样上 阅读全文
摘要:
Aimee 很显然的区间dp 字符和数字之间使用map大法进行转换即可 经典边界问题以及一点点暴力判断和优化 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<map> using n 阅读全文
摘要:
Aimee 这么个线段树版子还要解释 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define int long long using namespace std; int n,m; int f 阅读全文
摘要:
Aimee 很好想的是$f_{i,j}$表示到第i个时公差为j,显然j不需要枚举,因为无论如何都会枚举i之前的电塔的,那样的话知道了电塔也就知道的公差了 转移的时候由于边界不太好考虑,那就先不考虑单元素了 所以从2开始枚举然后边枚举边统计,最后加上n #include<iostream> #incl 阅读全文
摘要:
Aimee 最小费用是最大流基础上的 那么就用spfa代替Ek的bfs就行 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<queue> using namespace std; i 阅读全文
摘要:
根据konig定理可知 最大匹配数=最大流=最小割=最小点集覆盖 那么这个题就是一个最大流问题了 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> using names 阅读全文
摘要:
加错边权了 最大流==最小割,毋庸置疑 但是这个题删的是点怎么办 那就把每一个点拆成两个,一入一出,然后中间连一条流量为1的边,图上原有的为inf 源点和汇点则大小也为inf 不能删啊 #include<iostream> #include<cstdio> #include<algorithm> # 阅读全文
摘要:
Aimee 跳出来重新审视未注意的细节 就是输出整数aaa [斜率优化解释](https://www.luogu.com.cn/blog/hhz6830975/p3195-hnoi2008-wan-ju-zhuang-xiang-toy-xie-shuai-you-hua-ru-men-post) 阅读全文
摘要:
Aimee 矩阵加速递推的模板了。 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #define int long long #define ll long long using names 阅读全文
摘要:
矩阵乘法板子 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define int long long #define ll long long using namespace std; const 阅读全文