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]
- CSP歷年複賽題-P3956 [NOIP2017 普及組] 棋盤
- CSP歷年複賽題-P3957 [NOIP2017 普及組] 跳房子
- CSP歷年複賽題-P3954 [NOIP2017 普及組] 成績
- NOIP 2017初賽普及組C/C++答案詳解C++
- CSP歷年複賽題-P1043 [NOIP2003 普及組] 數字遊戲遊戲
- CSP歷年複賽題-P1062 [NOIP2006 普及組] 數列
- CSP歷年複賽題-P1055 [NOIP2008 普及組] ISBN 號碼
- CSP歷年複賽題-P1070 [NOIP2009 普及組] 道路遊戲遊戲
- CSP歷年複賽題-P1309 [NOIP2011 普及組] 瑞士輪
- CSP歷年複賽題-P1983 [NOIP2013 普及組] 車站分級
- CSP歷年複賽題-P1094 [NOIP2007 普及組] 紀念品分組
- CSP歷年複賽題-P1085 [NOIP2004 普及組] 不高興的津津
- CSP歷年複賽題-P1069 [NOIP2009 普及組] 細胞分裂
- P1075 [NOIP2012 普及組] 質因數分解
- CSP歷年複賽題-P5015 [NOIP2018 普及組] 標題統計
- CSP歷年複賽題-P1015 [NOIP1999 普及組] 迴文數
- CSP歷年複賽題-P1028 [NOIP2001 普及組] 數的計算
- CSP歷年複賽題-P1093 [NOIP2007 普及組] 獎學金
- CSP歷年複賽題-P1310 [NOIP2011 普及組] 表示式的值
- 開發者驅動文化(Developer Driven Culture)Developer
- CSP歷年複賽題-P1060 [NOIP2006 普及組] 開心的金明
- CSP歷年複賽題-P1068 [NOIP2009 普及組] 分數線劃定
- CSP歷年複賽題-P1308 [NOIP2011 普及組] 統計單詞數
- 1008 選數 2002年NOIP全國聯賽普及組
- CSP歷年複賽題-P5018 [NOIP2018 普及組] 對稱二叉樹二叉樹
- 1009 產生數 2002年NOIP全國聯賽普及組
- CSP歷年複賽題-P1023 [NOIP2000 普及組] 稅收與補貼問題
- 1126 數字統計 2010年NOIP全國聯賽普及組
- CCF-NOIP-2018 提高組(複賽) 模擬試題(一)
- CCF-NOIP-2018 提高組(複賽) 模擬試題(三)
- 2020.10.16 【NOIP2014】普及組模擬賽總結
- NOIP2017複賽爆炸記
- 洛谷[NOIP2015 普及組] 金幣
- P3957[NOIP2017普及組]跳房子
- P3957 [NOIP2017 普及組] 跳房子
- 2020牛客NOIP賽前集訓營-普及組(第一場) 牛牛的跳跳棋