题意:求完成所有工作的最小时间(每个工作进行之前有条件限制)!
代码如下:
#include<iostream>
#define max(a,b) ((a)>(b)?(a):(b))
using namespace std;
const int Max=10050;
int MaxTime[Max];
int main()
{
int n,i,k,t,ans=0,cnt;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d",&t,&cnt);
MaxTime[i]=t;
while(cnt--)
{
scanf("%d",&k);
MaxTime[i]=max(MaxTime[i],t+MaxTime[k]);
}
ans=max(ans,MaxTime[i]);
}
printf("%d\n",ans);
return 0;
}