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

posts - 7,comments - 3,trackbacks - 0

Base Station

Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65768/32768 K (Java/Others)
Total Submission(s): 844    Accepted Submission(s): 353


Problem Description
A famous mobile communication company is planning to build a new set of base stations. According to the previous investigation, n places are chosen as the possible new locations to build those new stations. However, the condition of each position varies much, so the costs to built a station at different places are different. The cost to build a new station at the ith place is Pi (1<=i<=n).

When complete building, two places which both have stations can communicate with each other.

Besides, according to the marketing department, the company has received m requirements. The ith requirement is represented by three integers Ai, Bi and Ci, which means if place Aand Bi can communicate with each other, the company will get Ci profit.

Now, the company wants to maximize the profits, so maybe just part of the possible locations will be chosen to build new stations. The boss wants to know the maximum profits.
 

Input
Multiple test cases (no more than 20), for each test case:
The first line has two integers n (0<n<=5000) and m (0<m<=50000).
The second line has n integers, P1 through Pn, describes the cost of each location.
Next m line, each line contains three integers, Ai, Bi and Ci, describes the ith requirement.
 

Output
One integer each case, the maximum profit of the company.
 

Sample Input
5 5 1 2 3 4 5 1 2 3 2 3 4 1 3 3 1 4 2 4 5 3
 

Sample Output
4
 

Author
liulibo
 

Source
 

Recommend
lcy
 
論文題,Amber最小割模型里面的,最大權閉合圖,因為數組開的太大了,吃了一次RE......
最大權閉合圖不用說了,邊看成收益點,連向S,流量是點權,站點看成花費點,連向T,流量也是點權,其他按照原圖連邊,流量是無限大,之后做一次最小割,割值就是你未選的收益點+選定花費點(因為是閉合圖,所以割肯定是簡單割,想一下割的定義,就明白割值的含義了),用你總收益-割值,就是答案。
用SAP求的最小割,漸漸愛上SAP了,Dinic不用了.....
代碼:

#include <cstdio>
#include 
<cstring>
#include 
<iostream>
#include 
<queue>
using namespace std;

const int maxnode = 60000;
const int maxedge = 320000;
const long long inf = (1LL << 35);

int S, T, cnt;
int head[maxnode], gap[maxnode], pre[maxnode], cur[maxnode], dis[maxnode];

struct Edge
{
    
int s, t;
    
int next;
    
long long w;
} st[maxedge];

void init()
{
    memset(head, 
-1sizeof(head));
    cnt 
= 0;
}

void AddEdge(int s, int t, long long w)
{
    st[cnt].s 
= s;
    st[cnt].t 
= t;
    st[cnt].w 
= w;
    st[cnt].next 
= head[s];
    head[s] 
= cnt;
    cnt
++;

    st[cnt].s 
= t;
    st[cnt].t 
= s;
    st[cnt].w 
= 0;
    st[cnt].next 
= head[t];
    head[t] 
= cnt;
    cnt
++;
}

