题目:How Long Does It Take
Given the relations of all the activities of a project, you are supposed to find the earliest completion time of the project.
Input Specification:Each input file contains one test case. Each case starts with a line containing two positive integers N (≤100), the number of activity check points (hence it is assumed that the check points are numbered from 0 to N−1), and M, the number of activities. Then M lines follow, each gives the description of an activity. For the i
-th activity, three non-negative numbers are given: S[i]
, E[i]
, and L[i]
, where S[i]
is the index of the starting check point, E[i]
of the ending check point, and L[i]
the lasting time of the activity. The numbers in a line are separated by a space.
For each test case, if the scheduling is possible, print in a line its earliest completion time; or simply output "Impossible".
9 12
0 1 6
0 2 4
0 3 5
1 4 1
2 4 1
3 5 2
5 4 0
4 6 9
4 7 7
5 7 4
6 8 2
7 8 4
Sample Output 1:
18
Sample Input 2:
4 5
0 1 1
0 2 2
2 1 3
1 3 4
3 2 5
Sample Output 2:
Impossible
题目就是陈越姥姥所讲的那个题(8.2讲),那题意就不用多说了,直接上码。
#include
#include
#include
#define max 105
#define INF 10000
int t[max][max];//邻接矩阵
typedef struct node edge;//记录指向该点的边有多少
struct node{
int ne;
};
edge t2[max];
int n,w;//点的个数和边的个数
void play()//初始化
{
for(int i=0;isum[i]){
sum[i]=t[v][i]+sum[v];
}
}
}
}
if(cnt)//如果成环
{
printf("Impossible");
return ;
}
else {
for(int i=0;i
第一次写csdn嘛,代码可能写的不好,兄弟们见谅了。欢迎评论区大家一起讨论。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)