Luogu p1241 括号序列
这是一道与dp毫无半点关系的题
本来是去找
的题来着,结果并没有找到,然后看到了这道题。
(本来以为会是很好写的一道题结果因为题意不清直接原地去世了)
思路很简单,基本没有技术含量。
因为数据范围很小,我们可以直接进行暴搜;
定义bool 数组add表示第i个字符所对应的括号有没有被匹配,如果没有匹配需手动补全;
从左往右扫描,如果扫描到']'or')',从当前位置开始向左扫描,寻找配对括号,如果找到,将左右括号的add都置为1,break;
然后这么找大概就可以ac了叭?
#include<cstdio>
#include<cstring>
#include<algorithm>
#define mk make_pair
using namespace std;
char t[110];
bool add[110];
int main(){
scanf("%s",t+1);
int len=strlen(t+1);
for(int i=1;i<=len;i++){
if(t[i]==']'){
for(int j=i-1;j>=1;j--){
if(add[j]==0&&t[j]=='[') {
add[j]=add[i]=1;
break;
}
}
}
if(t[i]==')') {
for(int j=i-1;j>=1;j--) {
if(add[j]==0&&t[j]=='(') {
add[i]=add[j]=1;
break;
}
}
}
}
for(int i=1;i<=len;i++) if(!add[i]){
if(t[i]==')'||t[i]=='(') printf("()");
if(t[i]=='['||t[i]==']') printf("[]");
}else printf("%c",t[i]);
return 0;
}
但是
当我们交上去:

可以说是听取wa声一片了;
为什么呢?!
题面很毒瘤我们看不懂它wr;
现在好像可以意会了但并不能言传因此就假装没看懂叭(自己去悟
像是括号序列([)],在我方程序判断是合法的,而实际上是不合法的,需要补成()[()];
所以我们需要加上:
if(t[j]=='['&&add[j]==0) break;//t[i]==')';
if(t[j]=='('&&add[j]==0) break;//t[i]==']';
来判断被不同的括号横插一刀的情况
然后这样就可以ac了!?
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char t[110];
bool add[110];
int main(){
scanf("%s",t+1);
int len=strlen(t+1);
for(int i=1;i<=len;i++){
if(t[i]==']'){
for(int j=i-1;j>=1;j--){
if(t[j]=='('&&add[j]==0) break;
if(add[j]==0&&t[j]=='[') {
add[j]=add[i]=1;
break;
}
}
}
if(t[i]==')') {
for(int j=i-1;j>=1;j--) {
if(add[j]==0&&t[j]=='[') break;
if(add[j]==0&&t[j]=='(') {
add[i]=add[j]=1;
break;
}
}
}
}
for(int i=1;i<=len;i++) if(!add[i]){
if(t[i]==')'||t[i]=='(') printf("()");
if(t[i]=='['||t[i]==']') printf("[]");
}else printf("%c",t[i]);
return 0;
}
end-
Luogu p1241 括号序列的更多相关文章
- 洛谷 P1241 括号序列
P1241 括号序列 题目描述 定义如下规则序列(字符串): 1.空序列是规则序列: 2.如果S是规则序列,那么(S)和[S]也是规则序列: 3.如果A和B都是规则序列,那么AB也是规则序列. 例如, ...
- P1241 括号序列
P1241 括号序列 题解 谁解释下标签递推是个什么鬼,应该是暴力 数据比较小直接跑暴力 但是注意题目描述 也就是说: [ ( ] ) 是不合法的 补全应该是 [ ] ( [ ] ) 举个栗子: 比如 ...
- 洛谷 P1241 括号序列(栈)
嗯... 题目链接:https://www.luogu.org/problem/P1241 首先这道题是栈的入门题的加强版, 不仅要你判断这个括号序列是否合法,还要你将这个序列补充完整... 一开始是 ...
- 上午小测3 T1 括号序列 && luogu P5658 [CSP/S 2019 D1T2] 括号树 题解
前 言: 一直很想写这道括号树..毕竟是在去年折磨了我4个小时的题.... 上午小测3 T1 括号序列 前言: 原来这题是个dp啊...这几天出了好几道dp,我都没看出来,我竟然折磨菜. 考试的时候先 ...
- BZOJ4350: 括号序列再战猪猪侠
Description 括号序列与猪猪侠又大战了起来. 众所周知,括号序列是一个只有(和)组成的序列,我们称一个括号 序列S合法,当且仅当: 1.( )是一个合法的括号序列. 2.若A是合法的括号序列 ...
- DP专题——括号序列
毕竟是个渣,写完一遍之后又按LRJ的写了一遍,再写了一遍递归版,最终加上输出解部分 括号序列 定义如下规则序列(字符串): 空序列是规则序列: 如果S是规则序列,那么(S)和[S]也是规则序列: 如果 ...
- 【BZOJ】2209: [Jsoi2011]括号序列(splay)
http://www.lydsy.com/JudgeOnline/problem.php?id=2209 splay又犯逗........upd1那里的sum忘记赋值反............. 本题 ...
- 51nod1476 括号序列的最小代价
这题应该可以用费用流写吧?不过我想不出贪心来TAT.其实还是单调队列乱搞啊T_T //ÍøÉϵÄ̰ÐÄËã·¨ºÃÉñ°¡¡£¡£¡£ÎÒÖ»»áÓÃ×îС·ÑÓÃ×î´óÁ÷ÅÜTAT #in ...
- lintcode: 有效的括号序列
题目: 有效的括号序列 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and']', 判定是否是有效的括号序列. 样例 括号必须依照 "() ...
随机推荐
- autogen.sh 的使用
在linux下面的大型工程很多都是makefile管理的,但是随着工程越来越大,makefile编写又成了一个大工程,这个时候出现了两个比较流行的工具,cmake和configure,configur ...
- LNK1104 无法打开文件“proj.lib”
两种可能: 1.proj.lib不存在 2.proj.lib不符合编译的debug(release)版本
- 2019 南京网络赛A
南京网络赛自闭现场 https://nanti.jisuanke.com/t/41298 二维偏序经典题型 二维前缀和!!! #include<bits/stdc++.h> using n ...
- logstash之Filter插件
Logstash之所以强悍的主要原因是filter插件:通过过滤器的各种组合可以得到我们想要的结构化数据 1:grok正则表达式 grok**正则表达式是logstash非常重要的一个环节**:可以通 ...
- oracle 11g安装教程终结版
1.解压文件 2.双击 “setup.exe” 3.高级安装.下一步 4.企业版 下一步 5.下一步 6.只要不报错,警告没事.(路径如果报错的话,没事,直接继续) 注意:如果有需要6.2版本的错误 ...
- Spring各种类型数据的注入
直接上代码: 一个MessageBean类 package com.henu.spring; import java.util.*; public class MessageBean { privat ...
- Python-Django WebAPi基本使用方法
目的 利用django搭建一个WebApi,实现数据库表的增删查改. 数据传输基于Http协议,数据格式:JSON ORM方式进行数据库表的CRUD(增删查改) 开发步骤 使用pycharm专业版搭建 ...
- IDEA使用一套代码启动多个应用
在为公司开发一个消息中心,开发过程中需要模拟多个消费者.具体方式: 1.编辑应用配置 2.复制应用配置 3.重命名配置 4.修改端口,-Dserver.port=9991
- 惠普DL360G6安装ESXi主机后设置多块网卡
需要先把服务器的网线连接到路由器 然后打开esxi设置网络的netwoork adapters 选中多块网卡,点确定保持 然后在到esxi客户端操作: 直接下一步 这里填上路由器分配的网段ip即可了
- Python的sys.argv用法
import sys a = sys.argv[:] print("输入的参数为:", a) def train_start(start_time, end_time, selec ...