題目大意:由於小白同學近期習武十分刻苦,很快被晉公升為天策軍的統帥。而他上任的第一天,就面對了一場極其困難的戰鬥:
據偵查兵回報,前方共有n座城池,考慮到地勢原因,最終得到乙個結論:攻占某些城池之前必須攻占另外一些城池。
事實上,可以把地圖看做是一張拓撲圖,而攻占某個城池,就意味著必須先攻占它的所有前驅結點。
小白還做了乙份調查,得到了攻占每個城池會對他的兵力產生多少消耗(當然也可能會得到增長,因為每攻占乙個城池,便可以整頓軍隊,擴充兵力,天策軍的兵力十分龐大,如果不考慮收益,他們可以攻取所有的城池)。
現在請你幫小白統帥做乙份戰鬥計畫,挑選攻打哪些城市,使得天策軍在戰鬥過後軍容最為壯大。
解題思路:最大權閉合水題,tle有可能是你的空間開不夠
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxnode = 510;
const
int maxedge = 200010;
typedef
int type;
const type inf = 0x3f3f3f3f;
struct edge
edge(int u, int v, type cap, type flow, int next) : u(u), v(v), cap(cap), flow(flow), next(next){}
};struct dinic
void addedge(int u, int v, type cap)
bool bfs() }}
return vis[t];
}type dfs(int u, type a)
}return flow;
}type maxflow(int s, int t)
return flow;
}void mincut()
}}dinic;
int n, m, sum;
void solve()
else dinic.addedge(i, sink, -c);
}int u, v;
for (int i = 1; i <= m; i++)
printf("%d\n", sum - dinic.maxflow(source, sink));
}int main()
hdu 3061 最大流最小割
題目 中文題 最小割,增加源和匯,把源與權為正的點連上界為該點權值的邊,權為負的點與匯連上上界為該點權值相反數的邊,然後如果攻占a必須先佔b,則連上權值無窮的邊a b,所有正值之和減去最大流,即答案。include include include include includeusing names...
hdu 4322 最大費用最大流)
思路 建圖真的是太巧妙了!直接copy大牛的了 由於只要得到糖就肯定有1個快樂度,在這一點上醣的效果是等效的。所以只要考慮有特殊效果的糖的分配就可以了。當快樂的程度超過b i 時,多出來的部分就浪費了,為了使浪費盡可能少,我們用費用流加以控制,當獲得最大費用最大流的時候,這是的費用的利用率就是最高的...
hdu 查詢最大元素
problem description 對於輸入的每個字串,查詢其中的最大字母,在該字母後面插入字串 max input 輸入資料報括多個測試例項,每個例項由一行長度不超過100的字串組成,字串僅由大小寫字母構成。output 對於每個測試例項輸出一行字串,輸出的結果是插入字串 max 後的結果,如...