tsinsen A1220 複雜的大門 陳許旻

2021-07-10 04:19:37 字數 2024 閱讀 6497

a1220. 複雜的大門(陳許旻)

時間限制:

1.0s   記憶體限制:

512.0mb

總提交次數:

132ac次數:

74   平均分:

67.84

試題**

2011中國國家集訓隊命題答辯

問題描述

你去找某bm玩,到了門口才發現要開啟他家的大門不是一件容易的事……

他家的大門外有n個站台,用1到n的正整數編號。你需要對每個站台訪問一定次數以後大門才能開啟。站台之間有m個單向的傳送門,通過傳送門到達另乙個站台不需要花費任何代價。而如果不通過傳送門,你就需要乘坐公共汽車,並花費1單位的錢。值得慶幸的是,任意兩個站台之間都有公共汽車直達。

現在給你每個站台必須訪問的次數f

i,對於站台i,你必須恰好訪問f

i次(不能超過)。

我們用u、v、w三個引數描述乙個傳送門,表示從站台u到站台v有乙個最多可以使用w次的傳送門(不一定要使用w次)。值得注意的是,對於任意一對傳送門(u

1,v1)和(u

2,v2),如果有u

12,則有v

1≤v2;如果有v

12,則有u

1≤u2;且u

1=u2和v

1=v2不同時成立。

你可以從任意的站台開始,從任意的站台結束。出發去開始的站台需要花費1單位的錢。你需要求出開啟大門最少需要花費多少單位的錢。

輸入格式

第一行包含兩個正整數n、m,意義見題目描述。

第二行包含n個正整數,第i個數表示f

i。接下來有m行,每行有三個正整數u、v、w,表示從u到v有乙個可以使用w次的傳送門。

輸出格式

輸出一行乙個整數,表示開啟大門最少花費的錢數。

樣例輸入

4 35 5 5 5

1 2 1

3 2 1

3 4 1

樣例輸出 17

資料規模及約定

有20%的資料滿足n≤10,m≤50;對於所有的w、f

i,滿足1≤w,f

i≤10。有50%的資料滿足n≤1000,m≤10000。100%的資料滿足1≤n≤10000,1≤m≤100000;對於所有的u、v,滿足1≤u,v≤n,u≠v;對於所有的w、f

i,滿足1≤w,f

i≤50000。

以上的每類資料中都存在50%的資料滿足對於所有的w、f

i,有w=f

i=1。

時限1s

題解:此題是一道網路流的題目。輸出開啟大門最少花費的錢數實際上就是求總的經過的數目-最大使用傳送門的次數,而最多使用傳送門的次數可以用最大流來求解。

首先拆點,把每個點拆成起點和終點,然後從源點向所有的起點連邊,權值為該點所需要的經過次數,然後從終點向匯點連邊,權值為該點所需要的經過次數,然後處理傳送門的資訊,傳送門的起點向終點連邊,權值為傳送門最大使用的次數。這樣就可以跑最大流啦。因為是二分圖,所有果斷選擇dinic。

#include#include#include#include#includeusing namespace std;

int n,m,i,j,f[10003],sum=0;

int tot,next[400003],point[30000],v[400003],remain[400003];

int deep[30000],cur[30000];

const int inf=1e9;

void add(int x,int y,int z)

bool bfs(int s,int t)

}if (deep[t]>inf) return false;

else return true;

}int dfs(int now ,int t,int limit)

}return flow;

}int dinic(int s,int t)

int main()

for (i=1;i<=m;i++)

printf("%d",sum-dinic(0,2*n+1));

}

uva1220樹的最大獨立集

題意 公司裡除了老闆,每個人都有乙個直屬上司,要求選盡量多的人,但不能同時選乙個人和他的直屬上司,問最多能選多少個人,以及在人數最多的情況下方案是否唯一。思路 d u 0 表示不選u點能得到的最大人數d u 0 sum d u 1 表示選u點能得到的最大人數d u 1 sum f u 0 表示不選u...

12 20 對王建民老師的評價 個人期末總結

對王建民老師的評價 個人期末總結 今天進行了最後一次大考,大考題目為房產資訊管理系統。其中又三位角色,各自實現不同的功能。大概耗時5個小時將其全部完善!可能有點長了哈!但是每次寫新的題目都會遇到一些小問題,小 bug,當然這次也是不例外。所以花費的時間有些長!王建民老師可以說是我從小到現在所有老師中...

複雜的宣告

int a 整型變數 int a 整型指標變數 int a 整型指標的指標變數 int a 10 整型陣列 int a 10 整型指標陣列 int a 10 陣列指標變數 int a int 函式指標變數 int a 10 int 函式指標陣列 int fp1 int 10 fp1 函式指標變數,指...