journal
3.1
a.m 复习 (学习) 网络流 : 最大流(最小割),费用流,最大权闭合子图
p.m(练习题目: Construction of a tree
美食节 (分层动态加点费用流:加 入当前增广的下一层边)
Biologist (操作连锁:最大权闭合子图)
总结 : 号爸那边在模拟题,然而还没有人给我发题,于是在某谷上找点网络流的题单写
感觉网络流还挺常用,就是不看题解就不知道咋建图,ww
3.2
网络流模型建立练习
(练习题目:奇怪的游戏 (SCOI2012) (二维 邻点操作黑白染色跑网络流 )
附:最大流中
if(x==t||!in) return in;// 加(!in) 会快很多(泪目)
支线剧情 (最小费用可行流:边有流量上下界—> 补流思想
80人环游世界 (对点强制要求过
add(i,i+n,m,-inf);sum+=m;
--------------------------------
while(spfa()) ret+=dis[t]*mi[t];
print(ret+sum*inf);
总结 : 充分了解算法实现原理和成效才方便建立模型以及魔改
3.4
a.m 网络流模型建立练习
(练习题目:志愿者招募 (一面对多面的转化问题 )
happiness 带限制的权值
p.m 号爸的题
棋盘游戏 (黑白染色,二分匹配 : 所有最大匹配中都被匹配的关键点 —— > 二分图最大匹配关键点)
远行 (动态维护树直径:前置知识 <u>LCT</u> 用于维护点间距离 Link Cut Tree(超强数据结构:练习题目Tree II ) )
总结 :
感觉
3.5
a.m
洞穴勘测 (
p.m 模拟赛
总结 :
int LCA(int x,int y){
if(dep[x]<dep[y]) swap(x,y);
for(int i=19;i>=0;--i) if(dep[fa[x][i]]>=dep[y]) x=fa[x][i];
if(x==y) return x;
for(int i=19;i>=0;--i) if(fa[x][i]!=fa[y][i]) x=fa[x][i],y=fa[y][i];
return fa[x][0];
}
p.m 补题
Card Deck Score 生成函数,系数推导
3.7
a.m
网络 (多颗
v[x]=___; splay(x); // 单点fix
注意出错点
vd link(int x,int y){Root(x);fa[x]=y;return;} //no xie fa[y]=x
p.m
(数组大小开
学习 : 分治FFT
多项式求逆 ( 傻XUAN看得懂的数学证明
(练习题目 : 简单计数