• hdu 4850 Wow! Such String!


    这是当时西安邀请赛的题目,也就是因为这道题,我们无缘银牌。。。

    其实这道题的大致想法当时我想出来了,就是我是想找到一条通过所有顶点的通路,顶点是所有的长度是4的子串。但是当时没有尝试搜索,以为不会这么简单就找到那条路。但是现在明白了,对于所有顶点度数为偶数的图,一定可以找到这样一条路的。

    下面是代码

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    const int mod = 26*26*26;
    const int maxn = 26*26*26*26;
    
    bool v[mod][30];
    int used[maxn + 10];
    char s[maxn + 10];
    int num = 0;
    
    int get_next(int a, int x)
    {
        a %= mod;
        a *= 26;
        a += x;
        return a;
    }
    
    int get_x(int a)
    {
        a %= mod;
        int ret = 0, t = a;
        for(int i = 0; i < 26; i++)
        {
            if(v[a][i])
            continue;
    
            if(ret == 0 || used[t] > used[a * 26 + i])
            t = a * 26 + i, ret = i;
        }
        v[a][ret] = 1;
        return ret;
    }
    
    void init()
    {
        int a = 0;
         num = 3;
        for(int i = 0; i < 3; i++)
        s[i] = 'a';
        while(1)
        {
            int x = get_x(a);
            a = get_next(a, x);
    
            if(used[a])
            return;
    
            used[a] = 1;
            s[num++] = 'a' + x;
        }
    }
    
    int main()
    {
        init();
        //cout << num << endl;
        int n;
        while(scanf("%d", &n) == 1)
        {
            if(n > num)
            printf("Impossible");
            else
            for(int i = 0; i < n; i++)
            printf("%c",s[i]);
            printf("
    ");
        }
    }
    View Code
  • 相关阅读:
    TF-IDF
    3.路径模板两张表设计
    6.订单支付回调接口
    5.创建订单并生成支付链接接口
    5.使用ES代替whoosh全文检索
    4.docker基本使用
    3.ubuntu安装docker
    2.课程全文检索接口
    1.搜索引擎工作原理
    7.视频播放页面接口开发
  • 原文地址:https://www.cnblogs.com/ye8370/p/3899962.html
Copyright © 2020-2023  润新知