zoukankan      html  css  js  c++  java
  • uva 129

    暴力求解

    大致题意 如果一个字符串含有相邻的重复字串称为容易的串,反之为非容易

    求字典序第n困难的串……

    大致思路,暴力如果是容易的串停过,然后困难的串继续求解tot++

    总之先记着吧……

    最后输出格式……

    uva 129

    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #include <cstdlib>
    #include <stack>
    #include <cctype>
    #include <string>
    #include <malloc.h>
    #include <queue>
    #include <map>
    
    using namespace std;
    const int INF = 0xffffff;
    const double esp = 10e-8;
    const double Pi = 4 * atan(1.0);
    const int Maxn = 200 + 10;
    const int mod = 10000007;
    const int dr[] = {1,0,-1,0,-1,1,-1,1};
    const int dc[] = {0,1,0,-1,1,-1,-1,1};
    //int dir2[8][2] = {{-1,0},{0,-1},{-1,1},{1,-1},{-1,-1},{1,0},{0,1},{1,1}};
    
    int n,L;
    int a[1000];
    int tot;
    
    bool dfs(int cur){
      if(tot++ == n){
        for(int i = 0;i < cur;i++){
            if(i && i % 4 == 0){
                if(i % (16*4) == 0){
                    cout << endl;
                    //cout << "$$$$";
                }
                else
                    cout << ' ';
            }
            cout << char(a[i] + 'A');
        }
        cout << endl;
        cout << cur << endl;
        return 0;
      }
      for(int i = 0;i < L;i++){
        a[cur] = i;
        bool ok = 1;
        for(int j = 1;j * 2 < cur+2;j++){
            bool flag = 1;
            for(int k = 0;k < j;k++){
                if(a[cur-k] != a[cur-k-j]){
                    flag = 0;
                    break;
                }
            }
            if(flag){
                ok = 0;
                break;
            }
        }
        if(ok){
            if(!dfs(cur+1)){
                return 0;
            }
        }
      }
      return 1;
    }
    
    int main()
    {
    #ifndef ONLINE_JUDGE
        freopen("inpt.txt","r",stdin);
    #endif
        while(cin >> n >> L){
            if(!n && !L)
                break;
            tot = 0;
            dfs(0);
        }
        return 0;
    }
    View Code

    回家一直在玩,好难过……!!!!

    以后要加油……!!!

  • 相关阅读:
    C++ 类 析构函数
    Oracle 11g rac 添加新节点测试
    rac添加新节点的步骤与方法
    X 传输表空间方法留待整理
    1913: 成绩评估
    1066: 输入n个数和输出调整后的n个数
    1005: 渊子赛马
    Problem Y: 哪一天,哪一秒?
    Problem T: 结构体学生信息排序
    Problem O: 国家排序
  • 原文地址:https://www.cnblogs.com/hanbinggan/p/4284296.html
Copyright © 2011-2022 走看看