题面:

考场写的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 二十四点的更多相关文章

  1. 第十六次 ccf 201903-2 二十四点

    题意: 计算数学表达式的值, 数学表达式的定义: 4个[0-9]表示数字的字符 ,3个[+-x/]表示运算的字符 可以用正则为: ([0-9][+-x/]){3}[0-9] 例如: 5+2/1x3 2 ...

  2. [LeetCode] 24 Game 二十四点游戏

    You have 4 cards each containing a number from 1 to 9. You need to judge whether they could operated ...

  3. 二十四点算法 java实现

    问题: 给出四个数,不可以重复使用,可以用+ - * /和括号,怎么得出24? 代码: //return -1 表示当前方法不行 private int workByStep(int op,int n ...

  4. HNU 12886 Cracking the Safe 二十四点的判断

    经典的一个题,今天竟然写跪了…… 题意: 给你4个数字,让你判断是否能通过四则运算和括号,凑成24点. 思路: 暴力枚举运算顺序和运算符. 代码: #include <iostream> ...

  5. CCF-CSP题解 201903-2 二十四点

    可枚举. 写栈的主要思想是:一个数栈\(numSta\),一个运算符栈\(opSta\).遇到一个运算符,就把之前优先级\(equal\ or\ greater\ than\)它的运算符处理掉. #i ...

  6. CSP201903-2二十四点

    如图所示先处理乘号和除号,再处理加减. #include<bits/stdc++.h> using namespace std; ];int main(){ int n; cin>& ...

  7. 201903-2 二十四点 Java

    思路: 数据结构中,栈可以解决运算的问题.利用压栈和弹栈操作实现(这里用队列模拟).具体的: 遇到乘除号,弹出栈顶元素,将计算结果压入栈中.遇到加减号,将后面的数一起压入栈中. 注意: substri ...

  8. CCF201903-2二十四点

    思路描述:最开始的思路是拿一个栈来存储数据和符号,在动手实践的过程中发现行不通,单个数字的char和int转换可以,但是加起来的数据两位数字就很难处理了. 然后就去看了看别人的思路,给了我一个很好的启 ...

  9. NLP(二十六)限定领域的三元组抽取的一次尝试

      本文将会介绍笔者在2019语言与智能技术竞赛的三元组抽取比赛方面的一次尝试.由于该比赛早已结束,笔者当时也没有参加这个比赛,因此没有测评成绩,我们也只能拿到训练集和验证集.但是,这并不耽误我们在这 ...

随机推荐

  1. 【ABAP系列】SAP ABAP 生成随机数的函数

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP 生成随机数的函数 ...

  2. day16模块,导入模板完成的三件事,起别名,模块的分类,模块的加载顺序,环境变量,from...import语法导入,from...import *,链式导入,循环导入

    复习 ''' 1.生成器中的send方法 -- 给当前停止的yield发生信息 -- 内部调用__next__()取到下一个yield的返回值 2.递归:函数的(直接,间接)自调用 -- 回溯 与 递 ...

  3. ssm项目的创建思路

    ·DAO层: 代码:pojo.映射文件.接口文件——Mybatis逆向工程自动生成 配置:ApplicationContext-dao.xml——数据源.连接池.会话工厂.mapper包扫描 ·Ser ...

  4. Linux下修改时间及date使用

    [root@host1 ~]# date #显示时间 2017年 06月 01日 星期四 17:02:59 CST 以指定格式显示时间: [root@host1 ~]# date +%Y%m%d 20 ...

  5. [Codeforces 1191D] Tokitsukaze, CSL and Stone Game(博弈论)

    [Codeforces 1191D] Tokitsukaze, CSL and Stone Game(博弈论) 题面 有n堆石子,两个人轮流取石子,一次只能从某堆里取一颗.如果某个人取的时候已经没有石 ...

  6. C#for(;;)是什么意思?

    一,正常for循环我们都接触过很多,如下,我们都理解 ,,,,, }; ; i < ; i++) { Console.WriteLine(tt[i]); } 二,但是for(;;)实际上它的含义 ...

  7. 05-CSS浮动、定位、页面布局

    # 浮动 ### 文档流文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列,块元素占一行,行内元素在一行之内从左到右排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置. # ...

  8. JavaScriptDOM对象和jQuery对象的互相转换

    前言: 首先我们思考能不能直接在jQuery对象上调用原生DOM对象的方法或者直接在原生DOM对象调用jQuery对象呢?答案是否定的,我们看下把body背景色变为红色的代码: $("bod ...

  9. openstack stein部署手册 3. keystone

    # 建立数据库用户及权限 create database keystone; grant all privileges on keystone.* to keystone@'localhost' id ...

  10. JVM垃圾回收算法图解

    参考文档:https://www.toutiao.com/a6691966641242112516/ 垃圾搜集算法 标记-清除法 标记-清除算法采用从根集合(GC Roots)进行扫描,对存活的对象进 ...