摘要:
```#include#include#include#includeusing namespace std;const int N = 1000+10;const int M = 500+10;int n,m;int map[N][M],vlink[M],link[M][N],max_cap;bool vis[M];int path(int s) { for(int i=0; i>1; //... 阅读全文
摘要:
``` #include #include #include #include using namespace std; #define N 510 int vis[N], match[N], maps[N][N], n, ans; void floyd() { for(int k=1; k<=n; k++) for(int i=1; i<=n; i++) for(int j=1; j<=n; j 阅读全文
摘要:
```#include #include using namespace std;typedef long long int ll;const int maxn=101010;int e[maxn],ne[maxn],h[maxn],idx;int N, M;void add(int a,int b){ e[idx]=b; ne[idx]=h[a]; h[a]=idx++;}bool vis[ma... 阅读全文
摘要:
```#include#include#include#includeusing namespace std;#define N 10100int vis[N], h[N], used[N], maps[1510][1510], n, ans;int e[N],ne[N],idx; void add(int a, int b){ e[idx]=b; ne[idx]=h[a]; h[a]=idx++... 阅读全文
摘要:
```#include#include#include#include#includeconst int MAXN= 500000;//最大顶点数const int MAXM = 11000;//最大边数const int INF=0x3f3f3f3f;using namespace std;bool used[MAXN];int linker[MAXN],index[500][500];int ... 阅读全文
摘要:
匈牙利 阅读全文
摘要:
```//HK算法模板题 #include #define inf 0x3f3f3f3fconst int maxn=3030;using namespace std;int e[maxn*maxn],ne[maxn*maxn],h[maxn*maxn],idx;struct node { double x,y,v;} a[maxn];int lx[maxn],ly[maxn],dx[maxn]... 阅读全文
摘要:
```//把矩阵按行和列缩点,格子为1的就在所在行列加边//然后二分图求最大匹配,如果是n,代表可行,小于n就输出-1#include#includeusing namespace std;typedef long long ll;const int N=100+10;int g[N][N];int match[N];bool used[N];int n;bool find(int u) { fo... 阅读全文
摘要:
```#include#include#include#includeusing namespace std;const int maxn = 1e4+5;int G[105][105];int a[maxn],b[maxn];int match[105];int st[105];int n,m,ans;bool find(int u) { for(int i = 1; i>n>>m>>k) { ... 阅读全文
摘要:
```#include#include#includeusing namespace std;const int MAXN = 2e5;int match[MAXN], st[MAXN];int n,m,p;int e[MAXN],ne[MAXN],idx,h[MAXN];void add(int a,int b){ e[idx]=b; ne[idx]=h[a]; h[a]=idx++; }boo... 阅读全文