亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

HDU3870-s-t平面圖最小割轉最短路

2019-11-14 09:08:44
字體:
來源:轉載
供稿:網友

具體可以參見:(參考于)

             08年OI論文周冬《兩極相通——淺析最大—最小定理在信息學競賽中的應用》

問題描述:  

                  求一個s-t平面圖當中的最小割

--------------------------------------------------------------------------------------------------------------------

分割線

算法描述

               幾個概念:

                            1,平面圖:給你的圖當中沒有相交的邊

                              2,s-t平面圖:即遠點與匯點位于平面圖的邊界

                              3,s-t平面圖最小割: 即從s-t的最大流,最大流即最小割

               幾個性質:

                                  平面圖性質

                                       1. (歐拉公式)如果一個連通的平面圖有n個點, m條邊和f個面,那么f=m-n+2 2.

                                        2, 每個平面圖G都有一個與其對偶的平面圖G* 

                                                     2.1  G*中的每個點對應G中的一個面 

                                                     2.2 對于G中的每條邊e 

                                                                            2.2.1   e屬于兩個面f1、f2,加入邊(f1*, f2*) 

                                                                           2.2.2   e只屬于一個面f,加入回邊(f*, f*) 

               平面圖G與其對偶圖G*之間的關系:

                                         1,G的面數等于G*的點數,G*的點數等于G的面數,G與G*邊數相同 

                                          2,G*中的環對應G中的割一一對應 

                如圖:藍色線條的是G,紅色線條的是G*(對偶圖)

                                              

                  

   

----------------------------------------------------------------------------------------

分割線

算法求解:

                   普通方法:

                                   如果按照普通的方法就是從s-t跑一遍最大流,但是如果一般這類題的點和邊都是比較大的,

                                   所以最大流很容易超時

                    分析原因:

                                    既然給你的是一張s-t平面圖,而他又有這么多的性質,顯然我們是沒有用到他的性質,

                                    既然這樣我們就要考慮怎么利用他的性質

                   正解算法:

                                    從s-t平面圖當中讓原點s與匯點t連一條邊,然后在構造他的對偶圖G*,然后令s*為原點,t*為匯點

                                   我們通過性質就可以得知從s*到t*的一條路徑就是原圖的一個割,因此s*到t*的最短路就是最小割

                              

            如圖:1*到8*的最短路就是1到8的最小割即最大流 

                                             

-----------------------------------------------------------------------------------------

分割線

算法例子: hdu3870

Catch the Theves

Time Limit: 5000/2000 MS (java/Others)    Memory Limit: 65768/32768 K (Java/Others)Total Submission(s): 1723    Accepted Submission(s): 560PRoblem DescriptionA group of thieves is approaching a museum in the country of zjsxzy,now they are in city A,and the museum is in city B,where keeps many broken legs of zjsxzy.Luckily,GW learned the conspiracy when he is watching stars and told it to zjsxzy.Zjsxzy decided to caught these thieves,and he let the police to do this,the police try to catch them on their way from A to B. Although the thieves might travel this way by more than one group, zjsxzy's Excellent police has already gather the statistics that the cost needed on each road to guard it. Now ,zjsxzy's conutry can be described as a N*N matrix A,Aij indicates the city(i,j) have bidirectionals road to city(i+1,j) and city(i,j+1),gurad anyone of them costs Aij.Now give you the map,help zjsxzy to calculate the minimium cost.We assume thieves may travel in any way,and we will catch all passing thieves on a road if we guard it. InputThe first line is an integer T,followed by T test cases.In each test case,the first line contains a number N(1<N<=400).The following N lines,each line is N numbers,the jth number of the ith line is Aij.The city A is always located on (1,1) and the city B is always located on (n,n).Of course,the city (i,j) at the last row or last line won't have road to (i,j+1) or (i+1,j). OutputFor each case,print a line with a number indicating the minimium cost to arrest all thieves. Sample Input
1310 5 56 6 204 7 9 Sample Output
18HintThe map is like this:
 

    

題目思路:

                        s-t平面圖最小割的裸題,例子當中的對偶圖就是:

 

平面中的六個點代表代表被分成的6個平面,即對偶圖的六個點,而經過原圖邊上的對偶圖的邊

