【hpu1414】Kick Ass
来源:互联网 发布:淘宝直播间数据提取 编辑:程序博客网 时间:2024/06/01 08:20
你玩过一个叫做”Kick Ass - Destroy the web”的游戏吗?如果你想玩的话请点击此处
当然,你没有玩过也没关系,这个游戏是通过js来加载一个飞船,让你可以通过控制它发射子弹来摧毁网页上的元素,从而获得分数。
我们知道HTML是超文本标记语言,简单地说就是通过一些标签来指明元素的展示方式,比如
就可用作表明这是一个段落,表明这是一个区块。假设有一个网页只含有
、两种标记,其中中只含有数字,摧毁
标记可获得其中各个数字之和的分数,摧毁可获得其中包含的所有分数与包含的分数二倍之和的分数。现在给你一个网页,你能否计算出完全摧毁它可得到的分数。
为了简化难度,你可以假设:
所给网页的字符只有数字和标签
所给网页的标签都正确匹配
保证所给网页中的数字都在
标签内不会含有标签标签内可能含有标签和标签输入多组测试数据,请处理到文件结束。每组占一行,有一个长度不大于1000的字符串代表所给网页。输出请输出完全摧毁此网页可获得的分数。样例输入
123
123
样例输出
18
心理小活动:
/*
强调内容字符串中一开始进行递归时不是div就是p,若是p就直接算中间的数的和然后返回,
只有是div时才会进入if()为真的循环,而且若div是第一次出现那么不会出现里面的值乘二
起初这道题没理解题意,以为只要有数在div和/div之间就成二,
原来是摧毁 < div > < /div > 可获得其中包含的所有 < p >< /p>分数与包含的< div>< /div>分数二倍之和的分数。
所以只有是div出现第二次及以上的时候才会出现数的和乘二
*/
AC代码:
#include<cstdio>#include<cstring> #include<algorithm>using namespace std;char str[1010];int dfs(int m,int &t,bool flag){ if(flag) { int sum=0; while(true) { if(str[m]=='<'&&str[m+1]=='p'&&str[m+2]=='>') sum+=dfs(m+3,m,false); else if(str[m]=='<'&&str[m+1]=='d'&&str[m+2]=='i') sum+=2*dfs(m+5,m,true); else if(str[m]=='<'&&str[m+1]=='/'&&str[m+2]=='d') { t=m+6; return sum; } } } else { int sum=0; while(true) { if(str[m]>='0'&&str[m]<='9') { sum+=str[m]-'0'; } else { t=m+4; return sum; } m++; } }}int main(){ while(~scanf("%s",str)) { int l=strlen(str); int res=0,i=0; /* 字符串中一开始进行递归时不是div就是p,若是p就直接算中间的数的和然后返回, 只有是div时才会进入if()为真的循环,而且若div是第一次出现那么不会出现里面的值乘二 起初这道题没理解题意,以为只要有数在div和/div之间就成二, 原来是摧毁<div></div>可获得其中包含的所有<p></p>分数与包含的<div></div>分数二倍之和的分数。 所以只有是div出现第二次及以上的时候才会出现数的和乘二 */ while(i<l) { if(str[i]=='<'&&str[i+1]=='p'&&str[i+2]=='>') res+=dfs(i+3,i,false); else res+=dfs(i+5,i,true); } printf("%d\n",res); }return 0; }
阅读全文
0 0
- 【hpu1414】Kick Ass
- hpu1414: Kick Ass [字符串]
- Kick Ass小游戏
- Kick Ass小游戏
- 【HPU 1414: Kick Ass】
- Kick Ass Biu
- 1414: Kick Ass [字符串]
- 1414: Kick Ass【栈+思维】
- 1416: Kick Ass Biu [几何]
- HPUOJ 1414: Kick Ass [字符串]
- 1416: Kick Ass Biu [几何]
- 【HPU 1416 Kick Ass Biu】几何
- 多校联萌第三场 问题 A: Kick Ass
- 【HPUOJ 1416】Kick Ass Biu 【几何】
- 10 Free Server & Network Monitoring Tools that Kick Ass
- 50 Kick-Ass Websites You Need to Know About
- ShineTime – A Kick-Ass New jQuery & CSS3 Gallery With Animated Shine Effects
- SDNU 1331.Kick Veges' Ass【SDNU2015暑期集训队测验I】【二分法】【8月3】
- 缓存系统简介
- 2017 百度之星 Round 2
- 2017"百度之星"程序设计大赛
- break、continue、 Return
- PL2303HX----Family Software Newsletter #37
- 【hpu1414】Kick Ass
- OpenCV3.3.0+VS2015开发环境配置
- JavaScript函数与对象
- POJ 1149 PIGS(最大流)
- springmvc的出现原因
- WebRTC对Simulcast的支持
- 账户密码自动登录
- NYoj 171 聪明的kk
- 5.修改hadoop配置文件