201903-2 CCF 二十四点
题面:

考场写的30分==
#include<bits/stdc++.h>
using namespace std;
stack<int>st;
stack<char>op;
int main()
{
int t;
while(scanf("%d",&t)!=EOF)
{
string s;
while(t--)
{
cin>>s; //cout<<s.length();
for(int i=; i<; i++)
{
//cout<<i<<endl;
if(s[i]>=''&&s[i]<='')
st.push(s[i]-'');
else if(s[i]=='/')
{
int x=st.top();
//cout<<x<<'\n';
int y=s[i+]-'';
st.pop();
st.push(x/y);
i++;
}
else if(s[i]=='x')
{
int x=st.top();
int y=s[i+]-'';
st.pop();
st.push(x*y);
//cout<<x<<y<<endl;
i++;
}
else
{
op.push(s[i]);
} }
while(!op.empty())
{
char c=op.top();
op.pop();
int x=st.top();
st.pop();
int y=st.top();
st.pop();
if(c=='+')
{
st.push(x+y);
}
else
{
st.push(y-x);
}
}
//cout<<st.top()<<'\n';
if(st.top()==)puts("Yes");
else puts("No");
st.pop();
}
} }
hack数据:3x8-3+3
处理加减法没按照从前向后规则,然后炸了QAQ
修改后满分代码:
#include<bits/stdc++.h>
using namespace std;
stack<int>st;
stack<char>op;
//stack<int>t;
int A[];
char B[];
int main()
{
int t;
while(scanf("%d",&t)!=EOF)
{
string s;
while(t--)
{
cin>>s; // cout<<s<<'\n';
//cout<<s.length();
for(int i=; i<; i++)
{
//cout<<i<<endl;
if(s[i]>=''&&s[i]<=''){ st.push(s[i]-'');
}
else if(s[i]=='/')
{
int x=st.top();
//cout<<x<<'\n';
int y=s[i+]-'';
st.pop();
st.push(x/y);
i++;
}
else if(s[i]=='x')
{
int x=st.top();
int y=s[i+]-'';
st.pop();
st.push(x*y);
//cout<<x<<y<<endl;
i++;
}
else
{
op.push(s[i]);
} } int a=,b=;
while(!st.empty())
{
A[a++]=st.top();
st.pop();
}
while(!op.empty())
{
B[b++]=op.top();
op.pop();
}
//cout<<a<<' '<<b<<'\n';
a--;
b--;
int x,y;
while(b>=)
{
x=A[a];
y=A[a-];
if(B[b]=='+')
{
A[a-]=x+y;
}
else
{
A[a-]=x-y;
}
a--;
b--;
}
//cout<<st.top()<<'\n';
if(A[]==)puts("Yes");
else puts("No");
//st.pop();
}
} }
201903-2 CCF 二十四点的更多相关文章
- 第十六次 ccf 201903-2 二十四点
题意: 计算数学表达式的值, 数学表达式的定义: 4个[0-9]表示数字的字符 ,3个[+-x/]表示运算的字符 可以用正则为: ([0-9][+-x/]){3}[0-9] 例如: 5+2/1x3 2 ...
- [LeetCode] 24 Game 二十四点游戏
You have 4 cards each containing a number from 1 to 9. You need to judge whether they could operated ...
- 二十四点算法 java实现
问题: 给出四个数,不可以重复使用,可以用+ - * /和括号,怎么得出24? 代码: //return -1 表示当前方法不行 private int workByStep(int op,int n ...
- HNU 12886 Cracking the Safe 二十四点的判断
经典的一个题,今天竟然写跪了…… 题意: 给你4个数字,让你判断是否能通过四则运算和括号,凑成24点. 思路: 暴力枚举运算顺序和运算符. 代码: #include <iostream> ...
- CCF-CSP题解 201903-2 二十四点
可枚举. 写栈的主要思想是:一个数栈\(numSta\),一个运算符栈\(opSta\).遇到一个运算符,就把之前优先级\(equal\ or\ greater\ than\)它的运算符处理掉. #i ...
- CSP201903-2二十四点
如图所示先处理乘号和除号,再处理加减. #include<bits/stdc++.h> using namespace std; ];int main(){ int n; cin>& ...
- 201903-2 二十四点 Java
思路: 数据结构中,栈可以解决运算的问题.利用压栈和弹栈操作实现(这里用队列模拟).具体的: 遇到乘除号,弹出栈顶元素,将计算结果压入栈中.遇到加减号,将后面的数一起压入栈中. 注意: substri ...
- CCF201903-2二十四点
思路描述:最开始的思路是拿一个栈来存储数据和符号,在动手实践的过程中发现行不通,单个数字的char和int转换可以,但是加起来的数据两位数字就很难处理了. 然后就去看了看别人的思路,给了我一个很好的启 ...
- NLP(二十六)限定领域的三元组抽取的一次尝试
本文将会介绍笔者在2019语言与智能技术竞赛的三元组抽取比赛方面的一次尝试.由于该比赛早已结束,笔者当时也没有参加这个比赛,因此没有测评成绩,我们也只能拿到训练集和验证集.但是,这并不耽误我们在这 ...
随机推荐
- Azylee.Utils 工具组
https://github.com/yuzhengyang/Fork Fork 是平时做 C# 软件的时候,整合各种轮子的一个工具项目,包括并不仅限于:各种常用数据处理方法,文件读写 加密 搜索,系 ...
- ecshop 实现“精品、新品、热销”板块出现选项卡效果的方法
最近做一个网络商城,直接使用ecshop的免费模板,懒得重新做,ecshop建站多日了,一直想在主页的板块中建网页选项卡鼠标经过自动切换效果,百度搜索这方面的内容也没找到合适的,今天一实验,成功了,所 ...
- 自动化测试中,元素无法点击定位等问题的解决:js的使用方法
在自动化测试中经常会遇到使用selenium方法定位元素点击操作失败的情况,例如,我们想实现在浏览器输入http://www.baidu.com,进入百度首页后,鼠标悬停在“更多产品”上,点击“全部产 ...
- gdi+ 中发生一般性错误
1.检查文件夹权限 2.保存的文件已存在并因某种原因被锁定. 3.文件夹路径不存在
- Linux基础:Linux环境下安装JDK
title: Linux基础:JDK的及环境变量配置 author: Enjoyitlife.top date: 2019-10-09 20:50:36 tags: Linux JDK categor ...
- Linux中如何将系统调优
Linux高可用服务器集群解决方案让IT系统管理员可以从容应对许多常见的硬件和软件故障,允许多台计算机一起工作,为关键服务正常运行提供保障,系统管理员可以不中断服务执行维护和升级.Linux服务器有各 ...
- Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'ItemsCustom' in 'class com.pojo.OrderDetailCustom
再用 junit 测试MyBatis时发现的错误: org.apache.ibatis.exceptions.PersistenceException: ### Error querying data ...
- python学习第五十天shutil模块的用法
什么shutil模块,就是对高级的文件,文件夹,压缩包进行处理的模块,下面简单讲述其用法. 文件和文件夹的操作 拷贝文件内容 import shutil shutil.copyfileobj(open ...
- CSS3实现小于1px的边框(移动端)
<!doctype html> <html lang="en"> <head> <meta content="width=dev ...
- LeetCode102. 二叉树的层次遍历
102. 二叉树的层次遍历 描述 给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 示例 例如,给定二叉树: [3,9,20,null,null,15,7], 3 / ...