表示該邊屬于的兩個平面即兩點有一條邊,從圖中我們很好看得出S*-T*的路徑就是S-T的割

AC代碼:

#include<iostream>#include<cstring>#include<cstdio>#include<queue>using namespace std;const int maxn = 450*450;const int inf = 1e9;int hed[maxn],vis[maxn],dis[maxn];int n,e,nn;int s[505][505];struct st{   int v,w,nex;}edge[maxn<<2];void add(int u,int v,int w){   edge[e].v=v,edge[e].w = w,edge[e].nex=hed[u],hed[u]=e++;}void spfa(){    for(int i=1;i<=nn;i++)dis[i]=inf,vis[i]=0;    dis[1]=0,vis[1]=1;    queue<int>q;q.push(1);    while(!q.empty()){        int u = q.front();q.pop();vis[u]=0;        for(int i = hed[u];~i;i=edge[i].nex){            int v = edge[i].v;            if(dis[v]>dis[u]+edge[i].w){                dis[v]=dis[u]+edge[i].w;                if(!vis[v]){                    vis[v]=1;                    q.push(v);                }            }        }    }}int main(){    int t;cin>>t;    while(t--){        scanf("%d",&n);        memset(hed,-1,sizeof(hed));e=1;        nn=(n-1)*(n-1)+2;        for(int i=1;i<=n;i++){            for(int j=1;j<=n;j++){                scanf("%d",&s[i][j]);                if(i==1&&j!=n)                                             //最上面的邊                    add(j+1,nn,s[i][j]),add(nn,j+1,s[i][j]);                if(i==n&&j!=n)                                              //最下面的邊                      add((i-2)*(n-1)+j+1,1,s[i][j]),add(1,(i-2)*(n-1)+j+1,s[i][j]);                if(j==1&&i!=n)                                              //最左面的邊                    add(1,(i-1)*(n-1)+2,s[i][j]),add((i-1)*(n-1)+2,1,s[i][j]);                if(j==n&&i!=n)                                             //最右面的邊                     add(nn,(i-1)*(n-1)+n,s[i][j]),add((i-1)*(n-1)+n,nn,s[i][j]);                if(i!=1&&i!=n&&j!=n)                                          //中間水平的邊                    add((i-2)*(n-1)+j+1,(i-1)*(n-1)+j+1,s[i][j]),add((i-1)*(n-1)+j+1,(i-2)*(n-1)+j+1,s[i][j]);                if(j!=1&&j!=n&&i!=n)                                         //中間垂直的邊                    add((i-1)*(n-1)+j+1,(i-1)*(n-1)+j,s[i][j]),add((i-1)*(n-1)+j,(i-1)*(n-1)+j+1,s[i][j]);            }        }        spfa();        printf("%d/n",dis[nn]);    }    return 0;}

