时间限制:1000ms

单点时限:1000ms

内存限制:256MB

描述

wuzhengkai是一个炉石传说玩家。

有一天,他碰到对面上了个诺兹多姆并上了嘲讽和圣盾。

诺兹多姆是一个有8点攻击力和8点生命值的随从,这意味着他能够承受总量小于8点的伤害而不死亡,且对于任何攻击他的单位造成8点伤害。

嘲讽意味着当诺兹多姆死亡之前你不能攻击对方玩家。圣盾意味着诺兹多姆受到的第一次伤害为0,然后诺兹多姆失去圣盾。

诺兹多姆的能力是让回合时间变为15s,这导致wuzhengkai来不及计算了。

wuzhengkai场上有一些随从,每个随从有其攻击力和生命值,含义同上。

同时一些随从也具有圣盾。一些随从还具有风怒,使得他若在第一次攻击后存活,则还能够攻击一次。

他想让你帮忙算出这回合他能带给对方玩家多少伤害。

输入

输入包含多组数据。

第一行一个整数n,(0<=n<=7),表示wuzhengkai场上有n个随从。

接下来n行,每行首先两个整数Att和Hp(0<Att<=10,0<Hp<=10),表示该随从的攻击力和生命值

接下来每行可能还有0~2个字母跟在这两个整数之后。字母D表示圣盾,字母W表示风怒。

每行中的内容以一个空格隔开。

输出

对于每组数据,输出一个整数,表示wuzhengkai能对对方玩家造成的最大伤害。

样例输入

3
1 1 D W
8 8
4 2 D

样例输出

5

玩过炉石的好理解一点……

/**/
#include <cstdio>
#include <queue>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <map>
#include <set>
#include <bitset>
#include <stack>
#define ll long long
#define ull unsigned long long
#define inf 0x3f3f3f3f
const int mod=997;
const int N=110;
using namespace std;
int num[10];
int n,sum;
struct node
{int att,hp;bool W,D;
} s[10];
void dfs(int nom,int face,int k,bool D)//诺姆生命值,玩家收到伤害,第几个随从,诺姆是否有圣盾
{if(k>n){if(nom>=8)sum=max(sum,face);return;}int i=num[k];if(D)//诺姆有圣盾{if(s[i].W)//随从有风怒{if(s[i].D||s[i].hp>8)//保证可以攻击两次(有圣盾和血量大于诺姆 的攻击值){//该随从第一次攻击诺姆圣盾,第二次留着打脸dfs(nom,face+s[i].att,k+1,false);dfs(nom+s[i].att,face,k+1,false);//该随从第一次攻击诺姆圣盾,第二次攻击诺姆}}dfs(nom,face,k+1,false);//攻击圣盾}else//诺姆无圣盾{if(s[i].W)//随从有风怒{dfs(nom,face+s[i].att*2,k+1,false);//可以直接打脸if(s[i].D||s[i].hp>8)//保证可以攻击两次(有圣盾和血量大于诺姆 的攻击值){dfs(nom+s[i].att,face+s[i].att,k+1,false);//一次打诺姆,打死诺姆后,第二次打脸dfs(nom+s[i].att*2,face,k+1,false);//两次都打诺姆,不保证打死}}dfs(nom+s[i].att,face,k+1,false);//打诺姆,不保证打死dfs(nom,face+s[i].att,k+1,false);//打脸}
}
int main()
{while(~scanf("%d",&n)){sum=0;for(int i=1; i<=n; i++){scanf("%d%d",&s[i].att,&s[i].hp);s[i].D=false;s[i].W=false;char ch;while(~scanf("%c",&ch)){if(ch=='\n')break;else if(ch=='D')s[i].D=true;else if(ch=='W')s[i].W=true;}}for(int i=1; i<=n; i++){num[i]=i;}for(int i=1; i<=n; i++){swap(num[i],num[1]);dfs(0,0,1,true);}printf("%d\n",sum);}return 0;
}

