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

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://m.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 閱讀(638) 評論(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>
            韩日视频一区| 亚洲精选久久| 欧美在线一区二区三区| 亚洲免费在线播放| 亚洲欧美日韩人成在线播放| 亚洲欧美日韩一区在线| 久久精品99| 久久久久国内| 欧美一区二区三区视频| 久久精品亚洲国产奇米99| 欧美中文在线字幕| 免费在线播放第一区高清av| 欧美成人免费一级人片100| 欧美激情一区二区三区在线视频观看 | 亚洲另类自拍| 亚洲美女91| 亚洲午夜电影| 久久久久久久欧美精品| 久久这里有精品15一区二区三区| 欧美jizz19性欧美| 亚洲狠狠婷婷| 日韩视频免费在线| 亚洲免费在线看| 你懂的视频一区二区| 欧美日韩综合一区| 国产一区在线视频| 亚洲日本一区二区三区| 在线视频欧美一区| 欧美在线二区| 欧美激情第一页xxx| 亚洲乱码国产乱码精品精天堂| 小黄鸭精品aⅴ导航网站入口| 午夜精品久久| 亚洲欧洲一区二区三区在线观看| 亚洲精品欧美| 亚洲永久精品大片| 欧美一二三视频| 裸体一区二区三区| 欧美小视频在线| 伊人久久亚洲影院| 蜜臀99久久精品久久久久久软件 | 久久久噜噜噜久久中文字幕色伊伊| 久久青草久久| 在线视频日本亚洲性| 亚洲精品一区二区三区不| 久久国产乱子精品免费女 | 日韩西西人体444www| 久久免费少妇高潮久久精品99| 亚洲第一福利视频| 久久精品在线免费观看| 欧美剧在线免费观看网站| 亚洲电影成人| 亚洲欧美一区二区三区在线| 日韩亚洲国产精品| 中文在线资源观看网站视频免费不卡 | 国产小视频国产精品| 亚洲亚洲精品三区日韩精品在线视频| 久久全国免费视频| 性欧美精品高清| 国产精品国产三级国产普通话99 | 久久久www| 国产精品久久九九| 亚洲尤物在线| 久久久一区二区| 香蕉成人啪国产精品视频综合网| 欧美在线一级视频| 国产亚洲精品福利| 久久婷婷色综合| 欧美一区二区三区免费看 | 亚洲一区国产精品| 亚洲国产精品久久| 久色成人在线| 国产综合色在线| 免费成人高清视频| 一本色道久久99精品综合| 国产精品久久久久久久久久久久久久| 国产精品一区二区三区四区五区| 欧美亚洲一区二区在线观看| 亚洲第一福利视频| 欧美色大人视频| 亚洲国产视频a| 亚洲精品中文字| 久久影音先锋| 欧美一区二区成人6969| 国产视频久久| 久久久99爱| 久久色在线观看| 永久91嫩草亚洲精品人人| 欧美91福利在线观看| 欧美一级视频一区二区| 亚洲国产精品999| 欧美激情a∨在线视频播放| 欧美区一区二区三区| 一本色道久久综合| 欧美一区二区三区日韩| 狠狠色丁香婷婷综合影院| 亚洲日本欧美在线| 欧美少妇一区二区| 女女同性精品视频| 欧美在线视频一区| 一区二区高清视频| 欧美在线视频播放| 亚洲高清资源| 亚洲深夜福利| 国内精品久久久久伊人av| 亚洲三级视频| 国产女主播一区二区| 亚洲欧洲日韩在线| 国产女主播一区二区三区| 亚洲日本欧美日韩高观看| 国产精品久久久久一区二区| 欧美激情精品久久久| 国产精品毛片a∨一区二区三区| 久久se精品一区精品二区| 欧美黑人国产人伦爽爽爽| 久久大逼视频| 欧美精品电影在线| 久久久精品网| 欧美精品1区| 欧美成年人视频网站| 欧美日韩在线观看视频| 亚洲欧洲一区二区三区| 亚洲午夜未删减在线观看| 在线观看国产欧美| 欧美一级片在线播放| 99视频超级精品| 麻豆国产精品777777在线| 午夜精品久久久久| 国产精品私拍pans大尺度在线| 欧美激情成人在线| 亚洲精品小视频在线观看| 久久久999| 欧美亚洲一区二区在线| 国产精品久久久久aaaa九色| 欧美激情一区二区在线| 樱桃国产成人精品视频| 亚洲欧美日韩第一区| 欧美一区二区视频观看视频| 欧美激情精品久久久久久免费印度 | 久久女同精品一区二区| 国产精品九九久久久久久久| 日韩视频免费观看高清在线视频| 在线播放日韩| 久久综合九色99| 久久久久久久综合狠狠综合| 久久亚裔精品欧美| 亚洲精品欧美一区二区三区| 麻豆精品网站| 亚洲第一主播视频| 激情视频亚洲| 久久婷婷久久| 免费毛片一区二区三区久久久| 亚洲国产精品成人一区二区| 久久久久久高潮国产精品视| 麻豆精品在线播放| 国产主播一区二区| 免费观看一级特黄欧美大片| 麻豆av一区二区三区久久| 亚洲国产精品久久久久秋霞蜜臀| 久久久久久网| 亚洲人成人99网站| 亚洲成在线观看| 欧美精品三级在线观看| 一区二区久久久久久| 亚洲女人天堂av| 精品电影在线观看| 久久亚洲欧美国产精品乐播| 欧美成人免费在线视频| 亚洲激情电影中文字幕| 欧美成人综合| 亚洲伦理自拍| 久久动漫亚洲| 在线看成人片| 国产精品免费看久久久香蕉| 亚洲影视在线| 一本色道久久综合一区| 免费不卡欧美自拍视频| 免费一级欧美片在线观看| 日韩视频中午一区| 国产精品午夜电影| 欧美xxx成人| 夜夜爽www精品| 猛男gaygay欧美视频| 亚洲午夜久久久久久久久电影院 | 性18欧美另类| 亚洲毛片网站| 国产资源精品在线观看| 欧美成人在线网站| 久久9热精品视频| 亚洲国产精品一区在线观看不卡 | 中文av一区二区| 久久米奇亚洲| 亚洲欧洲av一区二区| 国产亚洲精品美女| 欧美二区在线播放| 久久久久久久久蜜桃| 在线视频一区二区| 最新日韩在线视频| 亚洲天堂免费在线观看视频| 亚洲精品美女在线观看播放|