hdu 1361 Parencodings 简单模拟
Parencodings
题意:
由括号序列S可经P规则和W规则变形为P序列和W序列。
p规则是:pi是第i个右括号左边的左括号的数;
w规则是:wi是第i右括号与它匹配的左括号之间右括号的数(其中包括它本身)。
题解:
这题真的好简单,数据也小,算是一个增加了我信心的题吧。 1是左括号,2是右括号。
代码:
#include <vector>
#include <cstdio>
#include <string>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int INF=0x3f3f3f3f;
typedef long long ll;
#define PU puts("");
#define PI(A) printf("%d\n",A)
#define SI(N) scanf("%d",&(N))
#define SII(N,M) scanf("%d%d",&(N),&(M))
#define cle(a,val) memset(a,(val),sizeof(a))
#define rep(i,b) for(int i=0;i<(b);i++)
#define Rep(i,a,b) for(int i=(a);i<=(b);i++)
#define reRep(i,a,b) for(int i=(a);i>=(b);i--)
const double EPS= 1e-9 ;
/* ///////////////////////// C o d i n g S p a c e ///////////////////////// */
const int MAXN= 20 + 9 ;
int N;
vector<int > vei;
int main()
{
int T;
SI(T);
while(T--)
{
SI(N);
int k=1;
rep(i,N)
{
int x;
SI(x);
for (int j=k;j<=x;j++)
{
vei.push_back(1);
}
vei.push_back(2);
k=x+1;
}
vector<int > vere;
int d=vei.size();
for (int i=d-1;i>=0;i--)
{
if (vei[i]==2)
{
int ans=0;
int cnt1=0,cnt2=0;
for (int u=i;u>=0;u--)
{
if (vei[u]==2)
{
cnt2++;
ans++;
}
else
{
cnt1++;
}
if (cnt1==cnt2) break;
}
vere.push_back(ans);
}
}
for (int i=vere.size()-1;i>=0;i--) printf("%d%c",vere[i],i==0?'\n':' ');
vei.clear();
}
return 0;
}
hdu 1361 Parencodings 简单模拟的更多相关文章
- hdu 1361.Parencodings 解题报告
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1361 题目意思: 根据输入的P-sequence , 输出对应的W-sequence. P-se ...
- HDU 1361 Parencodings(栈)
题目链接 Problem Description Let S = s1 s2 … s2n be a well-formed string of parentheses. S can be encode ...
- HDU 4772 Zhuge Liang's Password (简单模拟题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4772 题面: Zhuge Liang's Password Time Limit: 2000/1000 ...
- 【HDU 4452 Running Rabbits】简单模拟
两只兔子Tom和Jerry在一个n*n的格子区域跑,分别起始于(1,1)和(n,n),有各自的速度speed(格/小时).初始方向dir(E.N.W.S)和左转周期turn(小时/次). 各自每小时往 ...
- (hdu step 8.1.6)士兵队列训练问题(数据结构,简单模拟——第一次每2个去掉1个,第二次每3个去掉1个.知道队伍中的人数<=3,输出剩下的人 )
题目: 士兵队列训练问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- HDU 4509 湫湫系列故事——减肥记II (简单模拟)
题意:一天一共有1440分钟,主人公每天有n件事要做,给出这n件事开始跟结束的时间,然后让你求出,空闲的时间的总分钟数是多少. 解题报告:简单模拟,只要开个一维数组标记那个每个分钟是否是有事的就可以了 ...
- java web学习总结(二十二) -------------------简单模拟SpringMVC
在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求,示例代码如下: ...
- WPF简单模拟QQ登录背景动画
介绍 之所以说是简单模拟,是因为我不知道QQ登录背景动画是怎么实现的.这里是通过一些办法把它简化了,做成了类似的效果 效果图 大体思路 首先把背景看成是一个4行8列的点的阵距,X轴Y轴都是距离70.把 ...
- HDU 2085 核反应堆 --- 简单递推
HDU 2085 核反应堆 /* HDU 2085 核反应堆 --- 简单递推 */ #include <cstdio> ; long long a[N], b[N]; //a表示高能质点 ...
随机推荐
- php parse_url 函数教程
[导读] php parse_url 函数教程parse_url ( PHP 4中, PHP 5中) parse_url -解析URL并返回其组成部分 描述 混合parse_url (字符串$网址[摘 ...
- Hadoop集群添加新节点步骤
1.在新节点中进行操作系统配置,包括主机名.网络.防火墙和无密码登录等. 2.在所有节点/etc/host文件中添加新节点 3.把namenode的有关配置文件复制到该节点 4.修改master节点s ...
- javascript往textarea追加内容
<html> <body> <textarea id="content"></textarea> <script> va ...
- maven&&gradle
https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html http://maven.apache. ...
- 拿什么来拯救你,我的table
分类: Html/CSS | 转载请注明: 出自 海玉的博客 本文地址: http://www.hicss.net/how-to-save-you-my-table/ table曾经在网页开发中占据着 ...
- 【转】UVa Problem 100 The 3n+1 problem (3n+1 问题)——(离线计算)
// The 3n+1 problem (3n+1 问题) // PC/UVa IDs: 110101/100, Popularity: A, Success rate: low Level: 1 / ...
- 【转】ASP.NET Cookies简单应用 记住用户名和密码
不要试图给Password类型的TextBox赋值! 在asp.net中,不要试图给Password类型的TextBox控件赋值! 无论是在设计或是运行时,都不可以的. 猜测的原因是,password ...
- js正则及常用方法函数总结
正则表达式作为一种匹配处理字符串的利器在很多语言中都得到了广泛实现和应用,web开发本质上是处理字符串(服务端接受请求处理后拼接字符串作为响应,这在早期的CGI编程中最明显,然后客户端解析字符串进行渲 ...
- ASP.NET MVC3在页面上获取当前控制器名称、Action名称以及路由参数
参考:http://ulfqbpl.blog.163.com/blog/static/87783552201272824843607/ 获取控制器名称: RouteData.Values[" ...
- ie数组不支持indexOf 方法解决
if(!Array.prototype.indexOf){ Array.prototype.indexOf = function(obj){ for(var i=0;i<this.length; ...