青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

The Fourth Dimension Space

枯葉北風寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢令

SGU 326 Perspective 網絡流(經典競賽問題)

題意:有n(<=20)只隊伍比賽, 隊伍i初始得分w[i], 剩余比賽場數r[i](包括與這n只隊伍以外的隊伍比賽), mat[i][j]表示隊伍i與隊伍j剩余比賽場數, 沒有平局, 問隊伍0有沒有可能獲得這n隊中的第一名(可以有并列第一).

做法1:其實第一個隊可以不用管它了,n支隊我們將它壓縮到n-1。
//球隊編號[0,n-2]
//比賽數[n-1,n-2+id]
//超級源n-1+id
//超級匯n+id
//共n+id+1個點
把n-1只隊伍作為頂點(把0號點去掉還剩n-1), 把(i<j)的所有場比賽作為頂點建圖, 設i和j參加的比賽為c(i,j), 其數量為num(c(i,j)), 則i, j往c(i,j)連權值為num(c(i,j))的弧, c(i,j)往匯點也連權值為num(c(i,j))的弧, 超級源和每個隊伍代表的頂點連流量是w[0]-w[i](w[0]是0號點贏得剩下所有比賽的得分),最大這樣只要這條往匯點的弧滿流, 則i, j贏的場數和一定為num(c(i,j)).


理解就是如果滿流,那么所有的比賽可以安排,而且由于s->i已經控制了每個隊可以贏得的比賽的上界,即使全部流到匯點也不會超過0號點的得分。

PS:我記得上次做了個浙大的題目,貌似和他很像,但是構圖方法不一樣,這題可以再研究下。


int mat[maxn][maxn];
int idx[maxn][maxn];
int n;
int w[maxn];
int r[maxn];
int s,t;



//球隊編號[0,n-2]
//比賽數[n-1,n-2+id]
//超級源n-1+id
//超級匯n+id
//共n+id+1個點

//id中返回比賽數
int id;
int sum=0;
void input(int n)
{
    id
=0;
    sum
=0;
    memset(idx,
-1,sizeof(idx));

    
for(int i=0;i<n;i++)
        scanf(
"%d",&w[i]);
    
for(int i=0;i<n;i++)
        scanf(
"%d",&r[i]);
    
for(int i=0;i<n;i++)
        
for(int j=0;j<n;j++)
            scanf(
"%d",&mat[i][j]);

    
//
    /*
    for(int i=1;i<n;i++)
        w[0]+=mat[0][i];
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
        {
            r[i]-=mat[i][j];
        }
        
*/

    w[
0]+=r[0];
    
//剩下i對外區比賽場次

    
for(int i=1;i<n;i++)
        
for(int j=i+1;j<n;j++)
        
{
            idx[i][j]
=id++;
            sum
+=mat[i][j];
        }

    s
=n-1+id;
    t
=n+id;
}






int main()
{
    scanf(
"%d",&n);
    input(n);
    
for(int i=0;i<n+id+1;i++)
        adj[i]
=NULL;
    len
=0;
    
//
    for(int i=1;i<n;i++)
        
for(int j=i+1;j<n;j++)
        
{
                insert(i
-1,idx[i][j]+n-1,mat[i][j]);
                insert(j
-1,idx[i][j]+n-1,mat[i][j]);
                insert(idx[i][j]
+n-1,t,mat[i][j]);
        }

    
for(int i=1;i<n;i++)
        
if(w[0]<w[i])
        
{
            printf(
"NO\n");
            
return 0;
        }

    
for(int i=1;i<n;i++)
        insert(s,i
-1,w[0]-w[i]);
    
    
if(sap(n+id+1,s,t)==sum)
        printf(
"YES\n");
    
else
        printf(
"NO\n");
    
return 0;
}



做法二: 這個構圖更為簡單直觀(不容易錯),不需要再建立比賽的節點,結點數O(n).
具體構圖方法見http://www.shnenglu.com/abilitytao/archive/2010/07/21/120933.html

int mat[maxn][maxn];
int n;
int w[maxn];
int r[maxn];
int s,t;




//超級源0
//超級匯n
//共n+1個點

