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']', 判定是否是有效的括号序列. 样例 括号必须依照 "() ...
随机推荐
- iOS画线段
CGContextRef context = UIGraphicsGetCurrentContext(); //设置线条类型 CGContextSetLineCap(context, kCGLineC ...
- Linux下lazarus交叉编译 win32[win64]
环境 vmvare + deepin Linux64 + lazarus2.0.6 参考:https://wiki.freepascal.org/Cross_compiling_for_Win32_u ...
- PHP技术分享-起始时间戳和结束时间戳的方法
php 获取今日.昨日.上周.本月的起始时间戳和结束时间戳的方法,主要使用到了 php 的时间函数 mktime.下面兄弟连PHP培训 首先还是直奔主题以示例说明如何使用 mktime 获取今日.昨日 ...
- BZOJ 2121: 字符串游戏 区间DP + 思维
Description BX正在进行一个字符串游戏,他手上有一个字符串L,以及其他一些字符串的集合S,然后他可以进行以下操作:对 于一个在集合S中的字符串p,如果p在L中出现,BX就可以选择是否将其删 ...
- 2019.9.23JAVA课堂测试
1.题目 使用递归方式判断某个字串是否是回文( palindrome ) “回文”是指正着读.反着读都一样的句子.比如“我是谁是我”使用递归算法检测回文的算法描述如下:A single or zero ...
- shell变量与运算
shell变量与运算 @(0003 shell编程) 变量存在于内存中.假设变量str,设置或修改变量属性时,不带$号,只有引用变量的值时才使用$号.也就是说在内存中,标记变量的变量名称是str,而不 ...
- 同一个tomcat部署多个项目
在开发项目中,有时候我们需要在同一个tomcat中部署多个项目,小编之前也是遇到了这样的情况,碰过不少的壁,故整理总结如下,以供大家参考.(以Linux为例,其他系统同样适用) 一.首先将需要部署的项 ...
- GIT的安装和配置
- MyBatis框架之mybatis逆向工程自动生成代码
http://www.jb51.net/article/82062.htm Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们 ...
- Android中非activity类调用activity方法
例如需要使用: alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 第一种方法就是使其类变成Activity. 第二种方法便是 ...