这是怎么肥四?
我获取了样例一,答案是对的,但还是wa了,为什么0分?!求调。
#include <bits/stdc++.h>
#define LL long long
#define DB double
using namespace std;
const int N = 1e4 + 10;
int n, m;
int id, t;
int size, F[N], Ind[N], Time[N];
vector <int> V[N];
void Topsort()
{
queue <int> q;
for(int i = 1; i <= n; i ++ )
{
if(Ind[i] == 0)
{
q.push(i);
F[i] = Time[i];
}
}
while(!q.empty())
{
int u = q.front();
q.pop();
for(int i = 0; i < V[u].size(); i ++ )
{
int v = V[u][i];
Ind[v] -- ;
if(Ind[v] == 0) q.push(v);
F[v] = max(F[v], F[u] + Time[v]);
}
}
int Ans;
for(int i = 1; i <= n; i ++ )
Ans = max(Ans, F[i]);
printf("%d", Ans);
}
int main()
{
scanf("%d", &n);
for(int i = 1; i <= n; i ++ )
{
scanf("%d%d", &id, &t);
int x;
Time[id] = t;
while(scanf("%d", &x))
{
if(x == 0) break;
V[x].push_back(id);
Ind[id] ++ ;
}
}
Topsort();
return 0;
}