int sum;
void input(int n)
{

    sum
=0;
    
for(int i=0;i<n;i++)
        scanf(
"%d",&w[i]);
    
for(int i=0;i<n;i++)
        scanf(
"%d",&r[i]);
    
for(int i=0;i<n;i++)
        
for(int j=0;j<n;j++)
            scanf(
"%d",&mat[i][j]);
    w[
0]+=r[0];
    
//剩下i對外區比賽場次
    s=0;
    t
=n;

}






int main()
{
    scanf(
"%d",&n);
    input(n);
    
for(int i=0;i<n+1;i++)
        adj[i]
=NULL;
    len
=0;
    
//
    int arr[maxn];
    memset(arr,
0,sizeof(arr));
    
for(int i=1;i<n;i++)
    
{
        
for(int j=i+1;j<n;j++)
        
{
            arr[i]
+=mat[i][j];
            sum
+=mat[i][j];
        }

        insert(s,i,arr[i]);
    }

    
    
for(int i=1;i<n;i++)
        
if(w[0]<w[i])
        
{
            printf(
"NO\n");
            
return 0;
        }

    
    
for(int i=1;i<n;i++)
        insert(i,t,w[
0]-w[i]);

    
for(int i=1;i<n;i++)
    
{
        
for(int j=i+1;j<n;j++)
        
{
            insert(i,j,mat[i][j]);
        }

    }

    
    
if(sap(t+1,s,t)==sum)
        printf(
"YES\n");
    
else
        printf(
"NO\n");
    
return 0;
}

