NOIP 2012 普及組 複賽 culture 文化之旅
NOIP 2012 普及組 複賽 culture 文化之旅
1.找尋迪傑斯特拉(Dijkstra)演算法,難度適中,過程中,找到該題。
2.結合題意,弄懂輸入輸出樣例是關鍵一步。
3.為了能解決2,紙筆是必須的。
4.讀該題樣例輸入部分,感覺有點象棧,需要相當的記憶。程式設計,對鍛鍊大腦,棧的記憶,有很大作用。
5.該題的資料比較水,n<=100,n^2<=10000,所以超時一般不會。
6.該題可以看作有條件約束的最短路徑。
7.該題的難想之處,在於將aij=1轉化為,兩國之間路徑為INF。
8.可採用Dijkstra演算法,但Floyd演算法寫起來更簡單。
9.因其起點,終點位置未定,故綜合考慮,採用Floyd演算法。
10.此題需注意的一句:距離為 d 的可雙向通行的道路。請注意雙向兩字。
11.還有一句需注意:aij= 1 表示文化 i 排斥外來文化 j。請注意外來兩字。
12.該題需注意,一番資料處理後,還是迴歸基本的最短路徑問題。
附上AC程式碼,編譯環境Dev-C++4.9.9.2
#include
<stdio.h>
#define INF 999999
int main(){
int n,k,m,s,t;
int c[100+10];
int a[100+10][100+10];
int e[100+10][100+10];
int i,j,q;
int u,v,w;
scanf("%d%d%d%d%d",&n,&k,&m,&s,&t);
for(i=1;i<=n;i++)
scanf("%d",&c[i]);
for(i=1;i<=k;i++)
for(j=1;j<=k;j++)
scanf("%d",&a[i][j]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
if(i==j)
e[i][j]=0;
else
e[i][j]=INF;
}
for(i=1;i<=m;i++){
scanf("%d%d%d",&u,&v,&w);
e[u][v]=w;
e[v][u]=w;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i!=j&&a[c[j]][c[i]]==1)
e[i][j]=INF;
for(q=1;q<=n;q++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(e[i][j]>e[i][q]+e[q][j])
e[i][j]=e[i][q]+e[q][j];
if(e[s][t]<INF)
printf("%d\n",e[s][t]);
else
printf("-1\n");
return 0;
}
相關文章
- 1316 文化之旅 2012年NOIP全國聯賽普及組
- NOIP2012pj文化之旅[floyd]
- NOIP 2017初賽普及組C/C++答案詳解C++
- 1008 選數 2002年NOIP全國聯賽普及組
- 1009 產生數 2002年NOIP全國聯賽普及組
- 開發者驅動文化(Developer Driven Culture)Developer
- 1126 數字統計 2010年NOIP全國聯賽普及組
- 2020.10.16 【NOIP2014】普及組模擬賽總結
- CCF-NOIP-2018 提高組(複賽) 模擬試題(一)
- CCF-NOIP-2018 提高組(複賽) 模擬試題(三)
- NOIP2017複賽爆炸記
- 2020牛客NOIP賽前集訓營-普及組(第一場) 牛牛的跳跳棋
- P2671 [NOIP2015 普及組] 求和
- 2020牛客NOIP賽前訓練營-普及組第一場牛牛的跳跳棋題解
- 問題 D: NOIP2004普及組第2題 花生採摘
- 組織2012北京敏捷之旅活動有感敏捷
- NOIP模擬賽2
- 2020.10.07【普及組】模擬賽C組 總結
- P1002 [NOIP2002 普及組] 過河卒
- 【NOIP複賽篇1】上機指南(一)環境搭建和執行
- 1043 方格取數 2000年NOIP全國聯賽提高組
- 1058 合唱隊形 2004年NOIP全國聯賽提高組
- 問題 B: NOIP2009普及組第2題 分數線劃定
- 8 27 組隊賽 Greater New York 2012
- 1068 烏龜棋 2010年NOIP全國聯賽提高組
- NOIP2011提高組初賽不定項選擇第5題
- 洛谷題單指南-線性表-P2058 [NOIP2016 普及組] 海港
- 1099 字串變換 2002年NOIP全國聯賽提高組字串
- How to: Set the Culture and UI Culture for ASP.NET Web Page GlobalizationUIASP.NETWeb
- NOIP2013積木大賽
- NOIP2024 模擬賽1
- 洛谷題單指南-動態規劃1-P1048 [NOIP2005 普及組] 採藥動態規劃
- NOIP複習之1 數學數論
- NOIP2011 提高組 Mayan
- C++ 與複雜性文化C++
- 11.1NOIP模擬賽解題報告
- NOIP模擬賽20161023
- 洛谷題單指南-二叉樹-P1030 [NOIP2001 普及組] 求先序排列二叉樹