关于P1137 旅行计划莫名出错
  • 板块题目总版
  • 楼主LingDing_AFO
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/7/27 11:47
  • 上次更新2023/10/27 18:11:51
查看原帖
关于P1137 旅行计划莫名出错
518252
LingDing_AFO楼主2022/7/27 11:47

我是用的vector邻接表写的,样例和第一个点能A掉,但是后四个点WA,开O2的话WA变RE 不知道为什么,麻烦各位dalao帮忙。

#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
const int maxn = 1e5 + 5;
int n,m;
queue<int> q;
vector<int> v[maxn];
int rudu[105];
int f[maxn];
void topu()
{
	for(int i = 1;i <= n;i++)
	{
		if(rudu[i] == 0)
		{
			f[i] = 1;
			q.push(i);
		}	
	}
	while(!q.empty())
	{
		int x = q.front();
		q.pop();
		for(vector<int>::iterator it = v[x].begin();it != v[x].end();it++)
		{
			rudu[*it]--;
			if(rudu[*it] == 0)
			{
				f[*it] = max(f[*it],f[x] + 1);
				q.push(*it);
			}
		}
	}
}
int main()
{
	cin >> n >> m;
	for(int i = 1;i <= m;i++)
	{
		int a,b;
		cin >> a >> b;
		v[a].push_back(b);
		rudu[b]++;
	}
	topu();
	for(int i = 1;i <= n;i++)
	{
		cout << f[i] << endl;
	}
	return 0;
}
2022/7/27 11:47
加载中...