POJ-1028Web Navigation,大水题坑我3遍
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 32963 | Accepted: 14704 |
-> Link <-
本来这种题意一目了然的题就得一遍过的,无奈很多小细节出了问题,表示只要照着题目告诉你的写就可以过了;
还有英语是硬伤!!!
题意:一个浏览器初始网址是”http://www.acm.org/“,当浏览新网页时就会有历史记录(就用我们平时用的来讲吧更好理解),我们回去浏览某个历史网页时刚刚浏览的网页就变成前一个网页了,(比如UC右键右滑是前进,左滑是后退),当我们浏览的是最新打开的网页时前进是无效的,而后退有效,当退回初始页面时再后退也无效了,反而前进有效回到刚才的页面;本题就是这个意思,然后输入一连串指令要我们求出当前网页网址;
思路:实际上题目已经告诉我们怎么做了;开两个栈,一个backward,一个forward,操作如下:
BACK: Push the current page on the top of the
forward stack. Pop the page from the top of the backward stack, making it the new current page. If the backward stack is empty, the command is ignored. 后退操作:先判断backward栈是否为空,是则忽视此操作,否则将当前页面存入forward栈中,然后将backward栈顶取出成为当前页面;
FORWARD: Push the current page on the top of the backward stack. Pop the page from the top of the forward stack, making it the new current page. If the
forward stack is empty, the command is ignored. 前进操作:先判断forward栈是否为空,是则忽视此操作,否则将当前页面存入backward栈中,然后将forward栈顶取出成为当前页面;
VISIT : Push the current page on the top of the backward stack, and make the URL specified the new current page. The forward stack is emptied.
打开新网页,此时前进无效了;
QUIT: Quit the browser. 输入结束标志;
只要操作有效(前进或后退不为空)则输出当前页面;
string ask,cur;
int main()
{
stack<string>before;
stack<string>ward;
cur="http://www.acm.org/";
while(cin>>ask&&ask[0]!='Q')
{
if(ask[0]=='V')打开新网页;
{
ward.push(cur);
while(!before.empty())//前进无效了,所以before栈清空;
before.pop();
cin>>cur;
cout<<cur<<endl;
}
else if(ask[0]=='B')
{
if(ward.empty())//先判断是否为空,不然WA,博主就是跪在这里;
cout<<"Ignored"<<endl;
else
{
before.push(cur);
cur=ward.top();
ward.pop();
cout<<cur<<endl;
}
}
else if(ask[0]=='F')
{
if(before.empty())
cout<<"Ignored"<<endl;
else
{
ward.push(cur);
cur=before.top();
before.pop();
cout<<cur<<endl;
}
}
}
return 0;
}
POJ-1028Web Navigation,大水题坑我3遍的更多相关文章
- 【转】POJ百道水题列表
以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...
- BZOJ_1621_[Usaco2008_Open]_Roads_Around_The_Farm_分岔路口(模拟+大水题)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1621\(n\)头奶牛,刚开始在一起,每次分成\(x\)和\(x+m\)两部分,直到不能再分,问 ...
- 第三届山西省赛1004 一道大水题(scanf)
一道大水题 时间限制: C/C++ 2000ms; Java 4000ms 内存限制: 65535KB 通过次数: 44 总提交次数: 1020 问题描述 Dr. Pan作为上兰帝国ACM的总负责人, ...
- PAT甲题题解-1101. Quick Sort (25)-大水题
快速排序有一个特点,就是在排序过程中,我们会从序列找一个pivot,它前面的都小于它,它后面的都大于它.题目给你n个数的序列,让你找出适合这个序列的pivot有多少个并且输出来. 大水题,正循环和倒着 ...
- PAT甲题题解-1117. Eddington Number(25)-(大么个大水题~)
如题,大水题...贴个代码完事,就这么任性~~ #include <iostream> #include <cstdio> #include <algorithm> ...
- 【数据结构】 最小生成树(四)——利用kruskal算法搞定例题×3+变形+一道大水题
在这一专辑(最小生成树)中的上一期讲到了prim算法,但是prim算法比较难懂,为了避免看不懂,就先用kruskal算法写题吧,下面将会将三道例题,加一道变形,以及一道大水题,水到不用高级数据结构,建 ...
- Wannafly挑战赛21:C - 大水题
链接:Wannafly挑战赛21:C - 大水题 题意: 现在给你N个正整数ai,每个数给出一“好数程度” gi(数值相同但位置不同的数之间可能有不同的好数程度).对于在 i 位置的数,如果有一在j位 ...
- 大水题(water)
题目描述dzy 定义一个 $n^2$ 位的数的生成矩阵 $A$ 为一个大小为 $n \times n$ 且 Aij 为这个数的第 $i \times n+j-n$ 位的矩阵.现在 dzy 有一个数 $ ...
- [BFS,大水题] Codeforces 198B Jumping on Walls
题目:http://codeforces.com/problemset/problem/198/B Jumping on Walls time limit per test 2 seconds mem ...
随机推荐
- input标签的hidden属性,四大常用JSTL标签库
input标签的hidden属性的应用及作用 定义:传输关于客户端/服务器交互的状态信息. Transmits state information about client/server intera ...
- Python variable 作用域和初始化
Python 根据LEGB rule在不同的namespace中找变量 在def的函数中对global 变量做修改还是不推荐的,应该将其作为参数传入函数 try: do_something() cnt ...
- poj1715Hexadecimal Numbers(数位dp)
链接 好久没写这种逐位计数的了. 先统计出总的数 ,s-n+1,倒着计算的 ,感觉倒着比较符合计算方式,总数为15*A(15,i) (1=<i<=8) 也就是1-8长度所有的排列总数 然后 ...
- Zclip点击复制内容到剪贴板兼容各浏览器
WEB开发中,要让用户复制页面中的一段代码.URL地址等信息,为了避免用户拖动鼠标再进行右键复制操作而可能出现的差错,我们可以直接在页面中放置一个复制按钮,只需要轻轻一点这个复制按钮,内容将会被复制, ...
- Windows Phone8.1应用 提交
昨天晚上,试了试把一个WP8.1应用提交到微软商店上去,期间遇到了不少问题,搞到凌晨还没弄好.今天早上,终于把WP8.1应用成功提交上去了. 下面说说如何把WP8.1应用提交商店去.提交WP8.1以及 ...
- Python3 动手自己写谷歌翻译
本篇为实现谷歌翻译的功能,在编写的时候以为只是一个接口的问题. 没想到的是每次翻译都会触发一次JS的执行,在请求参数中生成一个tk. 文中tk的实现是复用的网上大神的代码生成tk. 好了,不说了直接看 ...
- sublime text3安装Package Control
转自:https://www.cnblogs.com/lq147760524/p/8202521.html 一.下载Sublime3 https://www.sublimetext.com/3 二.安 ...
- EditText自动弹出软键盘
editText.requestFocus() editText.isFocusable = true editText.isFocusableInTouchMode = true val timer ...
- 使用RecyclerView
tags: 新建,模板,小书匠 RecyclerView 是 Android 团队新推出的控件,不仅能轻松实现 ListView 的同样的效果,还优化了 ListView 中许多不足之处. 目前 An ...
- 【ARM开发板】迅为IMX6开发板QT下LVDS和HDMI双屏异显
本文转自迅为论坛:http://www.topeetboard.com 平台:迅为-IMX6开发板 首先开发板分别连接9.7寸屏和HDMI显示器,然后使用MfgTool工具烧写QT系统,然后拨码开关设 ...