摘要:
枚举最小边进行kruskal。#include #include using namespace std;#define maxn 120#define maxm 10000struct edge{ int u,v,w;}e[maxm];int p[maxn],n,m;int find(int... 阅读全文
摘要:
#include #include #include #define maxn 1220double x[maxn],y[maxn],d;bool vis[maxn];int p[maxn];int n;double dist(int i,int j){ return fabs( (x[i]-... 阅读全文
摘要:
点的总数很小,直接枚举就好。#include #include #define N 20#define inf 1000000int mk[N],n,k,ans[N];double low[N],val[N];double map[N][N],MIN;double prim(){ int i,... 阅读全文
摘要:
#include#include#include#include#includeusing namespace std;const int maxn = 105;const int INF = (1t){ slack[y]=t; } } ... 阅读全文
摘要:
就是本来就给出了一个匹配,然后让你求一个权值最大的匹配,并且和初始匹配变动最小。#include #include #include using namespace std;const int N=400;const int MAXE=20000000;const int inf=10&&d[u]+... 阅读全文
摘要:
题意就是问能否将给定的几个单词全部连接起来,两个单词能连接是当前一个单词的最后一个字母等于后一个单词的首字母。还有一些单词反向也没有关系。建图,每输入一个单词,只看他的首尾字母,连接一条首字母到尾字母的有向边,如果他可以反向,那么再反向建立一条边,即该边是无向边。然后就是一个混合欧拉了。还有一个注意... 阅读全文