【UVA】1596 Bug Hunt(模拟)
题目
分析
算是个模拟吧
代码
#include <bits/stdc++.h>
using namespace std;
map<int,int> a[130];
char s[85];
int n[130];
int PosIs()
{
int len=strlen(s);
for(int i=0;i<len;i++)
if(s[i]=='=') return i;
return -1;
}
int get_num(int k)
{
int res=0;
if(isalpha(s[k]))
{
int t=get_num(k+2);
if(t<0|| t>=n[s[k]] || !a[s[k]].count(t))
res=-1;
else res=a[s[k]][t];
}
for(int i=k;isdigit(s[i]);i++)
{
if(i==k && s[i]=='0' && isalpha(s[i+1]))
{
res=-1;
break;
}
res=res*10+s[i]-'0';
}
return res;
}
int main()
{
int res=0;
while(scanf("%s",s) && s[0]!='.')
{
int ans=0,cnt=0;
for(int i=0;i<130;i++) a[i].clear();
do
{
if(ans) continue;
cnt++;
int k=PosIs();
if(k<0)
{
int t=get_num(2);
if(t<0){ans=cnt; continue;}
n[s[0]]=t;
}
else
{
int t1=get_num(2);
if(t1<0||t1>=n[s[0]]) {ans=cnt;continue;}
int t2=get_num(k+1);
if(t2<0) {ans=cnt;continue;}
a[s[0]][t1]=t2;
}
}while(scanf("%s",s) && s[0]!='.');
printf("%d\n",ans);
}
return 0;
}
【UVA】1596 Bug Hunt(模拟)的更多相关文章
- UVA 1596 Bug Hunt (大模拟 栈)
题意: 输入并模拟执行一段程序,输出第一个bug所在的行. 每行程序有两种可能: 数组定义: 格式为arr[size]. 例如a[10]或者b[5],可用下标分别是0-9和0-4.定义之后所有元素均为 ...
- UVa 1596 Bug Hunt (string::find && map && 模拟)
题意 : 给出几组由数组定义与赋值构成的编程语句, 有可能有两种BUG, 第一种为数组下标越界, 第二种为使用尚未定义的数组元素, 叫你找出最早出现BUG的一行并输出, 每组以' . '号分隔, 当有 ...
- 【技巧性(+递归运用)】UVa 1596 - Bug Hunt
In this problem, we consider a simple programming language that has only declarations of onedimensio ...
- uva 1596 Bug Hunt
In this problem, we consider a simple programming language that has only declarations of one-dimensi ...
- UVa 1596 Bug Hunt (STL栈)
题意:给定两种操作,一种是定义一个数组,另一种是赋值,让你找出哪一步时出错了,出错只有两种,一种是数组越界,另一种是访问未定义变量. 析:当初看到这个题时,感觉好麻烦啊,然后就放过去了,而现在要重新回 ...
- [刷题]算法竞赛入门经典(第2版) 5-9/UVa1596 - Bug Hunt
//开学了,好烦啊啊啊啊啊!怎么开个学那么多破事情!!都俩星期了,终于有时间写出来一道题 题意:不难理解,不写了.这几天忙的心累. 代码:(Accepted, 0.010s) //UVa1596 - ...
- 【习题 5-9 UVA - 1596】Bug Hunt
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] map模拟 map<string,int>记录每个数组的大小 map <pair<string, int&g ...
- Bug Hunt UVA - 1596
In this problem, we consider a simple programming language that has only declarations of onedimens ...
- UVa 11210 - Chinese Mahjong 模拟, 枚举 难度: 0
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...
随机推荐
- DIV css中cursor属性详解-鼠标移到图片变换鼠标形状 (转)
css中cursor属性详解-鼠标移到图片变换鼠标形状 语法: cursor : auto | all-scroll | col-resize| crosshair | default | han ...
- Lua基础---迭代器
官方的文档说: 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址 在Lua中迭代器是一种支持指针类型的结构,它可以遍历集合的每 ...
- python常用模块之random模块
python常用模块之random模块 在程序中很多会用到随机字符,比如登陆网站的随机验证码,通过random模块可以很容易生成随机字符串 1.random.randrange():返回1-10之间的 ...
- .NET反编译工具 .net Reflector_8.3.0.95 下载激活
在网上找了很久,很多地方都没有注册机,终于机缘巧合下找到了这个有注册机的反编译工具,放于百度网盘,供大家下载 里面有包含如何破解,不过此处也多做一次解释: 注:1.记得断开网络 2.至于杀毒软件,我没 ...
- 框架重构:测试中的DateTime.Now
存在的问题 DateTime.Now是C#语言中获取计算机的当前时间的代码: 但是,在对使用了DateTime.Now的方法进行测试时,由于计算机时间的实时性,期望值一直在变化.如:计算年龄. pub ...
- 【解题报告】CF Round #320 (Div. 2)
Raising Bacteria 题意:盒子里面的细菌每天会数量翻倍,你可以在任意一天放任意多的细菌,最后要使得某天盒子里面的细菌数量等于x,求至少要放多少个细菌 思路:显然,翻倍即为二进制左移一位, ...
- BZOJ4550: 小奇的博弈(NIMK博弈& 组合数& DP)
4550: 小奇的博弈 Time Limit: 2 Sec Memory Limit: 256 MBSubmit: 159 Solved: 104[Submit][Status][Discuss] ...
- hihocoder1618 单词接龙
#1618 : 单词接龙 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个单词字典和一个起始字母.小Hi需要从起始字母开始,每次再加上一个字母,生成长度为2.3. ...
- win8.1下安装双系统ubuntu14.04.3
一.去ubuntu官网下载长期支持版的系统,64位还是32位由物理内存而定,4G以下用32位,4G以上(包括4G)使用64位. 二.若64位的系统,下载下来的文件名应该是ubuntukylin-14. ...
- ckeditor使用教程
ckeditor 的官方网站是 http://ckeditor.com/ 一.使用方法: 1.在页面<head>中引入ckeditor核心文件ckeditor.js <script ...