posted on 2010-11-12 01:03 abilitytao 閱讀(639) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美在线电影| 亚洲第一网站免费视频| 卡通动漫国产精品| 欧美系列精品| 亚洲国产精品久久久久秋霞不卡| 国产精品久久久久久久免费软件| 久热综合在线亚洲精品| 国产免费亚洲高清| 日韩一级不卡| 亚洲美女淫视频| 看片网站欧美日韩| 久久久免费精品视频| 国产精品无码专区在线观看| 亚洲破处大片| 亚洲人被黑人高潮完整版| 久久久久久国产精品mv| 久久精品日产第一区二区三区| 欧美视频在线观看一区二区| 亚洲国产成人久久综合| 在线观看一区视频| 久久精品日韩欧美| 久久视频一区二区| 激情成人综合| 久久九九热re6这里有精品| 欧美主播一区二区三区美女 久久精品人 | 久久久久久电影| 久久精品视频99| 国产精品一区毛片| 亚洲欧洲av一区二区| 先锋影音久久| 国产欧美一区二区三区在线老狼| 亚洲午夜久久久| 性久久久久久久久| 国产美女一区二区| 欧美一区二区三区在线视频| 久久国产加勒比精品无码| 国产日韩欧美亚洲一区| 欧美在线www| 欧美成人精品不卡视频在线观看 | 牛牛精品成人免费视频| 亚洲国产精品成人综合| 欧美88av| 一片黄亚洲嫩模| 久久aⅴ国产紧身牛仔裤| 国产欧美一区二区三区视频| 久久精品免费观看| 亚洲第一区在线| 亚洲深夜福利视频| 国产日产亚洲精品| 裸体素人女欧美日韩| 亚洲国内高清视频| 亚洲欧美日韩国产精品| 国产亚洲精品久久久久婷婷瑜伽| 久久www成人_看片免费不卡| 欧美高清视频一区二区| 亚洲天堂av在线免费观看| 国产精品裸体一区二区三区| 久久精品国产免费观看| 亚洲国产欧美久久| 亚洲欧美一区二区原创| 一区二区三区自拍| 欧美日韩国产成人在线| 亚洲欧美在线免费| 亚洲国产精品久久人人爱蜜臀 | 亚洲欧洲视频在线| 欧美在线免费一级片| 亚洲片在线资源| 国产精品视频精品| 欧美va日韩va| 亚洲在线网站| 亚洲精华国产欧美| 久久不见久久见免费视频1| 亚洲激情中文1区| 国产精品日韩在线观看| 欧美+亚洲+精品+三区| 亚洲欧美日韩精品久久奇米色影视 | 99国产精品| 韩日午夜在线资源一区二区| 欧美日韩亚洲一区二区三区在线观看 | 国产精品高精视频免费| 蜜桃av噜噜一区| 亚洲欧美成人网| 亚洲青色在线| 欧美成ee人免费视频| 欧美一区在线直播| 国产精品99久久久久久久久久久久 | 极品尤物av久久免费看| 国产精品激情电影| 欧美精品在线观看| 麻豆成人91精品二区三区| 亚洲欧美bt| 国产精品99久久久久久有的能看| 欧美成人蜜桃| 久久视频精品在线| 久久狠狠久久综合桃花| 亚洲视频在线播放| 日韩一级黄色大片| 亚洲国产综合视频在线观看| 黄色精品一二区| 国产视频欧美| 国产伦精品一区二区三区免费迷| 麻豆精品精华液| 久久夜色精品国产亚洲aⅴ| 欧美一区免费视频| 亚洲欧美日韩在线观看a三区 | 午夜在线a亚洲v天堂网2018| 亚洲天堂免费观看| 中文国产亚洲喷潮| 亚洲视频免费在线| 99v久久综合狠狠综合久久| 亚洲区第一页| 亚洲精品国产精品国自产在线| 欧美国产精品一区| 亚洲国产成人精品女人久久久 | 蜜乳av另类精品一区二区| 久久精品123| 久久久久久电影| 另类av导航| 欧美电影在线观看| 亚洲黄色免费| 亚洲精选视频免费看| 日韩一级在线| 亚洲一区二区三区乱码aⅴ蜜桃女| 一区二区免费在线观看| 亚洲自拍高清| 欧美专区亚洲专区| 久久综合一区二区三区| 欧美激情bt| 国产精品videosex极品| 国产欧美一区二区视频| 黄色av日韩| 日韩午夜中文字幕| 亚洲欧美大片| 美女尤物久久精品| 亚洲激情偷拍| 亚洲一区二区视频| 久久精品一区二区三区中文字幕| 浪潮色综合久久天堂| 欧美日韩成人在线视频| 国产精品亚洲不卡a| 精品91免费| 夜夜精品视频| 久久久蜜桃一区二区人| 亚洲国产欧美不卡在线观看| 亚洲作爱视频| 久久精品国产亚洲aⅴ| 欧美国产日韩一区二区| 国产精品久久久久久av福利软件 | 国产精品老女人精品视频| 国产在线不卡视频| 夜夜嗨av色一区二区不卡| 欧美一区国产二区| 亚洲国产成人精品女人久久久| 在线一区亚洲| 欧美成人资源| 国产在线欧美日韩| 亚洲色无码播放| 免费不卡在线观看| 一本久久青青| 麻豆精品网站| 国产在线不卡精品| 亚洲一区二区视频在线| 欧美11—12娇小xxxx| 一区二区三区产品免费精品久久75| 欧美制服丝袜第一页| 欧美午夜视频在线| 亚洲欧洲日产国产综合网| 久久精品国产免费看久久精品| 亚洲欧洲精品天堂一级| 久久久久久9999| 国产九九精品视频| 一区二区福利| 欧美韩日亚洲| 久久米奇亚洲| 国产揄拍国内精品对白| 性做久久久久久| 亚洲精品你懂的| 久久国产直播| 国产一区二区精品久久91| 亚洲一区二区三区四区中文 | 欧美一区中文字幕| 国产精品日本一区二区| 亚洲视频在线观看视频| 亚洲第一中文字幕| 久久亚洲欧美| 玉米视频成人免费看| 久久久久久穴| 欧美影院成年免费版| 国产精品推荐精品| 午夜精品久久久久久久99水蜜桃| 亚洲精品麻豆| 欧美人成在线| 亚洲视频免费看| 亚洲视频欧美在线| 国产精品乱码一区二区三区| 亚洲自拍偷拍网址| 一区二区三区 在线观看视| 欧美日韩中文字幕日韩欧美| 宅男精品视频| 亚洲午夜日本在线观看|