P1113 杂务 toposort思维
作者:
多米尼克領主的致意
,
2024-05-07 17:14:14
,
所有人可见
,
阅读 4
主要思路是所有杂物同时干 那么某一项杂物的时间就是前置时间最大值加上这一项
并且可以得出此题的图是多个树状的DAG 可以采取拓扑的思路 O(1e7)左右
#include<bits/stdc++.h>
using namespace std;
const int N = 1e4 + 10;
int ans[N];
int n;
int res;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n;
for(int i = 1;i <= n;i++)
{
int no, time;
cin >> no >> time;
int pre;
int mx = 0;
while(cin >> pre && pre)
mx = max(mx, ans[pre]);
ans[i] = mx + time;
res = max(res, ans[i]);
}
cout << res;
return 0;
}