给你一些 ( 和 )和 ?
?可以变成 ( 也可以变成 )
如果?只能变成一种情况才能使这个串完全匹配,就输出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 -模拟相关推荐

  1. hdu 4915 Parenthese sequence(贪心,模拟)

    题目: Parenthese sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Jav ...

  2. mysql添加序列触发器_Oracle中使用触发器(trigger)和序列(sequence)模拟实现自增列实例...

    问题:在SQL Server数据库中,有自增列这个字段属性,使用起来也是很方便的.而在Oracle中却没有这个功能,该如何实现呢? 答:在Oracle中虽然没有自增列的说法,但却可以通过触发器(tri ...

  3. Aizu1367 Rearranging a Sequence 模拟|签到

    题目链接:AIZU1367 签到题,简单模拟 AC代码: /* 2017年8月10日09:43:40 签到题 AC */ #include<cstdio> #include<algo ...

  4. 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 ...

  5. HDU 4915 Parenthese sequence DP

    [题目大意] 题目很短,自己读题吧. [思路] 其实是个很有意思的题. 在括号匹配中,当前的栈存的全是'('.那么,我们可以用dp[i][j]表示到了第i个字符,栈内存j个'('的方法数.这样显然是可 ...

  6. hdu 4915 Parenthese sequence

    Problem Description bobo found an ancient string. The string contains only three charaters – "( ...

  7. 数据库mysql性能优化-学习笔记

    数据库mysql性能优化 1. 数据库设计范式 2. 常见关系数据库 3. MySQL 的版本 4. mysql存储计划 5 . mysql查询配置 和 设置配置 6 . mysql基本参数 7 .m ...

  8. 笔记12 SQL优化

    笔记12 性能与SQL优化 1.性能优化 复习一下什么是性能: DB/SQL 优化是业务系统性能优化的核心 2.关系数据库 MySQL 什么是关系数据库 数据库设计范式 常见关系数据库 SQL 语言 ...

  9. 2016区域赛前冲刺训练

    UPD 2016.10.23 shift-and (2题) Codeforces 训练 现在已经完成了: 191 [Codeforces Round #377] (6/6) Div 2 A Buy a ...

最新文章

  1. python画平行坐标图_Matplotlib中的平行坐标图
  2. 【OpenJ_Bailian - 2299 】Ultra-QuickSort (归并排序 或 离散化 + 树状数组)
  3. 架构设计之「 微服务入门 」
  4. 第一百零四天 how can I 坚持
  5. C#关于base64图片字符串的压缩方法
  6. 财务报表开发实例分析:几个通用维度介绍与关键点
  7. 随机函数_巧用随机函数,生成各种姓名组合。
  8. StretchDIBits 的使用
  9. 怎么查看ofd格式电子发票? 2种简单方法免费查看
  10. kd树的根节点_多维空间分割树--KD树
  11. HBuilder开发App教程
  12. CSS揭秘:5.条纹背景(上)
  13. html制作课程导航页面,学成在线页面制作(HTML+CSS部分)(顶部+轮播图部分)...
  14. codeforces 282 D. Yet Another Number Game
  15. java过滤关键字,敏感词汇
  16. 网络管理员和网络工程师的区别
  17. Java基础题36:(多选题)下列有关于变量的命名正确的是 A.可以由字母、数字、下划线、”$”组成; 头
  18. Vivado® ML 版,让设计更智能化
  19. get案例 爬取百度贴吧
  20. 精准投放能力揭秘,带你实现业务更多可能性!

热门文章

  1. Unity应用单件模式
  2. Java学习笔记(视频:韩顺平老师)2.0
  3. geojson 包含道路_一种适用于实时路况播报的道路数据简化和存储方法
  4. 数据获取网络爬虫之--爬取小姐姐图片
  5. Azure | ARM Temeplate
  6. 2020年电工(初级)新版试题及电工(初级)模拟考试题库
  7. 【如何搭建一个高并发的抢券系统,QPS上万】
  8. C语言,字符串转为整数类型
  9. C语言:深入理解排序算法
  10. 韩商言求婚了!你却还不知道现男友喜欢什么类型?