CF-1175 B.Catch Overflow!
2024-09-03 11:55:43
题目大意:有一个初始变量,值为0,三种操作
for x 一个循环的开始,循环x次
end 一个循环的结束
add 将变量值加一
问最后变量的值是否超过2^32-1,若超过,输出一串字符,不超过则输出变量的值
做法:对于循环结构,有两种思路,一种是先算出内循环的值,然后再一层一层的向外算;还有一种是从外向内进行变量操作。我们平时的思考方法应该与思路一比较相似,但是在这个题中会发现很难实现,比如说一个循环内嵌套了两个并列的循环结构,这就让人很头大。所以本题应该采用思路二,思路二一旦想明白了,代码就不难写了。
#include<iostream>
#include<cstdio>
#define maxn 100010
#define Mod 4294967295LL
using namespace std;
long long st[maxn],ans;
int n,top;
char s[];
int main(){
scanf("%d",&n);
st[]=;
while(n--){
scanf("%s",s+);
if(s[]=='a'){
ans+=st[top];
if(ans>Mod){
puts("OVERFLOW!!!");
return ;
}
}
else if(s[]=='f'){
long long x;
cin>>x;
top=top+;
st[top]=st[top-]*x;
if(st[top]>Mod)st[top]=Mod+;
}
else top--;
}
if(ans>Mod)puts("OVERFLOW!!!");
else cout<<ans<<endl;
return ;
}
最新文章
- 04讲 正确使用heterogeneous类型的元件
- Linux C编程学习之开发工具3---多文件项目管理、Makefile、一个通用的Makefile
- http服务的安装与配置
- HDU1890 Robotic Sort[splay 序列]
- FMDB简单封装和使用
- How to import library ?
- Scala第二章学习笔记
- View和监听器
- iOS中二维码的生成与使用(入门篇)
- day 11 装饰器
- 细说@Html.ActionLink()的用法
- 【redis】7、redis用法总结
- 【使用指南】WijmoJS 前端开发工具包
- leetcode1024
- #pragma once 与 #ifndef 的使用
- java 异常与记录日志
- FIR滤波原理及verilog设计
- unity, 2d rope
- iOS- 什么是GitHub?关于它的自我介绍「初识 GitHub」
- 利用TLE数据确定卫星轨道(1)-卫星轨道和TLE