P1209 几何图形还原

来源:互联网 发布:第一会软件 编辑:程序博客网 时间:2024/05/29 07:49

P1209 几何图形还原
2017年6月3日


#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<cmath>using namespace std;int N;int a, b;bool edges[60][60];int Recalls[60 * 60 + 10];//记录int tails = 0;//Recallsbool Jus[60];bool flag = false;void Putin(){    cin >> N;    memset(edges, false, sizeof(edges));    memset(Jus, false, sizeof(Jus));    while(cin >> a >> b){        edges[a][b] = true;        edges[b][a] = true;    }}inline bool Checke(){    for(int i = 1; i <= N; i++)        if(Jus[i] == false)    return false;    return true;}void Dfs(int s){    if(s == 1 && Checke() == true){        flag = true;        return;    }    for(int i = 1; i <= N; i++)        if(edges[i][s] == true && Jus[i] == false){            edges[i][s] = false;            edges[s][i] = false;            Jus[i] = true;            Dfs(i);            if(flag == true && i != 1){                Recalls[++tails] = i;                return;            }            edges[i][s] = true;            edges[s][i] = true;            Jus[i] = false;        }}int main(){    Putin();    Dfs(1);    cout << 1 << ' ';    for(int i = tails; i >= 1; i--)        cout << Recalls[i] << ' ';    cout << endl;    return 0;}