題意: 乙個無向圖,每條邊距離為1,從n走到1,的最短路。。然後每個路有個價值,求一下最小割
思路:裸題。。手殘bfs總是寫錯,後來換成spfa列舉一下就好了。。注意!!!新圖建單向邊來跑最短路。
**:#include #include #include #include #include #include using namespace std;
const int maxn=1100;
int maze[maxn][maxn];
int zdis[maxn];
int vis[maxn];
int gap[maxn],dis[maxn],pre[maxn],cur[maxn];
const int inf=1e9+7;
struct edge
};struct t
};int tmp[maxn];
vectore[maxn];
vectorz;
void addedge(int u,int v,int w)
void add(int u,int v,int w)
int cnt[maxn];//每個點的入佇列次數
int dist[maxn];
int n,m;
bool spfa(int start,int n)}}
}return true;
}void init()
int sap(int start,int end,int nodenum)
aug=-1;
}goto loop;
}int mindis=nodenum-1;
for(int v=0; vdis[v])
if((--gap[dis[u]])==0)break;
gap[dis[u]=mindis+1]++;
u=pre[u];
}return maxflow;
}int main()
{ int t;
cin>>t;
while(t--){
scanf("%d%d",&n,&m);
int a,b,c;
init();
for(int i=0;i
zoj 2760 最短路 網路流
題意 求乙個有向圖起點到終點的邊不相交的最短路徑的條數。思路 曾經乙個求最短路的類似,這題你找出來所有的最短路所包含的邊就可以,然後跑一邊網路流即可 include using namespace std const int maxn 400 const int maxm 160000 const ...
網路流24題 汽車加油行駛 最短路
為什麼網路流24題裡會有最短路 原題走這裡 題目描述比較繁瑣,重點在於如何建圖 題目中乙個重要的點就是 加滿油後可以行駛k格 可以將其視作為讓汽車油量變為k,汽車每走一格就消耗一單位油,沒油時就要再加油 k 10一看就知道是分層圖最短路 1 k每一種油量建一層圖 每走一格就會少一單位油,也就是連到下...
網路流 24 題 孤島營救問題 最短路
題意 給你乙個n m的圖,你要從 1,1 出發到達 n,m 路上會有最多p種牆和鑰匙。接下來會給你k個門,在x1,y1,x2,y2之間會有一扇ki型別的門,如果ki為0,那麼無法穿過,否則你要拿到對應ki的鑰匙才可以穿過,同理接下來會有s把鑰匙,這些鑰匙在xi,yi處,型別為ki。每走一步需要1的時...