原创 POJ 1815 Friendship 最小割+字典序最小割集

解題思路: (1)求最小割。 把每個點i拆分爲i和i',對於原圖中每條邊(u,v)建邊( u' , v ),容量爲1;對於每個點i,建(i , i'),容量爲1。 從s'到t求一遍最小割就行了。 (2)按字典序輸出 最小割集。 先記錄好原

原创 POJ 2175 Evacuation Plan 最小費用流 消負圈

解題思路:最開始一看標準的最小費用流的思路。 求出最小費用,然後和原先的答案進行比較。 不過這鐵定會超時的,所以就死心吧... 接着從題目入手, Output的最後一句,Your plan need not be optimal its

原创 HDU 4389 X mod f(x) 數位DP

題意:求一個範圍內 能被自身每一位數字和整除的數的個數。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <q

原创 HDU 4363 Draw and paint DP

題意:一共四種顏色,將一張紙水平畫一道線,選擇一邊塗滿顏色,然後將剩下一邊畫一條豎直的線,選擇一邊塗滿顏色,不斷進行下去,直到隨意在某一時刻不再畫線或遇到最小單位1不能繼續劃分。相鄰矩形顏色不能相同,問有多少種上色方案。 題解其實都差不多

原创 POJ 1741 Tree 樹的分治

題目大意:給你一棵樹,邊有權值,問距離不大於m的點有多少對。 男人八題之五。。果然霸氣。。 最初的思路自然是O(n^2)求每對點的距離然後統計,不過這肯定會超時的。Pass。 然後就用樹形DP的思路了, 選一個點爲根節點向下遞歸, 每遞

原创 HDU 4354 Missile 樹的最大獨立集+枚舉

題意: 在一條直線上有C個城市,分別屬於N個國家,需要炸燬至少K個國家的城市,花費的金額爲兩端城市的距離,國家間有M個特殊關係,有關係的兩個國家中最多隻能摧毀一個國家的城市,關係沒有傳遞性,求所需要的最小花費,如果無法完成輸出-1。

原创 最小費用

#define INF 1e9 #define N 1000 #define M 1000100 struct Edge { int to,next,cost,flow; }edge[M]; int head[N],ip; int

原创 全局最小割

測試poj 2914 點從0到n-1 #define N 510 int map[N][N]; int sum[N];//記錄w(A,i) int v[N]; //給每個點裝個馬甲,在刪點的時候用 bool visit[N];//標記是否

原创 【轉】帶花樹(一般無向圖的最大匹配)

原文鏈接:http://fanhq666.blog.163.com/blog/static/8194342620120304463580/ 它的核心思想還是找增廣路。假設已經匹配好了一堆點,我們從一個沒有匹配的節點s開始,使用BFS生

原创 HDU 3551 Hard Problem 一般圖的最大匹配(帶花樹)

題目大意:給你一個圖,讓你取一個包含所有點和其中一些邊的子圖,使子圖中每一點的度爲給定的值。 建圖很神。 把每條邊(u,v)拆成兩個點,x , y,並在 x,y間連一條邊; 如果題目要求u點的度數爲f[u],那麼就把u拆成f[u]個點,

原创 Tarjan

int low[N],dfn[N],fa[N]; int stack[N]; int top,sig,time1; void dfs(int pos) { stack[++top]=pos; low[pos]=dfn[po

原创 LCA+RMQ

int time1; int timepoint[N],repoint[N],deep[N]; //N爲n*2 int dp[N][20]; void getdeep(int pos,int pre,int deeptemp) {

原创 雙連通分量

邊雙連通分量 int dfn[N],low[N],fa[N]; int stack[N]; int top,time1,sig; void dfs(int pos,int pre) { stack[++top]=pos;

原创 最大團 Bron–Kerbosch算法

詳細講解   http://www.cnblogs.com/yefeng1627/archive/2013/03/31/2991592.html #define N 110 //點從1到n bool g[N][N]; int qu

原创 POJ1637 Sightseeing tour 混合圖判斷歐拉回路

題目大意:給一個圖,有的邊有向,有的邊無向,問能否找到一條迴路恰好經過每條邊一次。 解題思路: 模型近似於歐拉回路了,但是邊的性質不唯一。 先回想一下有向圖的歐拉回路的判定:每個點入度等於出度。 無向圖的歐拉回路:每個點的度數爲偶數。(