FZU 2030 括号问题(回溯)
两种做法,一种dp,一种dfs,因为这个数据比较小,所以dfs全排列的方式是可以接受的,但是当比较大的时候就不行了,所以dp的方式还是要掌握一下的,我这里是dfs的做法,网上有很多人写的dp,可以去看一下,尤其是当遍历到右括号的时候的处理方式需要好好想一想
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char a[];
int len,ans,mark[];
bool ok()
{
int lena = strlen(a),tot = ;
for(int i = ;i < lena;i++)
{
if(a[i] == '(')
tot++;
if(a[i] == ')')
tot--;
if(a[i] == '?')
return false;
if(tot < ) return false;
}
if(tot != ) return false;
return true;
}
void dfs(int now)
{
if(now == len)
{
if(ok()) ans++;
return;
}
a[mark[now]] = '(';
dfs(now+);
a[mark[now]] = ')';
dfs(now+);
}
int main()
{
while(~scanf("%s",a))
{
int lena = strlen(a);
len = ;
for(int i = ;i < lena;i++)
{
if(a[i] == '?')
{
mark[len++] = i;
}
}
ans = ;
dfs();
printf("%d\n",ans);
}
return ;
}
FZU 2030 括号问题(回溯)的更多相关文章
- [ An Ac a Day ^_^ ] FZU 2030 括号问题 搜索
FZU一直交不上去 先写在这吧 #include<stdio.h> #include<iostream> #include<algorithm> #include& ...
- FZU Problem 2030 括号问题
Problem Description 给出一个字符串,其中包括3种字符: ‘(‘, ‘)’, ‘?’.其中?表示这个字符可以是’(‘也可以是’)’. 现在给出字符串S,你可以在’?’处填写’(‘ 或 ...
- leetcode-生成括号(回溯算法)
转载出处:https://blog.csdn.net/yanerhao/article/details/68561290 生成括号 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生 ...
- [LeetCode] 22. 括号生成 ☆☆☆(回溯)
描述 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", "(()( ...
- FZU2030 括号问题(dp)
Problem 2030 括号问题 Accept: 398 Submit: 753Time Limit: 1000 mSec Memory Limit : 32768 KB Proble ...
- [ZJOI2007]捉迷藏(动态点分治/(括号序列)(线段树))
题目描述 Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子.某天,Jiajia.Wind和孩子们决定在家里玩捉迷藏游戏.他们的家很大且构造很奇特,由N个屋子和N-1条双向走廊组成,这N-1条 ...
- CSP2019螺旋升天爆炸记
Day -N 半年没碰OI的我终于又回到了这个熟悉又陌生的地方.然后颓废了两天就过了初赛? 初赛rp爆棚考了全校第一,然并卵 然后就是打了遍树状数组模板,写挂了(没错我现在连树状数组都会写挂) 看一眼 ...
- Leetcode之回溯法专题-22. 括号生成(Generate Parentheses)
Leetcode之回溯法专题-22. 括号生成(Generate Parentheses) 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n ...
- LeetCode刷题笔记-回溯法-括号生成
题目描述: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", "( ...
随机推荐
- mysql 注册登陆表单并且操纵元素
<?php error_reporting(E_ALL^E_DEPRECATED^E_NOTICE); header("content-type:text/html;c ...
- 几个可用于数据挖掘和统计分析的java库
http://itindex.net/blog/2015/01/09/1420751820000.html WEKA:WEKA是一个可用于数据挖掘任务的机器学习算法集合.该算法可以直接应用到数据集或从 ...
- hdu_2871_Memory Control(巨恶心线段树)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2871 题意:给你一段内存,让你操作1:Reset:重置所有内存 2:New x:申请一块X大小的内存, ...
- hdu_5620_KK's Steel(水题)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5620 题意:给你一个n长的钢管,要分的尽可能多,且任意三条不能构成三角形 题解:看hint就知道用递推 ...
- LeetCode OJ 98. Validate Binary Search Tree
Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as ...
- APUE读书笔记:进程控制
重点函数:fork,exit,_exit 一.fork 函数原型: #include <unistd.> pid_t fork(void) 函数说明:fork函数将创建一个子进程,该函数调 ...
- Android Service学习之IntentService 深入分析
什么是IntentService? (本文转自http://blog.csdn.net/gaojie314/archive/2010/11/28/6040701.aspx) 官方的解释是: ...
- 3.1 cron表达式
1.Cron在线生成网址: http://cron.qqe2.com/ http://www.pdtools.net/tools/becron.jsp#cron 2.Cron 概要 3. ...
- Android OpenGL ES(七)基本几何图形定义 .
在前面Android OpenGL ES(六):创建实例应用OpenGLDemos程序框架 我们创建了示例程序的基本框架,并提供了一个“Hello World”示例,将屏幕显示为红色. 本例介绍Ope ...
- AU3脚本 记录
编译程序使用自定义图标: #AutoIt3Wrapper_Icon=自定义图标地址 打开指定的网址:(也可以指定其他浏览器exe) Run(@ProgramFilesDir & "\ ...