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']', 判定是否是有效的括号序列. 样例 括号必须依照 "() ...
随机推荐
- Vue路由参数设置可有可无
参数后面使用 ? id 后面加个 ‘ ? ’ ,将 id 设置为可选参数 { name: "index", path: '/p/:id?', component: resolve ...
- 【NOIP2016提高A组集训第1场10.29】配对游戏
题目 流行的跳棋游戏是在一个有mn个方格的长方形棋盘上玩的.棋盘起初全部被动物或障碍物占满了.在一个方格中,'X'表示一个障碍物,一个'0'-'9'的个位数字表示一个不同种类的动物,相同的个位数字表示 ...
- 【leetcode】Increasing Triplet Subsequence
Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the ar ...
- Python使用XML操作mapnik,实现复杂标注(Multi line text symbolizer)
test.py import mapnik stylesheet = 'world_style.xml' image = 'world_style.png' m = mapnik.Map(1200, ...
- mysql LAST()函数 语法
mysql LAST()函数 语法 作用:返回指定的字段中最后一个记录的值. 语法:SELECT LAST(column_name) FROM table_name 注释:可使用 ORDER BY 语 ...
- Android应用系列:仿MIUI的Toast动画效果实现
前言 相信有些人用过MIUI,会发现小米的Toast跟Android传统的Toast特么是不一样的,他会从底部向上飞入,然后渐变消失.看起来效果是挺不错的,但是对于Android原生Toast是不支持 ...
- es之零停机重新索引数据
实际生产,对于文档的操作,偶尔会遇到这种问题: 某一个字段的类型不符合后期的业务了,但是当前的索引已经创建了,我们知道es在字段的mapping建立后就不可再次修改mapping的值 比如: 1): ...
- &&的运算顺序
先判断“&&”左侧的表达式,左侧的表达式为真时,再运算右侧的表达式.如左侧为假,则不运算右侧.
- 运维自动化之ansible的安装与使用 转
运维自动化之ansible的安装与使用 随着服务器数量的增长,我们需要一个批量工具去提高工作效率,之前用的是puppet,ansible的简单,适用让我眼前一亮,决定写一篇ansible从安装到基本配 ...
- Python可变数据类型list填坑一则
前提概要 最近写业务代码时遇到一个列表的坑,在此记录一下. 需求 现在有一个普通的rule列表: rule = [["ID",">",0]] 在其他地方经 ...