WUSTOJ 1643 WEB浏览器(栈的使用)
来源:互联网 发布:淘宝代销怎么编辑宝贝 编辑:程序博客网 时间:2024/06/06 10:57
1643: WEB浏览器
Time Limit: 1 Sec Memory Limit: 65535 MB 64bit IO Format: %lldSubmitted: 193 Accepted: 126
[Submit][Status][Web Board] [Edit] [TestData]
Description
模拟一个网页浏览的过程,给出起始页面,有三种命令:
(1)VISIT url:访问某URL,当前页面变为该URL。并且清空此页面后的所有浏览页面。
(2)BACK:后退,倒退到前一个网页
(3)FORWARD:前进,同理如上
(4)QUIT:退出,结束整个命令输入,这一行输入不用做任何处理,结束程序即可
假定浏览器最初的访问页面为:http://acm.wust.edu.cn/
Input
包含一系列指令(FORWARD,BACK,VISIT,QUIT),URL地址质检部包括空白符,其长度不超过70个字符。假定2个栈任何时候都不超过10个URL地址。最后输入QUIT表示关闭浏览器,退出程序。
Output
对每一个指令(QUIT除外)均输出当前访问页面URL地址。如果出现意外情况,则输出“Ignored”。
Sample Input
VISIT http://acm.ashland.edu/VISIT http://acm.baylor.edu/acmicpc/BACKBACKBACKFORWARDVISIT http://www.ibm.com/BACKBACKFORWARDFORWARDFORWARDQUIT
Sample Output
http://acm.ashland.edu/http://acm.baylor.edu/acmicpc/http://acm.ashland.edu/http://acm.wust.edu.cn/Ignoredhttp://acm.ashland.edu/http://www.ibm.com/http://acm.ashland.edu/http://acm.wust.edu.cn/http://acm.ashland.edu/http://www.ibm.com/Ignored
题解:
这题一开始用dfs写,也就是递归栈,后来写得觉得越来越不对劲就用了静态栈写,wa了一发,把样例画了个图,理解了forward的真正含义以后就ac了
代码:
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<queue>#include<stack>#include<math.h>#include<vector>#include<map>#include<set>#include<stdlib.h>#include<cmath>#include<string>#include<algorithm>#include<iostream>using namespace std;#define lson k*2#define rson k*2+1#define M (t[k].l+t[k].r)/2#define ll long longchar com[4][30]={"VISIT","BACK","FORWARD","QUIT"};int maxx;struct Stack{ int topp; char s[1005][105]; Stack() { topp=0; } void pop() { topp--; } void push(char t[]) { strcpy(s[topp],t); topp++; } int empty() { if(topp==0) return 1; return 0; } char* top() { return s[topp-1]; } char* forward() { topp++; return s[topp-1]; }}s;int main(){ //freopen("output.txt","w",stdout); maxx=-1; s.push("http://acm.wust.edu.cn/"); char say[105],url[105]; while(1) { scanf("%s",say); if(strcmp(say,com[0])==0) { getchar(); gets(url); printf("%s\n",url); s.push(url); } else if(strcmp(say,com[1])==0) { if(s.topp>1) { s.pop(); maxx=s.topp+1; printf("%s\n",s.top()); } else printf("Ignored\n"); } else if(strcmp(say,com[2])==0) { if(s.topp<=maxx) printf("%s\n",s.forward()); else printf("Ignored\n"); } else break; } return 0;}
阅读全文
0 0
- WUSTOJ 1643 WEB浏览器(栈的使用)
- WUSTOJ
- WUSTOJ 1961 神奇的序列
- WUSTOJ 1878 金明的预算方案(有依赖的背包/树形DP)
- wustoj 1318 区间的连通性 (最短路)
- WUSTOJ-1314: 奇怪的电子屏
- wustoj(二叉树的繁荣度)
- 更改zend studio 的web浏览器 让zend studio 不再使用内部web浏览器
- 使用XmlHttp编写兼容多浏览器的ajax WEB页面
- 如何使用转发和 web 浏览器控件的后退按钮
- Kendo UI Web中图像浏览器的使用
- MyEclipse使用教程:Linux Internal Web浏览器的兼容性
- 方便Web开发人士使用的浏览器编辑器插件总结
- atitit.浏览器web gui操作类库 和 操作chrome浏览器的类库使用总结
- java web如何根据用户使用的浏览器来提示用户更新或更换浏览器
- wustoj(二叉树的非递归遍历方法)
- WustOj--1546传说中的教主(思维,脑洞)
- wustoj(脑洞)
- Android 基础[Values添加Float和Integer]
- A计划--POJ2388 中位数
- 用Python发的第一封邮件
- SA17225160_李伯威(libowei)_高级软工第六次实验报告
- Python+React+Websocket+Redis实现的实时多人聊天
- WUSTOJ 1643 WEB浏览器(栈的使用)
- 铜牌汇总1
- Qt基础
- 机器学习相关英文术语
- java执行Logcat命令时如何停止线程运行
- 8.IP地址相关
- vmware新建opensuse42.3系统图文教程
- Nginx http 500错误分析及解决方法
- git config