Parenthese sequence -模拟
给你一些 ( 和 )和 ?
?可以变成 ( 也可以变成 )
如果?只能变成一种情况才能使这个串完全匹配,就输出unique
如果两种就输出 many
否则就是输出none;
首先要确定是否是完全匹配。
如果是串是奇数,肯定不能匹配。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
const int maxn=1000005;
//可以想到肯定要求的是 完美匹配。
//如果是自大匹配部分匹配的话,只要左右有不同的就可以了。
int judge(char x[])
{ int len=strlen(x);int sum=0;int r=0;int l=0;for(int i=0;i<len;i++){ sum++;if(sum==1){ if(x[i]=='?'){x[i]='(';//l++;continue;}}if(x[i]==')')r++;else if(x[i]=='(')l++;if(r>sum/2)return 0;if(r*2==sum){ r=sum=l=0;}}if(l>sum/2){ //cout<<l<<"23232323 "<<sum/2<<endl;return 0;}r=l=sum=0;for(int i=len-1;i>=0;i--){ sum++;if(sum==1){ if(x[i]=='?'){x[i]=')';//r++;//continue;}}if(x[i]=='(')l++;else if(x[i]==')')r++;if(l>sum/2)return 0;if(sum==l*2){ sum=l=r=0;}}if(r>sum/2)return 0;//printf("rr@@@@");return 1;
}
int main()
{ char a[maxn];char s[maxn];while(~scanf("%s",a))//如果是奇数肯定不能完美匹配。{int len=strlen(a);if(len%2){printf("None\n");continue;}strcpy(s,a);int cs=judge(s);if(cs==0){ //cout<<1<<endl;printf("None\n");continue;}//strcpy(s,a);int ans2=1,ans1=0;int i;for( i=0;i<len;i++){ if(s[i]=='?'){ //printf("%c %d\n",a[i],i);s[i]='(';ans1=judge(s);s[i]=')';ans2=judge(s);if(ans2&&ans1){printf("Many\n");break;}else if(!ans1&&!ans2){ puts("None");break;}else{ if(ans1)s[i]='(';if(ans2)s[i]=')';}}}if(i==len)printf("Unique\n");}return 0;
}
Parenthese sequence -模拟相关推荐
- hdu 4915 Parenthese sequence(贪心,模拟)
题目: Parenthese sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Jav ...
- mysql添加序列触发器_Oracle中使用触发器(trigger)和序列(sequence)模拟实现自增列实例...
问题:在SQL Server数据库中,有自增列这个字段属性,使用起来也是很方便的.而在Oracle中却没有这个功能,该如何实现呢? 答:在Oracle中虽然没有自增列的说法,但却可以通过触发器(tri ...
- Aizu1367 Rearranging a Sequence 模拟|签到
题目链接:AIZU1367 签到题,简单模拟 AC代码: /* 2017年8月10日09:43:40 签到题 AC */ #include<cstdio> #include<algo ...
- 2018 BACS Regional Programming Contest C. BACS, Scoundrel Shopkeeper and Contiguous Sequence (模拟)
Description Solution 模拟 Code const int maxn = 1e2 + 7; int a[maxn]; int main() {int T;scanf("%d ...
- HDU 4915 Parenthese sequence DP
[题目大意] 题目很短,自己读题吧. [思路] 其实是个很有意思的题. 在括号匹配中,当前的栈存的全是'('.那么,我们可以用dp[i][j]表示到了第i个字符,栈内存j个'('的方法数.这样显然是可 ...
- hdu 4915 Parenthese sequence
Problem Description bobo found an ancient string. The string contains only three charaters – "( ...
- 数据库mysql性能优化-学习笔记
数据库mysql性能优化 1. 数据库设计范式 2. 常见关系数据库 3. MySQL 的版本 4. mysql存储计划 5 . mysql查询配置 和 设置配置 6 . mysql基本参数 7 .m ...
- 笔记12 SQL优化
笔记12 性能与SQL优化 1.性能优化 复习一下什么是性能: DB/SQL 优化是业务系统性能优化的核心 2.关系数据库 MySQL 什么是关系数据库 数据库设计范式 常见关系数据库 SQL 语言 ...
- 2016区域赛前冲刺训练
UPD 2016.10.23 shift-and (2题) Codeforces 训练 现在已经完成了: 191 [Codeforces Round #377] (6/6) Div 2 A Buy a ...
最新文章
- python画平行坐标图_Matplotlib中的平行坐标图
- 【OpenJ_Bailian - 2299 】Ultra-QuickSort (归并排序 或 离散化 + 树状数组)
- 架构设计之「 微服务入门 」
- 第一百零四天 how can I 坚持
- C#关于base64图片字符串的压缩方法
- 财务报表开发实例分析:几个通用维度介绍与关键点
- 随机函数_巧用随机函数,生成各种姓名组合。
- StretchDIBits 的使用
- 怎么查看ofd格式电子发票? 2种简单方法免费查看
- kd树的根节点_多维空间分割树--KD树
- HBuilder开发App教程
- CSS揭秘:5.条纹背景(上)
- html制作课程导航页面,学成在线页面制作(HTML+CSS部分)(顶部+轮播图部分)...
- codeforces 282 D. Yet Another Number Game
- java过滤关键字,敏感词汇
- 网络管理员和网络工程师的区别
- Java基础题36:(多选题)下列有关于变量的命名正确的是 A.可以由字母、数字、下划线、”$”组成; 头
- Vivado® ML 版,让设计更智能化
- get案例 爬取百度贴吧
- 精准投放能力揭秘,带你实现业务更多可能性!