06 2020 档案
摘要:模板题:hdu1711 Number Sequence hdu1686 Oulipo //字符串下标从1开始,n表示文本串的长度,m表示模式串的长度 int n,m,fail[10010]; char s[1000010],p[10010]; void get_fail(){ for(int i=2
阅读全文
摘要:最小费用流:在网络中为每条边加上一个费用,当流量固定为F时费用的最小值。 模板一:通过Bellman-Ford算法计算最短路,并且沿着最短路增广。 时间复杂度为$O(F|V||E|)$ const int maxn=1010,inf=0x3f3f3f3f; struct edge{ int to,c
阅读全文
摘要:dinic算法加上当前弧优化计算最大流 #include<bits/stdc++.h> #define LL long long #define PII pair<int,int> #define PLI pair<LL,int>;v #define lson o<<1,l,mid #define
阅读全文
摘要:匈牙利算法 模板一:使用邻接矩阵 时间复杂度$O(n^3)$ const int maxn=510; int n,m,line[maxn][maxn],match[maxn],book[maxn]; bool find(int u){ for(int i=1;i<=m;i++){ if(line[u
阅读全文
摘要:hdu2842 Chinese Rings 传送门 题意 一根木棒上穿了n枚戒指,第一枚戒指取下或者套上需要一步,第k+2枚戒指取下或者套上需要前k枚戒指取下,并且第k+1枚戒指未取下,消耗一步。求出取下n枚戒指所需要的最小步数。 题解 设取下前n枚戒指所需要的最小步数为f(n),则取下第n枚戒指需
阅读全文
摘要:hdu5418 Victor and World 传送门 题意 有一个n个顶点,m条边的图,每条边都有正权值,从1号点出发,经过每个顶点至少一次,最后回到1号点,求总权值的最小值。 1<=n<=16,1<=m<=100000。 题解 每个顶点可以重复经过,首先利用floyed计算出两个顶点之间的最短
阅读全文
摘要:单点修改,区间求和 #define lowbit(x) x&(-x) const int maxn=100010; int n,bit[2*maxn]; int query(int x){ int s=0; while(x>0){ s+=bit[x]; x-=lowbit(x); } return
阅读全文
摘要:模板一:区间增值,区间求和 模板题:hud1556 Color the ball const int maxn=100010; int a[maxn],tree[4*maxn],lazy[4*maxn]; void pushup(int o){ tree[o]=tree[o<<1]+tree[o<<
阅读全文
摘要:模板一:单点修改,区间求和 模板题:hdu1166 敌兵布阵 const int maxn=100010; int a[maxn],tree[4*maxn]; void pushup(int o){ tree[o]=tree[o<<1]+tree[o<<1|1]; } void build(int
阅读全文
摘要:hdu1176 免费馅饼 传送门 题意 有一个长度为11(标号从0到10)的数轴,n个馅饼分别在时间t掉落在点x上。有一个人在时刻0位于x=5处,每一秒可以移动到左右两端的位置并且接住那一秒掉落在相应位置的馅饼,他也可以选择不移动接住掉落在当前位置的馅饼。求出他能接到的馅饼数量的最大值。 \(0<n
阅读全文

浙公网安备 33010602011771号