void bfs()
{
    memset(gap, 
0sizeof(gap));
    memset(dis, 
-1sizeof(dis));
    queue 
<int> Q;
    Q.push(T);
    dis[T] 
= 0;
    gap[
0= 1;
    
int k, t;
    
while (!Q.empty())
    {
        k 
= Q.front();
        Q.pop();
        
for (int i = head[k]; i != -1; i =st[i].next)
        {
            t 
= st[i].t;
            
if (dis[t] == -1 && st[i ^ 1].w > 0)
            {
                dis[t] 
= dis[k] + 1;
                gap[dis[t]]
++;
                Q.push(t);
            }
        }
    }
}

long long sap()
{
    
int i;
    
for (i = S; i <= T; ++i)
        cur[i] 
= head[i];
    pre[S] 
= S;
    
int u = S, v;
    
long long flow = 0;
    
long long aug = inf;
    
bool flag;
    
while (dis[S] <= T)
    {
        flag 
= false;
        
for (i = cur[u]; i != -1; i = st[i].next)
        {
            v 
= st[i].t;
            
if (st[i].w > 0 && dis[u] == dis[v] + 1)
            {
                cur[u] 
= i;
                flag 
= true;
                pre[v] 
= u;
                aug 
= (aug > st[i].w) ? st[i].w : aug;
                u 
= v;
                
if (v == T)
                {
                    flow 
+= aug;
                    
for (u = pre[u]; v != S; u = pre[u])
                    {
                        v 
= u;
                        st[cur[u]].w 
-= aug;
                        st[cur[u] 
^ 1].w += aug;
                    }
                    aug 
= inf;
                }
                
break;
            }
        }
        
if (flag == truecontinue;
        
int mint = T;
        
for (i = head[u]; i != -1; i = st[i].next)
        {
            v 
= st[i].t;
            
if (st[i].w > 0 && mint > dis[v])
            {
                cur[u] 
= i;
                mint 
= dis[v];
            }
        }
        gap[dis[u]]
--;
        
if (gap[dis[u]] == 0break;
        gap[dis[u] 
= mint + 1]++;
        u 
= pre[u];
        
if (u == S) aug = inf;
    }
    
return flow;
}

int main()
{
    
int n, m;
    
while (scanf("%d%d"&n, &m) != EOF)
    {
        init();
        S 
= 0;
        T 
= n + m + 1;
        
int sum = 0;
        
for (int i = 1; i <= n; ++i)
        {
            
int x;
            scanf(
"%d"&x);
            AddEdge(m 
+ i, T, x);
        }
        
for (int i = 1; i <= m; ++i)
        {
            
int a, b, c;
            scanf(
"%d%d%d"&a, &b, &c);
            AddEdge(S, i, c);
            AddEdge(i, m 
+ a, inf);
            AddEdge(i, m 
+ b, inf);
            sum 
+= c;
        }
        bfs();
        sum 
-= sap();
        printf(
"%d\n", sum);
    }
    
return 0;
}
posted on 2011-10-15 22:10 LLawliet 閱讀(141) 評論(0)  編輯 收藏 引用 所屬分類: 網絡流
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            免费国产自线拍一欧美视频| 9i看片成人免费高清| 亚洲一区二区三区高清| 美女日韩欧美| 性色av一区二区三区| 日韩一级视频免费观看在线| 亚洲国产小视频| 在线日韩成人| 在线日本高清免费不卡| 激情丁香综合| 在线日韩中文字幕| 亚洲二区免费| 亚洲日本欧美| 国语自产在线不卡| 国产亚洲欧美一区| 国产一区二区三区直播精品电影| 国产毛片精品视频| 激情偷拍久久| 亚洲人成在线观看| 亚洲一卡久久| 久久www免费人成看片高清| 亚洲自啪免费| 99精品视频免费| 中文av一区二区| 亚洲大片在线观看| 欧美高清在线观看| 欧美jizz19hd性欧美| 亚洲激情二区| 亚洲视频精品| 久久经典综合| 一区二区高清在线| 亚洲自拍电影| 久久久久久亚洲精品中文字幕| 卡通动漫国产精品| 亚洲欧美一区二区激情| 国模私拍视频一区| 欧美日韩久久久久久| 欧美在线免费一级片| 亚洲欧美日本国产有色| 久久精品官网| 日韩一级精品| 久久精品一区二区三区不卡牛牛 | 午夜精品视频在线观看| 久久久美女艺术照精彩视频福利播放 | 午夜精品在线观看| 欧美久久成人| 亚洲国产免费| 久久综合色影院| 亚洲综合欧美日韩| 欧美日韩另类一区| 亚洲国产一区二区在线| 久久久久久久久久久成人| 亚洲综合另类| 国产精品一区二区久久国产| 中文高清一区| 日韩一区二区精品葵司在线| 欧美激情一区二区三区在线视频 | 亚洲免费影视第一页| 亚洲国产日韩美| 久久综合色播五月| 影音先锋久久精品| 久久久久久久激情视频| 欧美一级视频免费在线观看| 国产精品久久久91| 亚洲欧美电影在线观看| 日韩写真视频在线观看| 欧美日韩美女在线| 亚洲一区二区精品在线观看| 99国产精品久久久久老师| 欧美精品日韩www.p站| 亚洲人成啪啪网站| 亚洲韩国青草视频| 一区二区精品| 国产亚洲欧美一区| 久久在线视频在线| 免费看亚洲片| 禁久久精品乱码| 亚洲第一区在线观看| 久久嫩草精品久久久久| 久久精品123| 影音国产精品| 欧美激情第五页| 欧美日韩大片| 午夜在线视频观看日韩17c| 香蕉免费一区二区三区在线观看| 国产亚洲精品aa午夜观看| 久久成人精品视频| 久久综合给合久久狠狠狠97色69| 亚洲国产另类久久久精品极度| 亚洲高清中文字幕| 另类春色校园亚洲| 欧美成人精品一区二区| 在线一区二区三区四区五区| 亚洲欧洲av一区二区| 狠狠色丁香婷综合久久| 欧美韩国一区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 欧美激情1区2区| 在线性视频日韩欧美| 欧美一区二区三区视频| 亚洲日本aⅴ片在线观看香蕉| 日韩亚洲精品在线| 伊人久久大香线| 亚洲午夜一区二区三区| 狠狠爱成人网| 日韩一级精品| 亚洲国产精品视频一区| 亚洲影视在线播放| 亚洲国产另类久久精品| 中文亚洲字幕| 亚洲黄色影片| 久久国产一区二区三区| 亚洲欧美日韩成人| 欧美激情中文字幕乱码免费| 久久久另类综合| 国产精品久久777777毛茸茸| 欧美成人中文字幕在线| 国产一区二区精品久久99| 一区二区久久| 亚洲精选成人| 老司机凹凸av亚洲导航| 久久久久国产精品一区| 欧美视频一区二区三区四区| 欧美插天视频在线播放| 国产一区二区按摩在线观看| 99伊人成综合| 99精品欧美一区| 老司机免费视频久久| 欧美制服第一页| 欧美三级精品| 亚洲精品免费电影| 亚洲高清不卡在线观看| 午夜在线a亚洲v天堂网2018| 黄色工厂这里只有精品| 亚洲欧美日韩精品久久久久| 欧美日韩免费一区二区三区视频 | 日韩视频在线你懂得| 久久久久久婷| 亚洲欧美一级二级三级| 欧美日韩亚洲一区三区| 欧美成人精品福利| 亚洲国产欧美国产综合一区| 欧美一级黄色录像| 久久久久久久久久码影片| 女生裸体视频一区二区三区| 亚洲大黄网站| 国产日韩欧美在线视频观看| 亚洲无限av看| 久久国产一区二区三区| 国产精品久久中文| 性欧美xxxx视频在线观看| 亚洲影院色在线观看免费| 欧美三级乱码| 亚洲九九精品| 久久成人免费网| 免费日韩av片| 日韩亚洲欧美一区| 欧美日韩小视频| 一本久久a久久精品亚洲| 亚洲欧美一区二区三区在线| 欧美色精品在线视频| 亚洲免费伊人电影在线观看av| 亚洲女同同性videoxma| 好看的av在线不卡观看| 久久成人羞羞网站| 亚洲精品一区在线观看香蕉| 亚洲视频每日更新| 国产一区二区三区观看 | 老司机aⅴ在线精品导航| 狠狠干综合网| 欧美精品一区二区三区在线播放| 亚洲激情综合| 亚洲欧美激情一区| 在线看日韩av| 欧美成人黄色小视频| 亚洲图片欧美一区| 久久精品亚洲一区| 亚洲精品视频一区二区三区| 欧美精品二区三区四区免费看视频| 亚洲精品乱码久久久久久黑人| 亚洲综合成人在线| 黄色亚洲大片免费在线观看| 欧美日韩不卡一区| 午夜影院日韩| 在线看日韩av| 国产九九视频一区二区三区| 久久久国产精品一区| 亚洲少妇诱惑| 久久一区视频| 香蕉乱码成人久久天堂爱免费 | 午夜在线a亚洲v天堂网2018| 韩日精品中文字幕| 欧美日产国产成人免费图片| 久久久女女女女999久久| 午夜在线一区| 在线亚洲欧美视频| 亚洲国产天堂网精品网站| 国产精品久久久久久久久久妞妞 | 国产精品第13页| 欧美激情久久久|