時間限制:
1000ms
單點時限:
1000ms
記憶體限制:
256mb
小hi和小ho準備國慶期間去a國旅遊。a國的城際交通比較有特色:它共有n座城市(編號1-n);城市之間恰好有n-1條公路相連,形成乙個樹形公路網。小hi計畫從a國首都(1號城市)出發,自駕遍歷所有城市,並且經過每一條公路恰好兩次——來回各一次——這樣公路兩旁的景色都不會錯過。
令小hi苦惱的是他的小夥伴小ho希望能以某種特定的順序遊歷其中m個城市。例如按3-2-5的順序遊歷這3座城市。(具體來講是要求:第一次到達3號城市比第一次到達2號城市早,並且第一次到達2號城市比第一次到達5號城市早)。
小hi想知道是否有一種自駕順序滿足小ho的要求。
輸入第一行是乙個整數t(1<=t<=20),代表測試資料的數量。
每組資料第一行是乙個整數n(1 <= n <= 100),代表城市數目。
之後n-1行每行兩個整數a和b (1 <= a, b <= n),表示ab之間有公路相連。
之後一行包含乙個整數m (1 <= m <= n)
最後一行包含m個整數,表示小ho希望的遊歷順序。
yes或者no,表示是否有一種自駕順序滿足小ho的要求。
樣例輸入
271 2
1 32 4
2 53 6
3 73
3 7 2
71 2
1 32 4
2 53 6
3 73
3 2 7
樣例輸出
yesno
#include#include#include#include#include#include#include#include#include#include#include#define l(x) (x<<1)
#define r(x) (x<<1|1)
#define mid(x,y) ((x+y)>>1)
#define bug(msg) cout << msg << endl;
using namespace std;
#define eps 1e-8
#define n 105
bitsetbt[n];
int n,m;
int aroad[n];
vectorvpath[n];
bool isvisited[n];
int ncurpos;
void clearpath()
void inputpath()
}void inputroad()
void clearbitset()
}void dfs_initbitset(int nnode, int nprenode)
}bool dfs(int nnode, int nprenode)
}if (ncurpos == ntmppos)
return false;
}return false;
}bool solve()
int main()
return 0;
}
hihocoder 1041 國慶出遊
傳送門 描述 小hi和小ho準備國慶期間去a國旅遊。a國的城際交通比較有特色 它共有n座城市 編號1 n 城市之間恰好有n 1條公路相連,形成乙個樹形公路網。小hi計畫從a國首都 1號城市 出發,自駕遍歷所有城市,並且經過每一條公路恰好兩次 來回各一次 這樣公路兩旁的景色都不會錯過。令小hi苦惱的是...
hihocoder 1041國慶出遊(搜尋)
小hi和小ho準備國慶期間去a國旅遊。a國的城際交通比較有特色 它共有n座城市 編號1 n 城市之間恰好有n 1條公路相連,形成乙個樹形公路網。小hi計畫從a國首都 1號城市 出發,自駕遍歷所有城市,並且經過每一條公路恰好兩次 來回各一次 這樣公路兩旁的景色都不會錯過。令小hi苦惱的是他的小夥伴小h...
1041 國慶出遊
時間限制 1000ms 單點時限 1000ms 記憶體限制 256mb 小hi和小ho準備國慶期間去a國旅遊。a國的城際交通比較有特色 它共有n座城市 編號1 n 城市之間恰好有n 1條公路相連,形成乙個樹形公路網。小hi計畫從a國首都 1號城市 出發,自駕遍歷所有城市,並且經過每一條公路恰好兩次 ...