cdoj 秋实大哥搞算数
地址:http://acm.uestc.edu.cn/#/contest/show/95
题目:
N - 秋实大哥搞算数
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
秋实大哥大学物理挂科了(误),于是在下学期的前两周的某一天要悲剧的补考。为了不给学校的挖掘机大楼做贡献,秋实大哥决定在假期里努力复习。当然,良好的计算能力也是非常必要的,毕竟是涉及计算自己做多少分的题能够通过考试的问题。现在他给自己出了一大堆长长的只有涉及整形四则运算式子,然后埋头计算结果。为了检验自己的计算能力,他请你来帮忙。
Input
第一行一个整数T,表示式子的总数。
接下来每一行有一个长度不超过10^6的表达式,只包含正整数和四则运算符号('+', '-', '*', '/')。
保证输入合法。
Output
对于每一个表达式,输出相应的结果,占一行。
保证运算及结果在long long范围以内。
Sample input and output
| Sample Input | Sample Output |
|---|---|
2 |
12 |
思路:
,,wa次数最多的题目,,一开始没判\r(第一见要判这个的,涨姿势了),,,wa无数次
然后智商不够,用栈搞不出来,又只能自己想了。。。。。。
我的做法是对答案有影响的就三个操作符,当前读取的操作符,和前两个,然后对所有情况分类讨论,,,这样就可以在读取的时候做的一边读取一边计算了。。。
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <queue>
#include <stack>
#include <map>
#include <vector>
#include <cstdlib>
#include <string> #define PI acos((double)-1)
#define E exp(double(1))
using namespace std; int main (void)
{
int t;
cin>>t;
getchar();
while(t--)
{
long long num[],ans=;
char op[],c;
scanf("%lld",&num[]);
if(scanf("%c",&c)==EOF||c=='\n')
{
printf("%lld\n",num[]);continue;
}
op[]=c;//3为当前操作数
scanf("%lld",&num[]);
while(scanf("%c",&op[])!=EOF && op[]!='\n')
{
scanf("%lld",&num[]);
if(op[]=='*'||op[]=='/')
{
if(op[]=='+'||op[]=='-')
{
if(op[]=='*')num[]*=num[];
else num[]/=num[]; }
else
{
if(op[]=='*') num[]*=num[];
else num[]/=num[];
num[]=num[];
op[]=op[];
} }
else
{
if(op[]=='+'||op[]=='-')
{
if(op[]=='+') num[]+=num[];
else num[]-=num[];
num[]=num[];
op[]=op[];
}
else
{
if(op[]=='*') num[]*=num[];
else num[]/=num[];
num[]=num[];
op[]=op[];
}
}
}
if(op[]=='*') ans=num[]*num[];
else if(op[]=='/') ans=num[]/num[];
else if(op[]=='+') ans=num[]+num[];
else ans=num[]-num[];
printf("%lld\n",ans);
} return ;
}
cdoj 秋实大哥搞算数的更多相关文章
- UESTC 1074 秋实大哥搞算数 栈模拟
秋实大哥搞算数 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit S ...
- UESTC_秋实大哥搞算数 2015 UESTC Training for Data Structures<Problem N>
N - 秋实大哥搞算数 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Subm ...
- 2015 UESTC 数据结构专题N题 秋实大哥搞算数 表达式求值/栈
秋实大哥搞算数 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1074 Des ...
- cdoj 秋实大哥与战争
首先,显然每个区间的最长连续子区间要么在左孩子里,要么在右孩子里,要么跨越两个孩子.于是我们可以对每个区间维护如下信息ll(left long),rl(rigth long),ml(mid long) ...
- cdoj 秋实大哥带我飞 最短路走法 含0权边
//做完这题以后终于理解白书上的边为什么要那样定义了 可以很方便的在o(1) 时间内找到反向边 解法:先跑一边最短路,然后检查最短路上有没有0权边(dfs就好,但是每条边只能走一次,这里就需要用异或找 ...
- CDOJ 1146 A - 秋实大哥与连锁快餐店 最小生成树 Prim算法 稠密图
题目链接 A - 秋实大哥与连锁快餐店 Time Limit:3000MS Memory Limit:65535KB 64bit IO Format:%lld & %llu S ...
- CDOJ 1070 秋实大哥打游戏 带权并查集
链接 F - 秋实大哥打游戏 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format:%lld & %llu Submit ...
- CDOJ 1069 秋实大哥去打工 单调栈 下标处理
E - 秋实大哥去打工 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format:%lld & %llu Submit St ...
- CDOJ 1061 C - 秋实大哥与战争 STL set 迭代器
题目链接: C - 秋实大哥与战争 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format:%lld & %llu Sub ...
随机推荐
- jQuery实现浮动层跟随页面滚动效果
helloweba.com Author:月光光 Time:2010-11-29 09:02 Tag: jquery 滚动 在本文中,我将介绍一个可以跟随页面滚动的层效果,当用户滚动鼠标滚轮或者 ...
- is_array
is_array (PHP 4, PHP 5) is_array — 检测变量是否是数组
- 几种排序算法的java实现
import java.util.Arrays; /** * 各种排序算法从小到大进行排序 */ public class Test { public static void main(String ...
- 该如何将MathType公式粘贴到文档中
MathType是一款非常好用的数学公式编辑器,因为它与很多的文档处理器都能够很好地兼容,因此其使用范围非常的大.MathType公式编辑器编辑的公式与数学符号等都符号国际期刊的出版标准,并且上手容易 ...
- JavaScript格式化日期输出
JavaScript Code 12345678910111213141516171819202122232425262728 <script> window.onload ...
- SpringBoot新增监听器Listener
什么是web监听器? web监听器是一种Servlet中的特殊的类,它们能帮助开发者监听web中的特定事件,比如ServletContext,HttpSession,ServletRequest的创建 ...
- jQuery 事件的命名空间的含义
对于jquery的on的events解释是 一个或多个空格分隔的事件类型和可选的命名空间,或仅仅是命名空间,比如"click", "keydown.myPlugin&qu ...
- scrapy 相关
Spider类的一些自定制 # Spider类 自定义 起始解析器 def start_requests(self): for url in self.start_urls: yield Reques ...
- AWS系列-根设备类型
1.AWS根设备类型分为两类 实例存储(本地存储) EBS存储(网络存储) 2.实例存储 系统和磁盘在同一主机上 3.EBS存储 Elastic Block Storage EBS可能与云主机不在一台 ...
- Oracle菜鸟之怎样创建和删除表空间
1.创建暂时表空间 创建表空间时,dbf文件一般存放在datafile文件的存放文件夹下(通常是在实例名命名的文件夹以下) 能够通过 select * from v$datafile;查看全部数据文件 ...