题意:给出一个字符串,包含0、1、*,当中×是能够替换成0或者1的,假设字符串的某个子串S有SSS这种连续反复3次出现,不是Triple-free串,问给出的字符串能够形成多少个非Triple-free串。

题解:由于串长度最多31,所以能够暴力枚举每一位,边枚举边推断。

#include <stdio.h>
#include <string.h>
const int N = 35;
char str[N], str2[N];
int n;
long long res; bool judge(int cur) {
for (int i = 1; i * 3 <= (cur + 1); i++) {
int e = cur - i * 3, cnt2 = 0;
for (int j = cur; j > cur - i; j--) {
int cnt = 0;
for (int k = j; k > e; k -= i)
if (str2[j] != str2[k])
break;
else
cnt++;
if (cnt == 3)
cnt2++;
else
break;
}
if (cnt2 == i)
return false;
}
return true;
} void dfs(int cur) {
if (cur == n) {
res++;
return;
}
if (cur == 0 || cur == 1) {
if (str[cur] == '0' || str[cur] == '1') {
str2[cur] = str[cur];
dfs(cur + 1);
}
else {
str2[cur] = '0';
dfs(cur + 1);
str2[cur] = '1';
dfs(cur + 1);
}
return;
}
str2[cur] = '0';
if (judge(cur)) {
if (str[cur] == '0' || str[cur] == '*')
dfs(cur + 1);
}
str2[cur] = '1';
if (judge(cur)) {
if (str[cur] == '1' || str[cur] == '*')
dfs(cur + 1);
}
} int main() {
int cas = 1;
while (scanf("%d", &n) == 1 && n) {
scanf("%s", str);
res = 0;
dfs(0);
printf("Case %d: %lld\n", cas++, res);
}
return 0;
}

uva 11127(暴力)的更多相关文章

  1. UVA 11754 (暴力+中国剩余定理)

    题目链接: http://www.bnuoj.com/v3/problem_show.php?pid=20172 题目大意:有C个模方程,每个方程可能有k余数,求最小的S个解. 解题思路: 看见模方程 ...

  2. UVA 185(暴力DFS)

      Roman Numerals  The original system of writing numbers used by the early Romans was simple but cum ...

  3. 【每日一题】Squares UVA - 201 暴力+输出坑 + 读文件模板

    题意 给你n*n的图,让你数正方形 题解:暴力for每个点,对于每个点从它出发顺时针走一个正方形.走完就ans[i]++; 坑:多输了一行******,然后在那里手摸样例,无限debug orz #d ...

  4. uva 11088 暴力枚举子集/状压dp

    https://vjudge.net/problem/UVA-11088 对于每一种子集的情况暴力枚举最后一个三人小组取最大的一种情况即可,我提前把三个人的子集情况给筛出来了. 即 f[S]=MAX{ ...

  5. UVA 11464 暴力+位运算 ***

    题意:给你一个 n * n 的 01 矩阵,现在你的任务是将这个矩阵中尽量少的 0 转化为 1 ,使得每个数的上下左右四个相邻的数加起来是偶数.求最少的转化个数. 新风格代码 lrj书上说的很清楚了, ...

  6. UVa 725暴力求解

    A - Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Su Description   Writ ...

  7. Uva 11491 暴力贪心

    题意:给一个n长度的整数,删掉 k 个数字,使得剩下的数字最大. 分析:还剩 n-k 个数字,就是在原序列里面,相对顺序不变的情况下,这个n-k个数字组成的数最大. 感觉没有什么特别好的方法策略,看了 ...

  8. 暴力枚举 UVA 725 Division

    题目传送门 /* 暴力:对于每一个数都判断,是否数字全都使用过一遍 */ #include <cstdio> #include <iostream> #include < ...

  9. 10年省赛-Greatest Number (二分+暴力) + 12年省赛-Pick apples(DP) + UVA 12325(暴力-2次枚举)

    题意:给你n个数,在里面取4个数,可以重复取数,使和不超过M,求能得到的最大的数是多少: 思路:比赛时,和之前的一个题目很像,一直以为是体积为4(最多选择四次)的完全背包,结果并不是,两两求和,然后二 ...

随机推荐

  1. 解压文件夹python

    # _*_ coding: utf-8 _*_ import zipfile import shutil import os print os.getcwd() basedir = os.path.d ...

  2. Tomcat自动发布war包

    有两种方法: 1.将项目打成war包,复制到${tomcat.home}\webapps目录下.当tomcat启动时会自动将其解包. 有人说,不能直接将war文件夹直接复制到${tomcat.home ...

  3. Golang遇到的问题记录

    1,windows cmd 结束输入问题 func main() { counts := make(map[string]int) countLines(os.Stdin, counts) fmt.P ...

  4. [图论训练]BZOJ 2118: 墨墨的等式 【最短路】

    Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在 ...

  5. FZOJ Problem 2110 Star

                                                                                                        ...

  6. 【CF679B】Theseus and labyrinth(数学,贪心)

    题意: 给一个m<=10^15,每次都减最接近当前值的立方数 让你找一个不大于m的最大的数并且这个数是减法次数最多的数 思路:见http://blog.csdn.net/miracle_ma/a ...

  7. net9:图片变成二进制流存入XML文档,从XML文档中读出图片以及从XML文档中读取并创建图片文件

    原文发布时间为:2008-08-10 -- 来源于本人的百度文章 [由搬家工具导入] fileToXml类: using System;using System.Data;using System.C ...

  8. angular杂谈

    <element ng-include="filename" onload="expression" autoscroll="expressio ...

  9. C语言中的数组的访问方式

    闲下来,写的代码,很是简单,不解释,代码如下: #include <stdio.h> int main(int argc, char **argv) { char cArray[] = & ...

  10. kafka性能调优

    https://blog.csdn.net/u013063153/article/details/73826322