• [BZOJ 3033] 太鼓达人


    [题目链接]

             https://www.lydsy.com/JudgeOnline/problem.php?id=3033

    [算法]

             欧拉回路

    [代码]

            

    #include<bits/stdc++.h>
    using namespace std;
    const int MAXS = 1 << 13;
    
    int k,tot,t;
    stack< int > s;
    int head[MAXS];
    char ans[110];
    
    struct edge
    {
            int to,w,nxt;
            bool flag;
    } e[MAXS];
    
    template <typename T> inline void read(T &x)
    {
        int f = 1; x = 0;
        char c = getchar();
        for (; !isdigit(c); c = getchar()) if (c == '-') f = -f; 
        for (; isdigit(c); c = getchar()) x = (x << 3) + (x << 1) + c - '0';
        x *= f;
    }
    inline void addedge(int u,int v,int w)
    {
            tot++;
            e[tot] = (edge){v,w,head[u],false};
            head[u] = tot;
    }
    inline void dfs(int u)
    {
            for (int i = head[u]; i; i = e[i].nxt)
            {
                    if (!e[i].flag)
                    {
                            e[i].flag = true;
                            dfs(e[i].to);
                            s.push(e[i].w);
                    }
            }
    }
    
    int main() 
    {
            
            read(k);
            cout<< (1 << k) << ' ';
            int mask = (1 << (k - 1)) - 1;
            for (int i = 0; i <= mask; i++)
            {
                    addedge(i,((i << 1) | 1) & mask,1);
                    addedge(i,(i << 1) & mask,0);
            }
            dfs(0);
            t = k - 1;
            for (int i = 1; i < k; i++) ans[i] = '0';
            while (!s.empty())
            {
                    ans[++t] = s.top() + '0';
                    s.pop();
            }
            for (int i = 1; i < k; i++) ans[t - i + 1] = 0;
            printf("%s
    ",ans + 1);
            
            return 0;
        
    }
  • 相关阅读:
    java反编译工具
    Eclipse反编译插件: Jodeclipse与JadClipse
    Apk修改利器:ApkToolkit v2.1
    新浪微博2.5.1 for Android 去广告
    java
    第K顺序统计量
    身份证号码
    pop3
    google
    Exception
  • 原文地址:https://www.cnblogs.com/evenbao/p/9507822.html
Copyright © 2020-2023  润新知