状态DP。

 /* 2809 */
#include <iostream>
#include <queue>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std; #define MAXN 20 typedef struct {
int a, d, h, e;
} hero_t; hero_t hero[MAXN];
int dp[<<MAXN];
int exp[<<MAXN];
int mask[MAXN];
bool visit[<<MAXN];
char name[];
queue<int> Q; int main() {
int n, m, size;
int la, ld, lh;
int ia, id, ih;
int ra, rb, ha, hb;
int i, j, k, tmp;
int s, ss;
int slev, alev, dlev, hlev, sslev; #ifndef ONLINE_JUDGE
freopen("data.in", "r", stdin);
#endif mask[] = ;
for (i=; i<MAXN; ++i)
mask[i] = (mask[i-]<<); while (scanf("%d%d%d%d%d%d", &la,&ld,&lh, &ia,&id,&ih) != EOF) {
scanf("%d", &n);
for (i=; i<n; ++i)
scanf("%s %d %d %d %d", name, &hero[i].a,&hero[i].d,&hero[i].h,&hero[i].e);
m = <<n;
memset(dp, , sizeof(int)*m);
memset(visit, false, sizeof(bool)*m);
dp[] = lh;
exp[] = ;
Q.push();
visit[] = true;
while (!Q.empty()) {
s = Q.front();
Q.pop();
visit[s] = false;
for (i=; i<n; ++i) {
if (s & mask[i])
continue;
ss = s | mask[i];
// calculate s-state level
slev = exp[s]/;
alev = la+slev*ia;
dlev = ld+slev*id;
// calculate hurt and round
ha = max(, alev-hero[i].d);
hb = max(, hero[i].a-dlev);
ra = (hero[i].h+ha-)/ha;
rb = (dp[s]+hb-)/hb;
if (ra > rb)
continue; // LvBu Lose
exp[ss] = exp[s] + hero[i].e;
sslev = exp[ss]/;
// calculate new hp
tmp = dp[s] - (ra-)*hb + (sslev-slev)*ih;
dp[ss] = max(dp[ss], tmp);
if (visit[ss] == false) {
visit[ss] = true;
Q.push(ss);
}
}
}
if (dp[m-])
printf("%d\n", dp[m-]);
else
printf("Poor LvBu,his period was gone.\n");
} return ;
}

【HDOJ】2809 God of War的更多相关文章

  1. 【HDOJ】3345 War Chess

    简单BFS.注意最后一组数据,每个初始点不考虑周围是否有敌人. /* 3345 */ #include <iostream> #include <cstdio> #includ ...

  2. 【HDOJ】4729 An Easy Problem for Elfness

    其实是求树上的路径间的数据第K大的题目.果断主席树 + LCA.初始流量是这条路径上的最小值.若a<=b,显然直接为s->t建立pipe可以使流量最优:否则,对[0, 10**4]二分得到 ...

  3. 【HDOJ】【2829】Lawrence

    DP/四边形不等式 做过POJ 1739 邮局那道题后就很容易写出动规方程: dp[i][j]=min{dp[i-1][k]+w[k+1][j]}(表示前 j 个点分成 i 块的最小代价) $w(l, ...

  4. 【HDOJ】【3506】Monkey Party

    DP/四边形不等式 裸题环形石子合并…… 拆环为链即可 //HDOJ 3506 #include<cmath> #include<vector> #include<cst ...

  5. 【HDOJ】【3516】Tree Construction

    DP/四边形不等式 这题跟石子合并有点像…… dp[i][j]为将第 i 个点开始的 j 个点合并的最小代价. 易知有 dp[i][j]=min{dp[i][j] , dp[i][k-i+1]+dp[ ...

  6. 【HDOJ】【3480】Division

    DP/四边形不等式 要求将一个可重集S分成M个子集,求子集的极差的平方和最小是多少…… 首先我们先将这N个数排序,容易想到每个自己都对应着这个有序数组中的一段……而不会是互相穿插着= =因为交换一下明 ...

  7. 【HDOJ】【3415】Max Sum of Max-K-sub-sequence

    DP/单调队列优化 呃……环形链求最大k子段和. 首先拆环为链求前缀和…… 然后单调队列吧<_<,裸题没啥好说的…… WA:为毛手写队列就会挂,必须用STL的deque?(写挂自己弱……s ...

  8. 【HDOJ】【3530】Subsequence

    DP/单调队列优化 题解:http://www.cnblogs.com/yymore/archive/2011/06/22/2087553.html 引用: 首先我们要明确几件事情 1.假设我们现在知 ...

  9. 【HDOJ】【3068】最长回文

    Manacher算法 Manacher模板题…… //HDOJ 3068 #include<cstdio> #include<cstring> #include<cstd ...

随机推荐

  1. JavaScript和prototype

    Protoype这个词在javascript中可以有两种理解: 第一种是作为javascript中的一个属性,其一般出现的形式为:类名.prototype. prototype 属性让你有能力向对象添 ...

  2. Android三种实现自定义ProgressBar的方式介绍

    一.通过动画实现 定义res/anim/loading.xml如下: View Row Code<?xml version="1.0" encoding="UTF- ...

  3. CreateFont具体解释

    CFont * f;    f = new CFont;    f->CreateFont(10, // nHeight         0, // nWidth         0, // n ...

  4. MYSQL 体系结构图 log commit

  5. 初步学习vue.js

    vue是法语中视图的意思,Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API. 响应的数据绑定 Vue.js 的核心是一个响应的数据绑定系统,它让数据与 DOM 保持同 ...

  6. 第五章:最后一步准备,1.8的Json模型、状态描述机制详解

    <基于1.8 Forge的Minecraft mod制作经验分享> 1.8的所有纹理材质都需要一个Json来对其描述,这一块感觉是各大神的教程里面涉及最少最浅的,我就斗胆在这分享下我研究了 ...

  7. 关于Linux下面msyql安装后并未设置初始密码,但是登录报错“Access denied for user 'root'@'localhost' (using password: NO)”的解决方案

    如上图:首先我安装mysql的时候并没有设置密码,但是就是登不进去,百度了一下,解决方案如下: 解决方案地址:http://zhidao.baidu.com/link?url=7QvuOKtfRdMT ...

  8. My.Ioc 代码示例——避免循环依赖

    本文的目的在于通过一些示例,向大家说明 My.Ioc 支持哪些类型的依赖关系.也就是说,如何设计对象不会导致循环依赖. 在 Ioc 世界中,循环依赖是一个顽敌.这不仅因为它会导致 Ioc 容器抛出异常 ...

  9. EXPDP IMPDP 知识总结

    Data Pump Export ATTACH Default: job currently in the user's schema, if there is only one Purpose(目的 ...

  10. iOS9 中的一些适配问题

    1.URL scheme白名单:在info文件中加入LSApplicationQueriesSchemes(Array),添加需要的scheme,如微信:weixin.wechat 支付宝:alipa ...