| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> POJ-1684 Dynamic Declaration Language (DDL) (大模拟) -> 正文阅读 |
|
[C++知识库]POJ-1684 Dynamic Declaration Language (DDL) (大模拟) |
题目链接:Dynamic Declaration Language (DDL) - POJ 1684 - Virtual Judge 题目大意:给n组指令,指令有以下几种。 DCL X 表示定义一个名为X的变量,并且初值为0 INC X 变量名为X的值+1 DEC X 变量名为X的值-1 GOTO X label 如果变量X的值大于0,则跳转到第label行,反之,跳过这条指令到下一行(我就是这段读错题意了,我以为是跳到label的下一行) GOTO label 跳转到label行 END 结束操作 X = value 将value赋值给变量X 如果定义(DCL X)了一个变量之后,没有对他进行操作(指没有INC或DEC或GOTO X或赋值)就再次定义(DCL X)则报指令为1的错误。输出为i 1(即第i行出现1错误)。 如果未定义变量,就对这个变量进行操作,则报指令为2的错误。输出为i 2(第i行出现2错误)。 以上报错行的命令均无效。 且此题有多组数据,输出答案前需要输出这是第几组数据(我不知道是我读题有问题还是怎么样,我根本没有在题目中看到这个意思,还是根据输出猜出来的) 解题思路:其实这题不难,是一个很直白的模拟题,但是有挺多细节需要注意。 我的思路是,首先将所有命令读进来,用结构体存储。结构体的op表示这是第一个命令,t表示这个变量名是什么,val表示如果值读入(比如赋值语句和GOTO语句),则是这个值。t的初值是‘-’,其他初值是0. 开两个map<char,int>f, value,第一个用于处理DCL语句,如果x没有定义,则f[x] = 0;定义了,f[x] = 1;如果这个变量的值被处理过了,则f[x] = 2.value[x]表示x的值。 然后就按照题意进行操作就好。 这题思路不难。为数不多的难点在于正确理解题意,字符串的读入,细节处理。 不过这几点也同样是这种没有什么需要贪心思路的模拟题的注意点。 我的代码逻辑还算清晰,具体细节就不讲了,直接上代码。 代码实现:
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 8:02:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |