Destroy the web
来源:互联网 发布:查看他人通话记录软件 编辑:程序博客网 时间:2024/06/07 00:12
题目描述
你玩过一个叫做"Kick Ass - Destroy the web"的游戏吗?如果你想玩的话
当然,你没有玩过也没关系,这个游戏是通过js来加载一个飞船,让你可以通过控制它发射子弹来摧毁网页上的元素,从而获得分数。
我们知道HTML是超文本标记语言,简单地说就是通过一些标签来指明元素的展示方式,比如<p></p>
就可用作表明这是一个段落,<div></div>
表明这是一个区块。
假设有一个网页只含有<p></p>
、<div></div>
两种标记,其中<p><p>
中只含有数字,摧毁<p></p>
标记可获得其中各个数字之和的分数,摧毁<div></div>
可获得其中包含的所有<p></p>
分数与包含的<div></div>
分数二倍之和的分数。
现在给你一个网页,你能否计算出完全摧毁它可得到的分数。
为了简化难度,你可以假设:
- 所给网页的字符只有数字和标签
- 所给网页的标签都正确匹配
- 保证所给网页中的数字都在
<p></p>
标签内 <p></p>
标签内不会含有标签<div></div>
标签内可能含有<p></p>
标签和<div></div>
标签
输入
多组测试数据,请处理到文件结束。
每组占一行,有一个长度不大于1000的字符串代表所给网页。
输出
请输出完全摧毁此网页可获得的分数。
样例输入
<div><p>123</p><div><p>123</p></div></div>
样例输出
18
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;char s[1020];int dfs(int m,int &t,bool flag) { if(flag) { int sum=0; while(true) { if(s[m]=='<'&&s[m+1]=='p'&&s[m+2]=='>') { sum+=dfs(m+3,m,false); } else if(s[m]=='<'&&s[m+1]=='d'&&s[m+2]=='i') { sum+=2*dfs(m+5,m,true); } else if(s[m]=='<'&&s[m+1]=='/'&&s[m+2]=='d') { t=m+6; return sum; } } } else { int sum=0; while(true) { if(s[m]<='9'&&s[m]>='0') sum+=s[m]-'0'; else { t=m+4; return sum; } m++; } }}int main() { while(scanf("%s",s)!=EOF) { int l=strlen(s); int res=0,i=0; while(i<l) { if(s[i]=='<'&&s[i+1]=='p'&&s[i+2]=='>') { res+=dfs(i+3,i,false); } else { res+=dfs(i+5,i,true); } } printf("%d\n",res); } return 0;}
阅读全文
0 0
- Destroy the web
- Destroy
- The Destroy/Create Cycle of Activities
- hdu 1692 Destroy the Well of Life
- Destroy the Well of Life HDU - 1692
- hdu 1692 Destroy the Well of Lif…
- HDU 1692 Destroy the Well of Life-卡时间-(枚举+剪枝)
- 解题报告:HDU_6123 Destroy the cube (容斥+三元环计数)
- AbstractApplicationContext -> destroy()
- WebView.destroy()
- angularjs-$destroy
- Destroy Walls
- Take back the web
- The World Wide Web
- The Web 2.0 Workgroup
- searching the Deep web
- Painting the Web
- SDL Embraces The Web
- JDK安装与配置详细图文教程
- 智能小车六《串口协议》
- 如何使用javadoc注释中的标记
- Python yield例子
- HDU 5542 The Battle of Chibi 树状数组+dp+优化
- Destroy the web
- 几种获取高度的方式
- 第五天:opencv-访问图像像素
- QT
- COGS2580:[HZOI 2015]偏序 II (三层CDQ分治+树状数组)
- PKU2186 Popular Cows 受欢迎的牛
- MySQL_002_基础_校对集
- Struts-2.5.10版本遇到的问题
- git--仓库本地操作命令介绍