社区讨论
C++和C++11有什么区别
P1113[USACO02FEB] 杂务参与者 5已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @mi6tspil
- 此快照首次捕获于
- 2025/11/20 10:42 4 个月前
- 此快照最后确认于
- 2025/11/20 10:42 4 个月前
同样的代码C++AC
C++全RE
#include<cstdio>
#include<memory.h>
#include<queue>
#define MAXN 10005
#define MAXM 10000005
using namespace std;
int n,id=0;
int Y[MAXM];
int next[MAXM];
int head[MAXN];
int END[MAXN];
int T[MAXN];
int idu[MAXN];
queue<int> Q;
void ADD(int a,int b)
{
Y[++id]=b;
next[id]=head[a];
head[a]=id;
idu[b]++;
}
void SCAN()
{
scanf("%d",&n);
int i;
for(i=1; i<=n; i++)
{
int a,c=1;
scanf("%d",&a);
scanf("%d",&T[a]);
scanf("%d",&c);
while(c)
{
ADD(c,a);
scanf("%d",&c);
}
}
}
int TP()
{
memset(END,0,sizeof(END));
int ans=0;
int i;
for(i=1; i<=n; i++)
if(!idu[i])
{
Q.push(i);
}
while(!Q.empty())
{
int x=Q.front();
Q.pop();
END[x]+=T[x];
ans=ans>END[x]?ans:END[x];
int i;
for(i=head[x]; i; i=next[i])
{
idu[Y[i]]--;
END[Y[i]]=END[Y[i]]>END[x]?END[Y[i]]:END[x];
if(!idu[Y[i]])
{
Q.push(Y[i]);
}
}
}
return ans;
}
int main()
{
SCAN();
printf("%d",TP());
return 0;
}
回复
共 9 条回复,欢迎继续交流。
正在加载回复...