引水工程(第八届)
引水工程
時(shí)間限制:2000?ms ?|? 內(nèi)存限制:65535?KB 難度:3 描述南水北調(diào)工程是優(yōu)化水資源配置、促進(jìn)區(qū)域協(xié)調(diào)發(fā)展的基礎(chǔ)性工程,是新中國(guó)成立以來(lái)投資額最大、涉及面最廣的戰(zhàn)略性工程,事關(guān)中華民族長(zhǎng)遠(yuǎn)發(fā)展。“南水北調(diào)工程”,旨在緩解中國(guó)華北和西北地區(qū)水資源短缺的國(guó)家戰(zhàn)略性工程。就是把中國(guó)長(zhǎng)江流域豐盈的水資源抽調(diào)一部分送到華北和西北地區(qū)。我國(guó)南澇北旱,南水北調(diào)工程通過(guò)跨流域的水資源合理配置,促進(jìn)南北方經(jīng)濟(jì)、社會(huì)與人口、資源、環(huán)境的協(xié)調(diào)發(fā)展。
整個(gè)工程分東線、中線、西線三條調(diào)水線。東線工程位于東部,因地勢(shì)低需抽水北送至華北地區(qū)。中線工程從漢水與其最大支流丹江交匯處的丹江口水庫(kù)引水,自流供水給黃淮海平原大部分地區(qū),20多座大中城市;西線工程在青藏高原上,由長(zhǎng)江上游向黃河上游補(bǔ)水。
現(xiàn)在有N個(gè)區(qū)域需要建設(shè)水資源工程,它們可以自建水庫(kù)解決缺水問(wèn)題,也可以從已有水源的地區(qū)建立管道引水過(guò)來(lái)。當(dāng)然,這些建設(shè)都需要大量投資。
你能不能給出一個(gè)優(yōu)化水資源配置方案,在保證每個(gè)區(qū)域都能用上水的前提下,使得整個(gè)引水工程費(fèi)用最低。
輸入接下來(lái)對(duì)每組測(cè)試數(shù)據(jù):
第1行: N 表示有N個(gè)區(qū)域( 1<=N<=300 )
第2 行: W1 W2 …. WN Wi表示第i個(gè)區(qū)域自建水庫(kù)需要的費(fèi)用
再有N行: Pi1 Pi2 …. Pin Pij表示建立第i個(gè)區(qū)域與第j個(gè)區(qū)域引水管道的費(fèi)用
AC代碼:
#include<iostream> #include<cstring> #include<algorithm> #include<cmath> #define INF 0x3f3f3f3f //只能為0x3f3f3f3f,不能為0xffffff using namespace std; int pos,i,j,ans; int K,N; int map[310][310],low[310],vis[310]; int prim(){ans=0;while(true){pos=0;for(i=1;i<=N;i++){if(!vis[i]&&low[i]<low[pos])pos=i;}if(pos==0)break;vis[pos]=1;ans+=low[pos];for(i=1;i<=N;i++)low[i]=min(low[i],map[pos][i]);}return ans; } int main() {while(cin>>K)while(K--){cin>>N;memset(map,INF,sizeof(map));memset(vis,0,sizeof(vis));memset(low,INF,sizeof(low));for(i=1;i<=N;i++)cin>>low[i];for(i=1;i<=N;i++)for(j=1;j<=N;j++)cin>>map[i][j];prim();cout<<ans<<endl;}return 0; }總結(jié)
- 上一篇: Interference Signal
- 下一篇: 破门锁