DFS 洛谷P1078 文化之旅

2021-10-08 23:08:07 字數 1477 閱讀 4717

sample2-out

10
資料不大,dfs+剪枝即可。需要注意的是學完一門文化是可以到這門文化排斥的地方的,只是不能到這門文化被排斥的地方。

code–

#include

#include

#include

using

namespace std;

int n,k,m,s,t,t,pd,xx,yy,uu,d[

1001

],c[

1001

],pc[

1001][

1001

],pd[

1001

],l[

1001

],ans=

100000000

;struct asdf a[

2000001];

intdfs

(int d,

int bs)

if(d[mbd]

+bs>ans)

return

10000000

;//剪枝

for(

int i=l[d]

; i; i=a[i]

.next)

}return d[mbd];}

intmain()

for(

int i=

1; i<=k;

++i)

for(

int j=

1; j<=k;

++j)

}for

(int i=

1; i<=m;

++i)

++pd[c[s]];

//這個是動態的,隨著dfs更新,用來存哪種文化的點不能去

for(

int j=

1; j<=pc[c[s]][

0];++j)

++pd[pc[c[s]

][j]];

dfs(s,0)

;if(ans!=

100000000

)printf

("%d"

,ans)

;else

printf

("-1");

return0;

}

P1078 文化之旅 洛谷

剛一看這道題,很多蒟蒻就肯定會想道用最短路來做,這題除了有文化的能與不能的限制以外,就是個模板題。那我們只需要修改輸入輸出,再在演算法裡判斷,就可以 沒錯,作者本人就是這樣的。我感覺我的ac只是應為資料太水了 在這有幾個主要的坑點 1,要反著搜 不知道為什麼我正著搜就錯一組,反著就ac了 應該是我的...

洛谷 P1078 文化之旅

有一位使者要遊歷各國,他每到乙個國家,都能學到一種文化,但他不願意學習任何一 種文化超過一次 即如果他學習了某種文化,則他就不能到達其他有這種文化的國家 不 同的國家可能有相同的文化。不同文化的國家對其他文化的看法不同,有些文化會排斥外來 文化 即如果他學習了某種文化,則他不能到達排斥這種文化的其他...

洛谷P1078 文化之旅

題目提供者洛谷onlinejudge 標籤noip普及組2012 難度普及 提高 時空限制1s 128mb 提交 討論 題解有一位使者要遊歷各國,他每到乙個國家,都能學到一種文化,但他不願意學習任何一 種文化超過一次 即如果他學習了某種文化,則他就不能到達其他有這種文化的國家 不 同的國家可能有相同...