tyvj4868 天天和不可描述

描述

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define maxn 500010
int len,map[maxn],st[maxn],top,mp[maxn];
char ch[maxn],vis[maxn];
void pr(int l,int r){
    if(l<=r){
        for(int i=l;i<=r;i++){
            if(ch[i]!=‘(‘&&ch[i]!=‘)‘){
                printf("%c",ch[i]);continue;
            }
            if(ch[i]==‘(‘){
                if(vis[i]==1)return;
                vis[i]=1;
                pr(map[i]-1,i+1),i=map[i];continue;
            }
            if(ch[i]==‘)‘){
                if(vis[i]==1)return;
                vis[i]=1;
                pr(mp[i]+1,i-1),i=mp[i];continue;
            }
        }
    }
    else {
        for(int i=l;i>=r;i--){
            if(ch[i]!=‘(‘&&ch[i]!=‘)‘){
                printf("%c",ch[i]);continue;
            }
            if(ch[i]==‘(‘){
                if(vis[i]==1)return;
                vis[i]=1;
                pr(map[i]-1,i+1),i=map[i];continue;
            }
            if(ch[i]==‘)‘){
                if(vis[i]==1)return;
                vis[i]=1;
                pr(mp[i]+1,i-1),i=mp[i];continue;
            }
        }
    }
}
int main(){
    //freopen("Cola.txt","r",stdin);
    scanf("%s",ch+1);
    len=strlen(ch+1);
    for(int i=1;i<=len;i++){
        if(ch[i]==‘(‘)st[++top]=i;
        if(ch[i]==‘)‘)map[st[top]]=i,mp[i]=st[top],top--;
    }
    pr(1,len);
}
时间: 2024-10-17 10:52:24

tyvj4868 天天和不可描述的相关文章

#587. 天天和不可描述

[题目描述]: 天天和()是好朋友,然而总是唱反调.对于一个有() 的字符串,天天总是会把()内的所有东西都倒过来读. 比如对于字符串abc(def) ,天天看到的就是abcfed . 括号里面可能是空的,也有可能套有多个括号,比如说abc(hello)(world)lcy()x(owq(zrt)),天天看到的就是abcollehdlrowlcyxzrtqwo . 因为(owq(zrt))首先变成了(trz)qwo ,接下来变成了zrtqwo ,zrt 被反转了两次,所以天天看到的还是zrt.

noip模拟赛 天天和不可描述

分析:直接就这么翻肯定是不行的,换一种想法:有括号就是把括号里的字符串倒着输出,如果在括号里又遇到了括号就继续倒着输出,相当于递归. 我们可以用递归直接做,也可以用一层循环搞定,每次从左括号跳到右括号,再从右括号跳到左括号,之后走一步,就能输出处理后的字符串了,而不会死循环了. #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespa

【tyvj P4868】天天和不可描述

http://www.tyvj.cn/p/4868 超级水的题,用递归来模拟,用链表保存这层的内容,每遇到一个左括号就递归一层并合并返回的链表,遇到右括号后返回. 递归进入下一层时传递个参数标记读取新字符是加载链表头还是链表尾就好了. (之前合并两个链表的时候不小心用成insert慢成傻逼,后来才发现insert是拷贝元素,splice才是合并元素) #include <iostream> #include <list> using namespace std; list<c

NOIP模拟赛16

NOIP2017金秋冲刺训练营杯联赛模拟大奖赛第一轮Day2 期望得分:100+100+ =200+ 实际得分:100+40+70=210 T1天天寄快递 直接模拟,代码丢了...... T2天天和不可描述 splay可A 正解dfs+list #include<iostream> #include<list> #include<cstdio> using namespace std; list<char>s; char c; void getstr(boo

典型用户及场景描述

典型用户: 姓名:茉莉 性别,年龄:女,20岁 职业:在校大学生 收入:不确定 知识层次和能力:本科生,熟悉各种智能电子设备的操作,熟练各种手游. 生活/工作状况:学习,恋爱,兼职,游玩,天天都有事情做. 动机.目的和困难:动机是找办法打发时间,目的是打发等车的时间,困难是一个人等车无聊没事儿干. 用户偏好:听歌,看书 用户比例:不确定 典型场景:假期回家在火车站候车,没事儿干,太无聊. 典型描述:看着别人都在忙着自己的事情,却找不到一个人聊天.后来通过极速蜗牛打发间. 场景描述: 人物:茉莉

使用Cocos2d-x实现微信“天天爱消除”炫耀button特效

引言Cocos2d-x引擎中有很多Action,这样可以方便的让开发者调用相应的Action去完成一些动作,例如:移动,弹跳,淡入淡出等.可在实际的开发过程中,由于游戏的需要,显然地,引擎自带的Action是完全不够用的,很多时候都需要我们自己去写.今天我就来分享一个让精灵和粒子绕着圆角矩形运动的实例,细讲一下实现过程(仅凭个人想法实现,如有其他更好的方法,欢迎交流分享). 效果该实例类似天天爱消除等系列游戏中的按钮特效: 实现方法刚开始本来考虑自己定义一条圆角矩形的路径,即建一个自己的动作模块

百度天天快照知识宝典

1.网站内容没更新. 这种是最基本的了,很多企业站,或者少页面站内容很少,蜘蛛一次来是这个样子, 二 次来还是这个样子,久了就不来了.百度快照就会停留在一个时间上.这在以前很普遍. 但 是通常不大影响排名. 2.采集内容过多,网站添加内容重复. 采集软件的普及让做网站太简单了,火车头.NICEWORD.爱聚合,各 CMS 的采集和自助 建站功能让很多站长一夜之间成千上万的网页生成, 再加上对采集规则的不灵活, 伪原创得 一塌糊涂,互联网上高度重复的内容太多了.人都看腻了,难道百度蜘蛛还不吃腻?

《天天德州》之德州牛仔概率计算器

鹅厂的<天天德州>里有个相关的"小"游戏,名曰<牛仔>或<德州牛仔>.尽管其在游戏主界面上的入口并不很显眼,但它的设计却非常有创意,借德扑的规则行"涉赌"之擦边球玩法,简单来说,在假定系统公平的前提下,其完全就是靠统计.概率来获利的游戏. 综合考量其赔付设定及鹅厂的运营能量,即便其确实完全公平无猫腻(很明显这不可能),在收入等硬指标上恐怕也相当可观! 而我则对其系统赔付比比较感兴趣,在用排列组合方式计算出了"任一人手牌&

python——描述符

1.什么是描述符? python描述符是一个“绑定行为”的对象属性,在描述符协议中,它可以通过方法重写属性的访问.这些方法有 __get__(), __set__(), 和__delete__().如果这些方法中的任何一个被定义在一个对象中,这个对象就是一个描述符. 2.讲解描述符前,先看一下属性:__dict__ (每个对象均具备该属性) 作用:字典类型,存放本对象的属性,key(键)即为属性名,value(值)即为属性的值,形式为{attr_key : attr_value} 对象属性的访问