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