剛一看這道題,很多蒟蒻就肯定會想道用最短路來做,這題除了有文化的能與不能的限制以外,就是個模板題。那我們只需要修改輸入輸出,再在演算法裡判斷,就可以—————————————————————————————————————————————
沒錯,作者本人就是這樣的。我感覺我的ac只是應為資料太水了
在這有幾個主要的坑點
1,要反著搜(不知道為什麼我正著搜就錯一組,反著就ac了)應該是我的**問題。
2,要處理好文化華之間的排斥關係。
3,處理好你所學習過的文化和其他文化的矛盾判斷。
我是分割線~~~~~~~~~~~~~~~~~~~~~~~~~~~~
由於每個國家與乙個文化,用c[國家民(i)]=cin>>文化種類,來存。
k*k的文化關係矩陣中,可以用有向圖來存,我用是一維陣列:a[文化種類]=排斥的文化。
用乙個集合來存所學過的文化。
有了以上的想法,我們就可以來吸**寫**了
ac如下:
#include
using
namespace std;
const
int inf=
0x3f3f3f3f
;int n,m,k,ts,te;
int c[
100010];
int a[
10010];
struct node};
vector
>v(
10001);
//鄰接表存圖
bool vis[
10010];
//標記點
set<
int> cnt;
//存已學過的文化
int dis[
10010];
//鬆弛專用陣列
void
yja(
int sx)}}
}}}int
main()
for(
int i=
1;i<=k;i++)}
}for
(int i=
1;i<=m;i++
)yja
(te)
;//以終點為起點
if(dis[ts]
==0x3f3f3f3f
)else
while(1
);//放那啥
return0;
}
洛谷 P1078 文化之旅
有一位使者要遊歷各國,他每到乙個國家,都能學到一種文化,但他不願意學習任何一 種文化超過一次 即如果他學習了某種文化,則他就不能到達其他有這種文化的國家 不 同的國家可能有相同的文化。不同文化的國家對其他文化的看法不同,有些文化會排斥外來 文化 即如果他學習了某種文化,則他不能到達排斥這種文化的其他...
洛谷P1078 文化之旅
題目提供者洛谷onlinejudge 標籤noip普及組2012 難度普及 提高 時空限制1s 128mb 提交 討論 題解有一位使者要遊歷各國,他每到乙個國家,都能學到一種文化,但他不願意學習任何一 種文化超過一次 即如果他學習了某種文化,則他就不能到達其他有這種文化的國家 不 同的國家可能有相同...
洛谷 P1078 文化之旅
有一位使者要遊歷各國,他每到乙個國家,都能學到一種文化,但他不願意學習任何一 種文化超過一次 即如果他學習了某種文化,則他就不能到達其他有這種文化的國家 不 同的國家可能有相同的文化。不同文化的國家對其他文化的看法不同,有些文化會排斥外來 文化 即如果他學習了某種文化,則他不能到達排斥這種文化的其他...