PAT (Advanced Level) Practice - 1122 Hamiltonian Cycle(25 分)

题目链接:点击打开链接

 

题目大意:判断给出的 K 次询问中的结点序列,是否为哈密顿回路?

 

解题思路:判定哈密顿回路条件:
a、路径节点个数等于 n+1;
b、相邻点之间存在连通的边;
c、各点只出现过1次(除了首尾);
d、第一个节点等于最后一个节点(构成回路)。

 

AC 代码

#include
#include

#define mem(a,b) memset(a,b,sizeof a)
#define ssclr(ss) ss.clear(), ss.str("")
#define INF 0x3f3f3f3f
#define MOD 1000000007

using namespace std;

typedef long long ll;

const int maxn=250;

int n,m;
int vis[maxn], a[maxn];
int mp[maxn][maxn];

int main()
{
    int u,v,k,l,f;
    scanf("%d%d",&n,&m);
    for(int i=0;i

 

你可能感兴趣的:(#,ACM,#,PTA,#,技巧题集,#,图,#,Hamiltonian)