【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 题意: 判断一个简化版的算术表达式是否 ...
随机推荐
- 前端之CSS创建的样式
CSS即层叠样式表,在创建时有以下几种样式: 1.内联样式(行内样式.行间样式): <标记 style=“属性:属性值:”></标记> 2.内部样式(嵌入式样式): <s ...
- AJPFX简述JavaStringBuffer方法
以下是StringBuffer类支持的主要方法: 序号 方法描述 1 public StringBuffer append(String s)将指定的字符串追加到此字符序列. 2 public Str ...
- AJPFX简述Scanner类的特点
hasNextInt() :判断是否还有下一个输入项,其中Xxx可以是Int,Double等.如果需要判断是否包含下一个字符串,则可以省略Xxx nextInt(): 获取下一个输入项. ...
- Web前端攻防,一不小心就中招了
随着各浏览器安全功能的提高,前端防御面临的问题也没有之前那么复杂,但浏览器的防御措施并不能百分百的保证网站的安全. 浏览器的XSS Auditor,使得反射型xss几乎被废:CSP(Content-S ...
- How the performance impacts your revenue-性能影响营收
看完国外一个APM厂商最后的一个业务介绍视频,终于想通了PE领域中最顶层的应用目标,也就是如标题所云.那么这个影响效果是如何做到的?最终的步骤其实很简单,也就是利用大数据进行分析.而自己先前还没有想到 ...
- android 图片叠加效果——两种方法的简介与内容 ,带解决Immutable bitmap passed to Canvas constructor错误
第一种是通过canvas画出来的效果: public void first(View v) { // 防止出现Immutable bitmap passed to Canvas constructor ...
- Mybatis-Generator逆向生成Po,Mapper,XMLMAPPER(一)
这个地方的生成需要用到三个文件,generatorConfig.xml.mybatis-generator-core-1.3.1.jar和mysql-connector-java-5.1.29.jar ...
- Android(java)学习笔记164:开发一个多界面的应用程序之不同界面间互相传递数据(短信助手案例)
1.首先我们看看下面这个需求: 这里我们在A界面上,点击这个按钮"选择要发送的短信",开启B界面上获取网络上各种短信祝福语,然后B界面会把这些网络祝福语短信发送给A界面到" ...
- 爬虫学习之第一次获取网页内容及BeautifulSoup处理
from urllib.request import urlopen from urllib.request import HTTPError from bs4 import BeautifulSou ...
- docker-compose nginx
docker-compose nginx example source code docker-compose nginx balancing