AcWing 1639. 拓扑顺序
原题链接
简单
作者:
seffs
,
2021-08-20 17:04:15
,
所有人可见
,
阅读 341
#include <iostream>
#include <vector>
using namespace std;
int n, m, k;
struct edge
{
int u;
int v;
}e[10010];
int main()
{
cin >> n >> m;
for (int i = 0; i < m; i ++) cin >> e[i].u >> e[i].v;
int k;
vector<int> ans;
cin >> k;
for (int pnt = 0; pnt < k; pnt ++)
{
int pos[1010];
for (int i = 0; i < n; i ++)
{
int x;
cin >> x;
pos[x] = i;
}
bool flag = false;
for (int i = 0; i < m; i ++)
{
if (pos[e[i].u] >= pos[e[i].v])
{
flag = true;
break;
}
}
if (!flag) continue;
else ans.push_back(pnt);
}
for (auto i : ans) cout << i << ' ';
return 0;
}
头像看看