Catch Overflow!
https://codeforces.com/contest/1175/problem/B
题解:栈+模拟+标记
1、用栈记录for嵌套;
2、变量now记录当前栈内乘积;
3、当now大于的不再向栈内添加;
4、出栈时判断当前for是否在栈内;
5、ans大于时打标记;
/*
*@Author: STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
#define endl "\n"
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=100000+10;
const ll M=(1ll<<32)-1;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
int t,n,m,k,p,l,r,u,v;
ll ans,cnt,flag,temp,sum;
int vis[N];
char str[10];
struct node{};
int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endif//ios::sync_with_stdio(false);//cin.tie(0);//cout.tie(0);//scanf("%d",&t);//while(t--){scanf("%d",&n);stack<int>st;temp=1;while(n--){cin>>str;if(str[0]=='f'){scanf("%d",&m);if(flag){continue;}st.push(m);if(temp<=M)vis[st.size()]=1,temp*=m;}else if(str[0]=='e'){if(flag){continue;}m=st.top();if(vis[st.size()])vis[st.size()]=0,temp/=m;st.pop();}else{ans+=temp;if(ans>M)flag=1;if(flag){continue;}}}if(!flag)cout<<ans<<endl;else cout<<"OVERFLOW!!!"<<endl;//}#ifdef DEBUGprintf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);
#endif//cout << "Hello world!" << endl;return 0;
}
Catch Overflow!相关推荐
- Educational Codeforces Round 66 (Rated for Div. 2) B. Catch Overflow!
链接:https://codeforces.com/contest/1175/problem/B 题意: You are given a function ff written in some bas ...
- 程序中try、throw、catch三者之间的关系
c++程序中,采用一种专门的结构化处理逻辑的异常处理机制. 1.try语句 try语句块的作用是启动异常处理机制,检测try语句块中程序语句执行时可能出现的异常. try语句块总是与catch一同出现 ...
- Educational Codeforces Round 66 (Rated for Div. 2)
题意:求最小操作数 使得归零 两种操作 1 减一 2能被k整除的时候除k 签到题: 记得开ll即可 #include<bits/stdc++.h> using namespace ...
- C++异常处理(try和catch)
在C++中,一个函数能够检测出异常并且将异常返回,这种机制称为抛出异常.当抛出异常后,函数调用者捕获到该异常,并对该异常进行处理,我们称之为异常捕获. C++新增throw关键字用于抛出 ...
- html布局overflow,overflow的中文意思
html overflow什么意思 意思:HTML溢出: HTML缩写:超文本标记语言(Hyper Text Markup Language),标准通用标记语言下的一个应用.HTML 不是一种编程语言 ...
- 溢出科普:heap overflow溢出保护和绕过
pr0mise · 2016/04/11 9:50 0x00 第一部分:heap overflow 接上文,来看另外一种溢出方式:堆溢出.相对于栈溢出来说,稍微麻烦一点 本文算是一个笔记,技术有限,难 ...
- 了解Stack Overflow,这是您获得编程和调试知识的途径
无休止的知识? (Endless knowledge?) Can you imagine a platform where you could access the advice and wisdom ...
- Android记录23-关于actionbar中overflow menu(溢出菜单)中的一些问题
Android记录23-关于actionbar中overflow menu(溢出菜单)中的一些问题 前言 本篇博客记录一下小巫在使用actionbar的时候遇到关于溢出菜单的一些问题: 什么是Over ...
- Android ActionBar中Overflow Menu(溢出菜单)中的一些问题
关注微信号:javalearns 随时随地学Java 或扫一扫 随时随地学Java 前言 开始前我们先来关注一下Android Overflow menu的几个相关问题: 什么是Overflow ...
最新文章
- socket 995 错误 boost
- Java中++i和i++的区别
- Linux:命令执行控制与||
- 新浪微博oauth2.0弹出验证dialog中输入框被输入法覆盖的解决办法
- 04、Vue.js---自定义过滤器
- 西安电子科技大学计算机录取分数,2021年西安电子科技大学投档线及各省最低录取分数线统计表...
- 《Python Cookbook 3rd》笔记(1.19):转换并同时计算数据
- 求字符串全排列的递归算法
- java byreference_Java中各种引用(Reference)解析
- 对于python命令行参数使用,你应该这么做才专业
- c语言红警源代码,真香!红警游戏源代码开源了,70,80,90最好的游戏
- 虚拟机讲只读文件变为可读可写文件_Linux虚拟机文件系统突然变成只读
- SpringBoot是什么?
- SSM+Jedis初体验
- 混沌之初--制作一款RPG游戏
- 添加虚拟机镜像centso 8的步骤
- 复习Java第一个项目学生信息管理系统 04(权限管理和动态挂菜单功能) python简单爬数据实例Java面试题三次握手和四次挥手生活【记录一个咸鱼大学生三个月的奋进生活】016
- 成为IT精英,我奋斗了7年
- 联邦学习攻击与防御综述
- Hadoop常用命令介绍
热门文章
- c语言turboc图形代码,发个C代码(简单动画演示)
- mysql6支持connect by_mysql 实现oracle start with connect by递归
- css 边框设置成不透明,css中如何设置半透明边框?
- java swing form_在java swing中创建表单最简单的方法是什么?
- centos7下php设置用户和组,centos系统添加/删除用户和用户组的例子
- 【机器学习算法专题(蓄力计划)】十二、机器学习中KNN算法
- 四十五、爬取QQ音乐Lemon 日语歌的评论
- Sun公司因为不懂销售和运营,导致陨落,最终软件还是打败了硬件
- pytorch 入门Tensor(一)
- 今晚直播 | 商汤科技X-Lab刘宇:神经网络结构与大规模优化方法