【HDOJ6342】Expression in Memories(模拟)
题意:
给定一个由0123456789+* ?组成的表达式,其中?可以被改为任意其它字符,问修改问号后是否有方案使得表达式合法
len<=5e2,sumlen<=1e5
思路:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <algorithm>
#include <iostream>
#include <ctype.h>
#include <limits.h>
#include <set>
#include <map>
#include <vector>
#include <stack>
#include <queue>
#include <list>
#define left (now<<1)
#define right ((now<<1)+1)
#define mid ((l+r)>>1)
#define fst first
#define snd second
using namespace std;
typedef long long lint; const int MAXN = 5e2 + ; char str[MAXN];
int n;
bool ok[MAXN]; void init(){
for(int i = ; i < MAXN; ++i){
str[i] = '\0';
}
} int main(){
int t; scanf("%d",&t);
while(t--){
init(); scanf("%s",str); int len = strlen(str); bool zero = false;
memset(ok,false,sizeof(ok));
for(int i = ; i < len; ++i){
if(str[i] == '?'){
str[i] = ''; ok[i] = true;
}
} bool can = true; zero = false;
if(str[] == '+' || str[] == '*' || str[len - ] == '+' ||str[len - ] == '*'){
can = false;
}
for(int i = ; i < len - ; ++i){
if((str[i] == '+' || str[i] == '*') && (str[i + ] == '*' || str[i + ] == '+')){
can = false; break;
}
}
for(int i = ; i < len; ++i){
if(isdigit(str[i]) && zero){
if(ok[i] == false){
can = false; break;
}else{
str[i] = '+';
}
}
if(str[i] == '' && (i == || !isdigit(str[i - ]))){
zero = true;
}else{
zero = false;
}
}
if(str[] == '+' || str[] == '*' || str[len - ] == '+' ||str[len - ] == '*'){
can = false;
}
for(int i = ; i < len - ; ++i){
if((str[i] == '+' || str[i] == '*') && (str[i + ] == '*' || str[i + ] == '+')){
can = false; break;
}
}
if(can){
printf("%s\n",str);
}else{
printf("IMPOSSIBLE\n");
}
}
return ;
}
【HDOJ6342】Expression in Memories(模拟)的更多相关文章
- 2018 Multi-University Training Contest 4 Problem K. Expression in Memories 【模拟】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6342 Problem K. Expression in Memories Time Limit: 200 ...
- HDU6342-2018ACM暑假多校联合训练4-1011-Problem K. Expression in Memories
Problem K. Expression in Memories Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262 ...
- 杭电多校第四场 Problem K. Expression in Memories 思维模拟
Problem K. Expression in Memories Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262 ...
- HDU 6342 Expression in Memories(模拟)多校题解
题意:给你一个规则,问你写的对不对. 思路:规则大概概括为:不能出现前导零,符号两边必须是合法数字.我们先把所有问号改好,再去判断现在是否合法,这样判断比一边改一边判断容易想. 下面的讲解问号只改为+ ...
- 【hdu 6342】Expression in Memories
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 把所有的问号都改成'1' 然后会发现只有+0?这种情况 需要把?改成+. 看看这样的0后面的1是不是由问号改过来的就好了.是的话 再 ...
- HDU 6342.Problem K. Expression in Memories-模拟-巴科斯范式填充 (2018 Multi-University Training Contest 4 1011)
6342.Problem K. Expression in Memories 这个题就是把?变成其他的使得多项式成立并且没有前导零 官方题解: 没意思,好想咸鱼,直接贴一篇别人的博客,写的很好,比我的 ...
- 2018 Multi-University Training Contest 4
累惹. B. Harvest of Apples 题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6333 题意:求∑(i=0,m) C(n,m). 分 ...
- 2018 Multi-University Training Contest 4 Solution
A - Problem A. Integers Exhibition 留坑. B - Problem B. Harvest of Apples 题意:计算$\sum_{i = 0}^{i = m}C( ...
- 2018 HDU多校第四场赛后补题
2018 HDU多校第四场赛后补题 自己学校出的毒瘤场..吃枣药丸 hdu中的题号是6332 - 6343. K. Expression in Memories 题意: 判断一个简化版的算术表达式是否 ...
随机推荐
- WPF学习12:基于MVVM Light 制作图形编辑工具(3)
本文是WPF学习11:基于MVVM Light 制作图形编辑工具(2)的后续 这一次的目标是完成 两个任务. 本节完成后的效果: 本文分为三个部分: 1.对之前代码不合理的地方重新设计. 2.图形可选 ...
- Docker 容器镜像操作
1.停止所有的container,这样才能够删除其中的images:docker stop $(docker ps -a -q)如果想要删除所有container的话再加一个指令: docker rm ...
- Maximal Discount
Description: Linda is a shopaholic. Whenever there is a discount of the kind where you can buy three ...
- Hibernate中的inverse和cascade属性
Hibernate中的inverse和cascade属性 inverse的值有两种,"true"和"false".inverse="false&quo ...
- Pow挖矿流程
Pow挖矿流程 POW即工作量的证明,主要特征是客户端需要做一定难度的工作得出一个结果,验证方却很容易通过结果来检查出客户端是不是做了相应的工作. Pow挖矿即不断接入新的Block延续Block C ...
- 【HEVC简介】CTU、CU、PU、TU结构
参考文献:见<High Efficiency Video Coding (HEVC)>Block Structures and Parallelism Features in HEVC章 ...
- mysql 中modify和change区别(以及使用modify修改字段名称报错)
使用modify修改字段报错如下: mysql> alter table student modify name sname char(16);ERROR 1064 (42000): You h ...
- 【转】C# WinForm中的Label如何换行
第一种是把Label的AutoSize属性设为False,手动修改Label的大小.这样的好处是会因内容的长度而自动换行,但是当内容的长度超过所设定的大小时,多出的内容就会无法显示.因此,这种方法适合 ...
- P2257 YY的GCD (莫比乌斯反演)
题意:求\[\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j) = prim]\] 题解:那就开始化式子吧!! \[f(d) = \sum_{i=1}^{n}\sum_{j=1 ...
- pc端移动端兼容的大图轮播
body, html { width: 100%; } * { margin:; padding:; list-style: none; } .haha { list-style-type: none ...