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 提交 討論 題解有一位使者要遊歷各國,他每到乙個國家,都能學到一種文化,但他不願意學習任何一 種文化超過一次 即如果他學習了某種文化,則他就不能到達其他有這種文化的國家 不 同的國家可能有相同...