问题: pat我的代码没有问题, 为啥acwing里面会超出时间?
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
const int N = 1010;
bool g[N][N];
bool visit[N];
bool check(vector<int> &res)
{
// 判断是否有跟节点
memset(visit, false, sizeof visit);
for(int i = 0; i < res.size(); i++)
{
for(int j = i + 1; j < res.size(); j++)
{
if (visit[res[j]] == false && g[res[j]][res[i]]) return false;
}
visit[res[i]] = true;
}
return true;
}
int main()
{
int m, n, k;
//cin >> m >> n;
scanf("%d %d", &m , &n);
for(int i = 0; i < n; i++)
{
int a, b;
//cin >> a >> b;
scanf("%d %d",&a ,&b);
g[a][b] = true;
}
//cin >> k;
scanf("%d", &k);
vector<int> p;
for(int i = 0; i < k; i++)
{
vector<int> res(m);
for(int j = 0; j < m; j++)
{
//cin >> res[j];
scanf("%d", &res[j]);
}
bool result = check(res);
if (!result) p.push_back(i);
}
//cout << p[0];
printf("%d",p[0]);
for(int i = 1; i < p.size(); i++) printf(" %d",p[i]);
}
目测PAT数据比较友善,我return了,就没超时
acwing里面的数据,就比较多,5*10^7 还是容易超时,有点边界了