by 金大師
【T1】路徑
(way.pas/c/cpp)
3s 512MB
【問題描述】
A國有n個城市,編號爲1到n,任意兩個城市之間有一條路。shlw閒得沒事幹想周遊A國,及從城市1出發,經過且僅經過除城市1外的每個城市1次(城市1兩次),最後回到城市1。由於shlw很傻,他只願意走一定長度,多了少了都不幹,現在他想知道一共有多少種方案可供選擇。
【輸入】
輸入文件名爲way.in。
第一行爲兩個整數n,l,分別爲城市數和路程總長。
之後n行,每行n個整數,其中第i行第j列爲Ai,j,滿足Ai,i=0;Ai,j=Aj,i。
【輸出】
輸出文件way.out,共1行,爲總方案數。
【輸入輸出樣例】
way.in |
way.out |
3 6 0 1 3 1 0 2 3 2 0 |
2 |
對於30%,1<=n<=10
對於另外30%,1<=n<=14,1<=l<=30
對於100%,1<=n<=14,1<=Ai,j<=100,000,000,1<=l<=2,000,000,000
悄悄告訴你:數據的答案都很大,反正直接輸0是沒分的,但都在int範圍內。
爲了降低題目難度,Ai,j的種類數不會太多
【T2】樹上路徑
(tree.pas/c/cpp)
1s 512MB
【問題描述】
現在有一棵n個點的無向樹,每個點的編號在1-n之間,求出每個點所在的最長路。
【輸入】
輸入文件名爲tree.in。
第一行爲一個整數n。
之後n-1行,每行三個整數u,v,w,分別表示一條邊連的兩個點和邊權。
【輸出】
輸出文件tree.out,共n行,分別表示經過每個點的最長路。
【輸入輸出樣例】
tree.in |
tree.out |
4 1 2 3 1 3 4 1 4 2 |
7 7 7 6 |
對於50%,1<=n<=1000
對於100%,1<=n<=100000,每個點的度不超過30,1<=u,v<=n,1<=w<=10000
【T3】集體照
(photo.pas/c/cpp)
2s 512MB
【問題描述】
一年一度的高考結束了,我校要拍集體照。本屆畢業生共分n個班,每個班的人數爲Ai。這次拍集體照的要求非常奇怪:所有學生站一排,且相鄰兩個學生不能同班。現在,安排這次集體照的老師找到了你,想問問你一共有多少種方案。方案數可能很大,最終結果對1,000,000,007取模。
【輸入】
輸入文件名爲photo.in。
第一行爲爲一個整數n。
第二行爲n個正整數,分別爲每個班的人數。
【輸出】
輸出文件photo.out,共1行,爲總方案數。
【輸入輸出樣例】
Photo.in |
Photo.out |
2 1 2 |
2 |
2 1 3 |
1 |
3 1 2 3 |
120 |
對於30%,<=10
對於另外10%,n=2
對於另外20%,n=3
對於100%,1<=n<=50,1<=Ai<=50,<=1500