p1288飄飄乎居士取能量塊
9月21日,pink生日;9月22日,lina生日;9月23日,輪到到飄飄乎居士(狂歡吧,(*^__^*) 嘻嘻……)。
9月21日,今天是pink的生日,飄飄乎居士當然要去別人的領土大鬧一番啦!
為了收集更多的能量到pink家大鬧,飄飄乎居士準備從後花園中取出自己多年積攢的p個能量塊。後花園一共被劃分n個地區,能量塊被分散在裡面,現在飄飄乎居士拿出地圖,發現自己站在1的地方,而他要做的就是用最短的路程把所有的能量塊取出,並且最後走到位於n的出口處,而飄飄乎居士一直是個懶人,他想知道最少要走多少路程才能夠取到所有的能量塊,並且走到出口
第一行乙個正整數n,表示花園被劃分成了n個地區
接下來乙個n*n的矩陣,代表個點之間的相互距離,資料保證從i走到i沒有路程
在下來乙個整數p,表示一共有p個能量塊
接下來一行,表示各個能量塊的位置,資料保證1和n沒有能量塊,且每個地區最多乙個能量塊
對於所有的資料 0乙個數,飄飄乎居士所要行走的最小距離
30 10 1
3 0 5
1 2 0
12
7花園被分為3個地區,在2號地區有能量塊,飄飄乎居士行走的路線如下
1->3->2->1->3
行走的總路程為7,也就是最後的答案。
題解:
裸狀壓。
1 #include 2 #include 3 #include 4 #include 5 #include 6tyvj1288#define max(a, b) a > b ? a : b
7#define min(a, b) a < b ? a : b
89 inline void read(int &x)
1016
17const
int maxn = 100 + 10;18
const
int maxp = 10 + 5;19
20int
g[maxn][maxn], n, p, dir[maxp], ok1, ok2;
21int f[maxn][1
<
2223
intmain()
2441
if(!ok1) dir[++ p] = 1;42
if(!ok2) dir[++ p] =n;
4344 std::sort(dir + 1, dir + 1 +p);
45 f[1][1] = 0;46
//f[i][s]表示從1出發走到點i,取到了s的能量塊的最短路徑
47 register int m = 1
<
48for(register int s = 1;s < m;++s)
4961}62
}63 printf("
%d", f[n][m - 1
]);64
return0;
65 }
Tyvj P1288 飄飄乎居士取能量塊
背景 9月21日,pink生日 9月22日,lina生日 9月23日,輪到到飄飄乎居士 狂歡吧,嘻嘻 描述 9月21日,今天是pink的生日,飄飄乎居士當然要去別人的領土大鬧一番啦!為了收集更多的能量到pink家大鬧,飄飄乎居士準備從後花園中取出自己多年積攢的p個能量塊。後花園一共被劃分n個地區,能...
12 8 8 可見與隱藏
1 超出範圍 overflow屬性 1.visble 表示層的大小和內容都會自動顯示出來 2.auto 表示在只在內容超出層的範圍時才顯示滾動條 3.hidden 表示會隱藏超出層範圍的內容 4.scroll 表示從事顯示滾動條。2 可見屬性 visibility 1.inherit 表示繼承父物件...
1288 幸運轉盤(一)
傳說中每乙個人都有乙個幸運轉盤,在人生的某些特殊時刻,我們會在睡夢中 良好睡眠哦 悄悄的轉動自己的幸運轉盤,轉盤的結果會影響著自己的心情,並改變自己的命運。現在到你旋轉幸運轉盤的時候了,你有乙個m m的轉盤,並且有t次機會轉動它,每一次轉動,你可以選擇它的轉動方向,並讓它相對於上一次轉動一定的角度。...