题目描述
if(cnt!=n+1||nodes[0]!=nodes[cnt-1]) return false;
错误原因:有一个if分支,没写puts(“NO”)
样例
#include<bits/stdc++.h>
using namespace std;
const int N =210,M=2e4+10;
int n,m,k;
int g[N][N];
int main()
{
// freopen("1.txt","r",stdin);
cin>>n>>m;
for(int i=0;i<m;i++)
{
int a,b;cin>>a>>b;
g[a][b]=g[b][a]=1;
}
// cout<<g[5][1];
cin>>k;
while(k--)
{
int cnt;cin>>cnt;
vector<int> v;
v.resize(cnt);
set<int> st;
for(int i=0;i<cnt;i++)
{
cin>>v[i];st.insert(v[i]);
}
if(st.size()!=n){
puts("NO");continue;
}
if(cnt==(n+1))
{
if(v[0]==v[n])
{
int i;
for(i=0;i<n;i++)
{
if(g[v[i]][v[i+1]]==0)
{
puts("NO"); break;
}
}
if(i==n)
{
puts("YES");continue;
}
}
else puts("NO");
}
else
{
puts("NO");
}
}
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla