洛谷P1690 貪婪的Copy 題解

2021-08-30 21:53:21 字數 1279 閱讀 8174

這道題就是一道最短路的題目,因為看到資料範圍:

n

≤100

n\leq100

n≤10

0

所以考慮使用flo

yd

floyd

floyd

我們先用o(n

3)

o(n^3)

o(n3

)的時間複雜度來跑一遍flo

yd

floyd

floy

d,然後考慮每個藏寶點,發現藏寶點p的範圍:

p ≤10

p\leq10

p≤10

我們可以考慮所有情況的窮舉,所以說是乙個數列的全排列,最多隻需要列舉10!=3628800種情況即可。

推薦使用nex

tnext

next

_p er

muta

tion

()

permutation()

permut

atio

n()函式.

此函式比如nex

tnext

next

_p er

muta

tion

(t+1

,t+1

+p

)permutation(t+1,t+1+p)

permut

atio

n(t+

1,t+

1+p)

;就是生成一下t這個數列從下標1到下標p的下乙個全排列。

藉此我們即可列舉所有情況。

下面見**

#include#include#include#includeusing namespace std;

int f[105][105],t[15];

int main()

} for(int k=1;k<=n;k++)

}}//floyd最短路模板,不再贅述

int p;

scanf("%d",&p);

for(int i=1;i<=p;i++)

sort(t+1,t+p+1);//首先排列一下,為從小到大排序,以此為起點

int tmp=1,ans=2147483647;

while(tmp!=0)//還有就是那個函式如果已經用過這種排列,它的返回值就是0

printf("%d",ans);

return 0;//bye~

}

洛谷P1690 貪婪的Copy

copy從盧牛那裡聽說在一片叫yz的神的領域埋藏著不少寶藏,於是copy來到了這個被劃分為個區域的神地。盧牛告訴了copy這裡共有個寶藏,分別放在第pi個 1 pi n 區域。copy還得知了每個區域之間的距離。現在copy從1號區域出發,要獲得所有的寶藏並到n號區域離開。copy很懶,只好來找你為...

洛谷P1690 貪婪的Copy 題解

這道題就是一道最短路的題目,因為看到資料範圍 n 100n leq100n 100 所以考慮使用floydfloydfl oyd 我們先用o n3 o n 3 o n3 的時間複雜度來跑一遍floydfloydfl oyd,然後考慮每個藏寶點,發現藏寶點p的範圍 p 10p leq10p 10我們可...

洛谷P1690 貪婪的Copy 題解

這道題就是一道最短路的題目,因為看到資料範圍 n 100n 100 所以考慮使用flo ydfl oyd我們先用o n 3 o n3 的時間複雜度來跑一遍flo ydfl oyd,然後考慮每個藏寶點,發現藏寶點p的範圍 p 10p 1 0我們可以考慮所有情況的窮舉,所以說是乙個數列的全排列,最多隻需...