zoukankan      html  css  js  c++  java
  • Luogu P2731 骑马修栅栏 Riding the Fences

    圈套圈板子题,详解推荐看这位大佬的博客:https://www.cnblogs.com/acxblog/p/7390301.html

    #include <bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define forn(i,n) for(int i=0;i<n;i++)
    #define for1(i,n) for(int i=1;i<=n;i++)
    #define IO ios::sync_with_stdio(false);cin.tie(0)
    const int maxn = 1e3+50;
    #pragma GCC optimize(2)
    vector<int>E[maxn];
    int head[maxn],tot = 1,vis[maxn][maxn],tim[maxn],ans[maxn],cnt;
    void init(){
        forn(i,maxn) head[i] = -1;
        tot = 1;
    }
    struct edge{    
        int nex,to;
    }e[maxn<<1];
    void add(int u,int v){
        e[tot].to = v;
        e[tot].nex = head[u];
        head[u] = tot++;
    }
    void dfs(int u){
        for(int i = head[u];i!=-1;i = e[i].nex){
            int v = e[i].to;
            if(!vis[u][v]) continue;
            vis[u][v]--,vis[v][u]--;
            dfs(v);
        }
        ans[++cnt] = u;
    }
    
    int main(){
        IO; 
        init();
        int n;cin>>n;
        forn(i,n){
            int u,v;cin>>u>>v;
            E[u].push_back(v);
            E[v].push_back(u);
            vis[u][v]++;
            vis[v][u]++;
            tim[u]++;
            tim[v]++;
        }
        for1(i,500) {
            sort(E[i].begin(),E[i].end());
            reverse(E[i].begin(),E[i].end());
        }
        for1(i,500)if(!E[i].empty()){
            for(auto &v:E[i]){
                add(i,v);
            }
        }
        bool ok = 1;
        for1(i,500) if(tim[i]&1){
            dfs(i);
            ok = 0;
            break;
        }
        if(ok) for1(i,500) if(!E[i].empty()){
            dfs(i);
            break;
        }
        for(int i = cnt;i>=1;i--) cout<<ans[i]<<'
    ';
        return 0;
    }
    
  • 相关阅读:
    0004- NTFS FAT32
    0003-SQLServer 安装硬件要求
    php文件上传
    PHP 全局变量
    PHP 数组和数组排序
    PHP 函数
    PHP判断语句及循环语句
    PHP(一)
    HTTP请求组成
    扫描器的意义和利用思维
  • 原文地址:https://www.cnblogs.com/AlexPanda/p/12520292.html
Copyright © 2011-2022 走看看