zoukankan      html  css  js  c++  java
  • 字符序列(characts)

    字符序列(characts)

    问题描述:

    从三个元素的集合[A,B,C]中选取元素生成一个N 个字符组成的序列,使得没有两个相邻的

    子序列(子序列长度=2)相同,例:N=5 时ABCBA 是合格的,而序列ABCBC 与ABABC 是不

    合格的,因为其中子序列BC,AB 是相同的。

    输入N(1<=N<=12),求出满足条件的N 个字符的所有序列和其总数。

    输入样例:

    4

    输出样例:

    72

    **

     1 #include<iostream>
     2 
     3 #include<cstdlib>
     4 
     5 using namespace std;
     6 
     7 int n,a[100],s;
     8 
     9 void go(int x)
    10 
    11 {
    12 
    13          if (x>n)
    14 
    15          {
    16 
    17                    s++;
    18 
    19                    return;
    20 
    21                    }  //如果这个长度等于要求的长度,就把可能性加一重新进行下一次搜索
    22 
    23          int i;
    24 
    25          for (i=1;i<=3;i++)
    26 
    27          if (a[x-3]*10+a[x-2]!=a[x-1]*10+i)  //判断子序列,如果满足要求则把这个位置放这个值
    28 
    29          {
    30 
    31                    a[x]=i;
    32 
    33                    go(x+1);  //进行下一次搜索
    34 
    35                    }
    36 
    37 }
    38 
    39 int main()
    40 
    41 {
    42 
    43          cin>>n;
    44 
    45          if (n<=2)
    46 
    47          {
    48 
    49                    if (n==1) cout<<3;
    50 
    51                    else cout<<9;
    52 
    53                    cout<<endl;   
    54 
    55                    exit(0);
    56 
    57                    }
    58 
    59          s=0;
    60 
    61          int i,j,k;
    62 
    63          for (i=1;i<=3;i++)
    64 
    65            for (j=1;j<=3;j++)
    66 
    67              for (k=1;k<=3;k++)
    68 
    69            {
    70 
    71                             a[1]=i; a[2]=j; a[3]=k; //枚举出前三个位置所有的可能性在这个情况下进行下一步搜索
    72 
    73                             go(4);
    74 
    75                             }
    76 
    77          cout<<s<<endl;
    78 
    79          return 0;
    80 
    81 }

    前三位位置枚举,后面的值判断满足要求就留在那个位置,满足数量就加一。

    一开始的时候我就直接,枚举前四个数的可能性

  • 相关阅读:
    第13讲——使用类
    第12讲——对象和类
    第11讲——面向对象编程
    第10讲——名称空间
    数论19——高斯消元
    贪心思想
    重要的转变(感觉自己最近堕落必读)
    java面试
    Java泛型
    系统设计
  • 原文地址:https://www.cnblogs.com/rax-/p/8680768.html
Copyright © 2011-2022 走看看