<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      HDu Battle

        1 #include <iostream>//最大權閉合子圖模板題
        2 #include<cstdio>
        3 #include<cstring>
        4 #include<vector>
        5 #include<queue>
        6 #include<algorithm>
        7 using namespace std;
        8 #define min(a,b) ((a)<(b))?(a):(b)
        9 #define max(a,b) ((a)>(b))?(a):(b)
       10 #define MAXN 1111+10
       11 #define MAXM 505000+10//M取N的平方倍
       12 #define INF 0x3f3f3f3f
       13 
       14 struct node
       15 {
       16     int n;//點編號
       17     int w;//點權
       18 }Node[MAXN];
       19 //鏈式前向星
       20 struct enode
       21 {
       22     int t;
       23     int w;                //權值
       24     int c;                //流量
       25 //  int cost;
       26 //    int pre;            //前向指針
       27     int next;
       28 };
       29 
       30 
       31     struct enode e[MAXM];
       32     int box[MAXN],ecnt;
       33     //int etail[MAXN];        //尾部
       34     void init()
       35     {
       36         ecnt=0;
       37         memset(box,-1,sizeof(box));
       38     //    memset(etail,-1,sizeof(etail));        //初始化尾部
       39     }
       40     void addedge(int f,int t,int c)            //流量重載
       41     {
       42         e[ecnt].next=box[f];
       43         e[ecnt].t=t;
       44         e[ecnt].c=c;
       45         box[f]=ecnt++;
       46         e[ecnt].next=box[t];
       47         e[ecnt].t=f;
       48         e[ecnt].c=0;
       49         box[t]=ecnt++;
       50     }
       51 int sap(int s,int t,int N)//最大流問題
       52 {
       53     int gap[MAXN],lvl[MAXN],cur[MAXN],pre[MAXN];
       54     int curflow,ans=0,u,tmp,neck,i;
       55     memset(lvl,0,sizeof(lvl));
       56     memset(gap,0,sizeof(gap));
       57     memset(pre,-1,sizeof(pre));
       58     for(i=0;i<N;i++)
       59         cur[i]=box[i];
       60     gap[0]=N;
       61     u=s;
       62     while(lvl[s]<N)
       63     {
       64         if(u==t)
       65         {
       66             curflow=INF;
       67             for(i=s;i!=t;i=e[cur[i]].t)
       68             {
       69                 if(curflow>e[cur[i]].c)
       70                 {
       71                     neck=i;
       72                     curflow=e[cur[i]].c;
       73                 }
       74             }
       75             for(i=s;i!=t;i=e[cur[i]].t)
       76             {
       77                 tmp=cur[i];
       78                 e[tmp].c-=curflow;
       79                 e[tmp^1].c+=curflow;
       80             }
       81             ans+=curflow;
       82             u=neck;
       83         }
       84         for(i=cur[u];i!=-1;i=e[i].next)
       85             if(e[i].c && lvl[u]==lvl[e[i].t]+1)
       86                 break;
       87         if(i!=-1)
       88         {
       89             cur[u]=i;
       90             pre[e[i].t]=u;
       91             u=e[i].t;
       92         }
       93         else
       94         {
       95             if(--gap[lvl[u]]==0)
       96                 break;
       97              cur[u]=box[u];
       98             for(tmp=N,i=box[u];i!=-1;i=e[i].next)
       99                 if(e[i].c)
      100                     tmp=min(tmp,lvl[e[i].t]);
      101             lvl[u]=tmp+1;
      102             gap[lvl[u]]++;
      103             if(u!=s)
      104                 u=pre[u];
      105         }
      106     }
      107     return ans;
      108 }
      109 int main()
      110 {
      111      int m,n,a,b,t;
      112      int i,j,k;
      113      int start,end,ans;
      114    while(scanf("%d%d",&n,&m)!=EOF)  //;
      115    {
      116          start=ans=0;
      117          end=1+n;//終點編號
      118          init();
      119          for(i=1;i<=n;i++)
      120          {
      121              scanf("%d",&Node[i].w);
      122              if(Node[i].w>0)
      123              {
      124                  ans+=Node[i].w;
      125                  addedge(start,i,Node[i].w);//起點建邊
      126              }
      127              else if(Node[i].w<0)
      128              {
      129                  addedge(i,end,0-Node[i].w);//負點權點和終點相連
      130              }
      131              Node[i].n=i;
      132          }
      133          for(i=1;i<=m;i++)
      134          {
      135              scanf("%d%d",&a,&b);
      136              addedge(a,b,INF);
      137          }
      138          t=sap( start,end,end+1);
      139          printf("%d\n",ans-t);
      140    }
      141     return 0;
      142 }
      143 /*
      144 Sample Input
      145 
      146 5 5
      147 8
      148 -8
      149 -10
      150 12
      151 -10
      152 
      153 1 2
      154 2 5
      155 1 4
      156 3 4
      157 4 5
      158 
      159 Sample Output
      160 
      161 2
      162 */

       

      posted on 2013-04-24 22:53  ACM_Someone like you  閱讀(228)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 国产AV福利第一精品| 国产中文字幕精品在线| 久久久久青草线综合超碰| 中字幕人妻一区二区三区| 中文字幕精品亚洲二区| 措勤县| 国产亚洲精品精品精品| 亚洲国产日韩一区三区| 虎林市| 午夜大尺度福利视频一区| 2021国产精品视频网站| 丰满少妇呻吟高潮经历| 欧美成人精品在线| 精品视频一区二区三区不卡| 极品无码国模国产在线观看| 国产精品午夜福利小视频| 国产国产久热这里只有精品| 国产乱子伦农村xxxx| 国产成人啪精品午夜网站| 亚洲av日韩在线资源| 产综合无码一区| 久久99热精品这里久久精品| 999国产精品999久久久久久| 国产综合视频一区二区三区| 亚洲在av极品无码天堂| 精品夜恋影院亚洲欧洲| 日韩精品av一区二区三区| 亚洲真人无码永久在线| 国产色无码精品视频免费| 大姚县| 亚洲欧洲日产国产av无码| 中文精品无码中文字幕无码专区| 色老99久久精品偷偷鲁| 少妇人妻偷人免费观看| 亚洲夂夂婷婷色拍ww47| 国产99久久精品一区二区| 亚洲午夜性猛春交XXXX| 亚洲理论在线A中文字幕| 国产精品自在拍在线播放| 日韩 高清 无码 人妻| 无套内内射视频网站|