tyvjP1288 飄飄乎居士取能量塊

2022-05-02 15:57:13 字數 1571 閱讀 1660

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乙個數,飄飄乎居士所要行走的最小距離

3

0 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 6

#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 }

tyvj1288

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次機會轉動它,每一次轉動,你可以選擇它的轉動方向,並讓它相對於上一次轉動一定的角度。...