摘要:
UVA_125 由于a->b的路径条数等于a->i与i->b的路径条数的乘积之和,因此在用floyd的过程中我们就可以算出a->b之间的路径条数,同时,如果a->b有无线条路径的话,那么一定存在a->b路径上的某点k使得f[k][k]!=0的。#include<string.h>#include<stdio.h>#define MAXD 110int M, N, f[MAXD][MAXD];void init(){ int i, j, a, b; N = 0; memset(f, 0, sizeof(f)); for(i = 0; i 阅读全文
摘要:
HDU_3879由于最终收益=所有可能收益-(损失的收益+架设费用),因此我们可以转而用最小割去求损失的收益与架设费用之和。在建图的时候源点与用户相连,容量为每个用户带来的收益,架设点与汇点相连,容量为架设每个点所需的费用,之后将用户需要的两个点与该用户相连,容量为INF。建好图之后,左边的流量就代表损失的收益,右边的流量就代表架设费用之和,之后求此图的最小割即可。#include<string.h>#include<stdio.h>#define MAXD 60000#define MAXM 400000#define INF 1000000000int first[ 阅读全文