hihocoder #1115 : 诺兹多姆(dfs爆搜)相关推荐

  1. 【ZSTU4210 2015年12月浙理工校赛 A】【DFS爆搜】孙壕请一盘青岛大虾呗 n个消费点m个购物点最后一位置恰好消费完

    4210: 孙壕请一盘青岛大虾呗 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 585  Solved: 249 Description 话说那一年z ...

  2. DFS(爆搜、深搜)

    DFS俗称爆搜,深搜.DFS对应的流程是一个树的结构,DFS的精髓在于递归求解的思路以及回溯的处理.针对搜索的过程,又有重要的剪枝优化.必要的剪枝优化对DFS的顺序执行有很大的作用. DFS的过程就是 ...

  3. POJ3185 The Water Bowls(反转法or dfs 爆搜)

    POJ3185 The Water Bowls 题目大意: 奶牛有20只碗摆成一排,用鼻子顶某只碗的话,包括左右两只在内的一共三只碗会反向,现在给出碗的初始状态,问至少要用鼻子顶多少次才能使所有碗都朝 ...

  4. 1355. 母亲的牛奶【一般 / DFS爆搜】

    https://www.acwing.com/problem/content/1357/ #include<bits/stdc++.h> using namespace std; int ...

  5. HDU多校6 - 6831 Fragrant numbers(dfs爆搜+打表)

    题目链接:点击查看 题目大意:给出一个以 " 1145141919 " 无限循环的字符串,现在可以在合适的位置添加 ' + ' , ' * ' 和 ' ( ' , ' ) ' 将其 ...

  6. 容斥 + 爆搜打表 ---- 2020年南京icpc H.Harmonious Rectangle

    题目链接 题目大意: 就是给你一个二维平面{(x,y)∣1≤x≤n,1≤y≤m}\{(x,y)|1\leq x\leq n,1\leq y \leq m\}{(x,y)∣1≤x≤n,1≤y≤m},你现 ...

  7. 1103 Integer Factorization (30 分)【难度: 中 / 爆搜】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805364711604224 爆搜的做法,动态规划也可以做,有时间也一个动 ...

  8. 1096 Consecutive Factors (20 分)【难度: 一般 / 爆搜 数论】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805370650738688 注意测试点1: 72=2*3*3*4 我这里 ...

  9. UVA 2474 - Balloons in a Box 爆搜

    2474 - Balloons in a Box 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&a ...

最新文章

  1. 面试问什么是无损降级?
  2. JMeter 下载安装教程
  3. java 数据库转储_从源控制数据库驱动的应用程序所需的转储开始?
  4. 携程Apollo(阿波罗)配置中心在.NET Core项目快速集成
  5. [译]Javascript中的闭包(closures)
  6. 活动选择问题 贪心
  7. 你家的APS系统有这些功能吗?排程系统功能盘点
  8. Oracle索引原理
  9. NexT 主题自定义侧边栏图标
  10. 深度学习-1.3卷积神经网络
  11. 中级软件设计师知识点总结
  12. 中国雅虎邮箱明日停止服务 邮件帐户均将删除
  13. 【软件安装使用】pano2vr教程
  14. javaScript中什么时候用分号;
  15. scrapy框架爬取大单、中单、小单净流入流出
  16. 中移物联网模块M8321P调试记录
  17. 打印1000年到2000年之间的闰年
  18. MySQL8高级优化,持续更新......
  19. 在阿里云CentOS7上搭建ftp服务器
  20. 手机屏幕技术浅述(TFT、SLCD、AMOLED、NOVA、IPS、ASV)

热门文章

  1. 一个不错的网站 各个人工智能任务的sota也就是 排名 state of the arts
  2. MySQL 与 mysql-connection-java 版本不对应导致出现 SQLException: Could not retrieve transation read-onl status
  3. Python - 基础到进阶
  4. php获取html所有内容,php获取html网页内容的多个方法
  5. 上岸天津理工大学初试+复试经验
  6. python nonetype转换str_如何将Nonetype转换为int或字符串?
  7. 一级计算机所占比例,excel表格计算数据所占比例-如何用excel计算各分数段所占百分比?...
  8. layui之laydate日期组件在done中重新渲染
  9. 浏览器F12功能键介绍(前端)
  10. 聊一聊深度学习分布式训练