PS:我這個代碼跑了1500+ms  有的大神的算法只用了幾百毫秒甚至100ms以下,還望大神們指點指點(留言給我)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国语自产精品视频在线看抢先版图片| 狠狠干狠狠久久| 裸体女人亚洲精品一区| 一本一本久久a久久精品牛牛影视| 国产婷婷成人久久av免费高清| 欧美怡红院视频一区二区三区| 色婷婷亚洲mv天堂mv在影片| xxx成人少妇69| 亚洲精品免费一区二区三区| 97视频在线观看亚洲| 久久综合色88| 国产精品第1页| 欧美一区二三区| 国产精品高潮视频| 91精品国产自产在线观看永久| 精品香蕉一区二区三区| 91在线国产电影| 亚洲第一在线视频| 国产自产女人91一区在线观看| 国产一区欧美二区三区| 亚洲视频在线免费看| 2019中文字幕免费视频| 国产视频福利一区| 日韩成人在线网站| 精品色蜜蜜精品视频在线观看| 亚洲色图在线观看| 亚洲国内高清视频| 成人黄色在线观看| 欧美性受xxxx黑人猛交| 黑人巨大精品欧美一区二区三区| 日韩亚洲在线观看| 久久夜色精品国产欧美乱| 亚洲最新在线视频| 国产精品自拍网| 欧美电影在线观看完整版| 国产欧美va欧美va香蕉在线| 91麻豆桃色免费看| 久久久91精品国产一区不卡| 在线观看精品自拍私拍| 久久国产精品偷| 亚洲女人被黑人巨大进入al| 精品综合久久久久久97| 欧美xxxx做受欧美.88| 亚州av一区二区| 全色精品综合影院| 欧美精品在线网站| 亚洲一区中文字幕在线观看| 久久亚洲一区二区三区四区五区高| 欧日韩不卡在线视频| 国产亚洲欧美日韩美女| 国产精品久久久久久久久久新婚| 日韩精品在线影院| 日韩欧美亚洲范冰冰与中字| 亚洲国产成人91精品| 91久久精品美女| 久久亚洲成人精品| 精品精品国产国产自在线| 久久久国产91| 亚洲欧美成人一区二区在线电影| 人人爽久久涩噜噜噜网站| 日韩精品免费视频| 在线电影中文日韩| 国产精品欧美日韩一区二区| 国产一区玩具在线观看| 2018国产精品视频| 色综合久综合久久综合久鬼88| 欧美日韩激情视频8区| 欧美激情精品在线| 疯狂做受xxxx高潮欧美日本| 91天堂在线观看| 日韩视频免费看| 亚洲精品中文字幕女同| 日韩中文字幕国产精品| 欧美午夜精品久久久久久久| 日韩欧美国产免费播放| 91av网站在线播放| 日韩在线视频免费观看高清中文| 国产mv免费观看入口亚洲| 国产精品在线看| 国产欧美日韩丝袜精品一区| 亚洲国产美女精品久久久久∴| 久久国产精品亚洲| 欧美成人精品在线观看| 欧美日韩高清在线观看| 欧美激情第99页| www.久久色.com| 日韩中文字幕在线看| 91在线免费观看网站| 久久九九亚洲综合| 成人在线一区二区| 亚洲欧洲日本专区| 亚洲www在线观看| 国产精品国产亚洲伊人久久| 日韩在线精品视频| 91精品国产综合久久男男| 久久久久久亚洲| 国产精品免费一区二区三区都可以| 亚洲天堂av在线免费观看| www.欧美免费| 成人a视频在线观看| 久久免费福利视频| 亚洲免费视频在线观看| 亚洲的天堂在线中文字幕| 亚洲高清av在线| 久久69精品久久久久久久电影好| 日韩中文字幕网站| 色yeye香蕉凹凸一区二区av| 91九色国产在线| 欧美在线日韩在线| 久久艹在线视频| 日韩欧美在线视频观看| zzijzzij亚洲日本成熟少妇| 中文字幕日韩欧美| 国产午夜精品一区理论片飘花| 97超级碰碰碰久久久| 欧美激情欧美狂野欧美精品| 国产欧美日韩精品丝袜高跟鞋| 欧美高清无遮挡| 夜夜嗨av一区二区三区免费区| 17婷婷久久www| 亚洲欧洲高清在线| 色婷婷av一区二区三区久久| 综合av色偷偷网| 久久久久久久一区二区| 精品亚洲国产成av人片传媒| 91久久在线视频| 日韩精品中文在线观看| 国产99在线|中文| 欧美精品久久久久久久久久| 色综合亚洲精品激情狠狠| 色婷婷综合成人av| 在线观看精品自拍私拍| 日韩中文字幕第一页| 亚洲国产三级网| 欧美日韩激情网| 亚洲国产精彩中文乱码av在线播放| 日韩亚洲成人av在线| 亚洲天堂网在线观看| 亚洲а∨天堂久久精品9966| 精品久久中文字幕| 欧美在线性视频| 国产日韩欧美在线看| 亚洲欧美一区二区三区在线| 在线看欧美日韩| 在线播放日韩欧美| 成人网中文字幕| 久久久久久一区二区三区| 国产福利成人在线| 另类天堂视频在线观看| 久久影院在线观看| 精品亚洲男同gayvideo网站| 亚洲人成亚洲人成在线观看| 亚洲精品久久久久久久久| 国产成人精品a视频一区www| 国产精品一区二区三区免费视频| 国产91色在线播放| 久久综合久久88| 91精品视频观看| 亚洲欧美精品在线| 色哟哟入口国产精品| 精品国产福利在线| 亚洲欧美日韩一区二区三区在线| 国外成人性视频| 浅井舞香一区二区|