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

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

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

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

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

             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
欧美电影免费观看电视剧大全| 国色天香2019中文字幕在线观看| 欧美日韩在线免费观看| 久久久久亚洲精品国产| 中文字幕在线国产精品| 在线丨暗呦小u女国产精品| 欧美人交a欧美精品| 欧美性生活大片免费观看网址| 国产日韩中文字幕| 精品国产一区久久久| 日韩欧美在线免费| 1769国内精品视频在线播放| 国产精品免费视频久久久| 欧美激情免费在线| 深夜精品寂寞黄网站在线观看| 欧美精品18videos性欧美| 久久综合色影院| 日韩欧美aⅴ综合网站发布| 国产成人高清激情视频在线观看| 久久夜色撩人精品| 韩国国内大量揄拍精品视频| 久久夜色精品亚洲噜噜国产mv| 精品无人区乱码1区2区3区在线| 欧美一级高清免费播放| 国产极品jizzhd欧美| 一区二区欧美日韩视频| 亚洲午夜性刺激影院| 全色精品综合影院| 久久久综合av| 136fldh精品导航福利| 欧美又大又粗又长| 亚洲欧美日韩高清| 国产在线日韩在线| 亚洲人成网站免费播放| 日韩视频在线一区| 欧美性理论片在线观看片免费| 欧美性色xo影院| 色99之美女主播在线视频| 亚洲男子天堂网| 国产91在线播放| 国产亚洲欧美aaaa| 亚洲黄色免费三级| 久久久久久久一区二区| 日韩视频―中文字幕| 日本高清不卡在线| 成人午夜高潮视频| 美女扒开尿口让男人操亚洲视频网站| 亚洲国产精品专区久久| 久久成人精品一区二区三区| 亚洲精品成人久久| 日本久久久久久久久| 精品久久久久久久久久ntr影视| 亚洲精品v天堂中文字幕| 欧美一级淫片aaaaaaa视频| 欧美激情xxxxx| 亚洲视频欧洲视频| 岛国av午夜精品| 亚洲人成77777在线观看网| 一本色道久久88精品综合| 国产91精品最新在线播放| 伊人精品在线观看| 欧美人与物videos| 色多多国产成人永久免费网站| 亚洲精品国产综合久久| 日韩中文综合网| 狠狠做深爱婷婷久久综合一区| 亚洲护士老师的毛茸茸最新章节| 狠狠躁夜夜躁人人爽超碰91| 国产成人激情视频| 亚洲一区二区三区sesese| 精品日韩视频在线观看| 综合国产在线观看| 欧美精品18videosex性欧美| 欧美性xxxxxxxxx| 久久久久亚洲精品| 精品色蜜蜜精品视频在线观看| 国产在线观看精品| 国产日本欧美一区二区三区| 日韩中文理论片| 九九热最新视频//这里只有精品| 欧美另类极品videosbestfree| 日韩欧亚中文在线| 久久人人爽人人| 在线免费观看羞羞视频一区二区| 久久免费福利视频| 欧美日韩亚洲一区二区| 一区二区在线免费视频| 日韩亚洲国产中文字幕| 国产日韩欧美在线| 成人a视频在线观看| 最好看的2019的中文字幕视频| 欧美日韩高清在线观看| 原创国产精品91| 久久久久www| 国产精品久久久久av| www.亚洲天堂| 伊人久久免费视频| 久久五月情影视| 精品无码久久久久久国产| 日韩欧美福利视频| 欧美激情18p| 91av在线国产| 精品高清美女精品国产区| 欧美大胆a视频| 精品国内产的精品视频在线观看| 91精品国产综合久久香蕉| 91精品久久久久| 亚洲性av在线| 亚洲伊人一本大道中文字幕| 欧美成人午夜影院| 国产一区二区三区久久精品| 最好看的2019年中文视频| 欧美电影免费在线观看| 亚州精品天堂中文字幕| 亚洲老头老太hd| 成人h片在线播放免费网站| 91麻豆国产语对白在线观看| 97精品视频在线播放| 伦理中文字幕亚洲| 亚洲精品av在线| 成人日韩av在线| 国产一区二区日韩| 黑人巨大精品欧美一区免费视频| 韩国视频理论视频久久| 亚洲精品在线不卡| 丁香五六月婷婷久久激情| 91九色国产视频| 精品偷拍各种wc美女嘘嘘| 亚洲女成人图区| 欧美性xxxxx极品娇小| 日韩美女视频免费在线观看| 欧美精品做受xxx性少妇| 日韩av片永久免费网站| 欧美电影在线播放| 日韩免费在线看| 久久韩剧网电视剧| 日韩动漫免费观看电视剧高清| 美女福利精品视频| 2019中文字幕在线| 欧美日韩国产丝袜另类| 亚洲伊人第一页| 人人做人人澡人人爽欧美| 亚洲色图色老头| 欧美在线日韩在线| 国产精品丝袜高跟| zzijzzij亚洲日本成熟少妇| 91伊人影院在线播放| 亚洲国产精品成人精品| 91久久在线播放| 亚洲情综合五月天| 国产视频精品一区二区三区| 国产91免费观看| 久久久久中文字幕| 91高清视频免费| 欧美亚洲在线视频| 国内外成人免费激情在线视频| 国产日韩欧美日韩大片| 4444欧美成人kkkk| 国模精品一区二区三区色天香| 欧美壮男野外gaytube| 亚洲第一网站免费视频| 欧美性生交xxxxx久久久| 亚洲欧美一区二区激情| 亚洲少妇中文在线|