HDOJ 6082 度度熊与邪恶大魔王

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6082

HDOJ 6082 度度熊与邪恶大魔王_第1张图片

HDOJ 6082 度度熊与邪恶大魔王_第2张图片

百度之星2017资格赛的第三题。

自从从集训队退出之后,就再也没有做过题目了,当天晚上突然看到短信才想起还参加了这个比赛,当时正在看守望世界杯(堕落的暑假),有点心急,尤其是当时点开第一题看了一下,满脑子都是这TMD能做,未免有点心烦,心想反正做一题就可以了,于是马上打开了过题人数最多的一题,也就是这题。

这题思路和题意都很简单,每个技能都有晶石消耗和攻击力,每个怪都有HP和防御力,怎么才能在晶石消耗最小的情况下打掉所有的怪。思路也是很容易的DP解决,区别就是因为每个怪的防御力不同所以要做n次DP。

#include 
#include   
#include 
#include   
using namespace std;  
typedef long long LL;
const LL INF = 1e18;  
const int maxn = 2005;  
const int maxm = 1e5 + 100;  
inline LL input() 
{  
    LL res = 0, ch, flag = 0;  
    if((ch=getchar())=='-') {
    	flag = 1;
	}  
    else if(ch>='0' && ch<='9') {
    	res=ch-'0';
	} 
    while((ch=getchar())>='0'&&ch<='9') {
    	res = res*10+ch-'0';
	}
    return flag? -res : res;  
}  
LL dp[maxn][15];
LL a[maxm],b[maxm],k[maxn],p[maxn];  
int main()  
{
    int n,m;  
    while(scanf("%d%d", &n, &m) !=EOF)  
    {  
        for(int i=0; i=0; j--) 
            {  
                dp[j][i] = min(dp[j][i], dp[j+1][i]);  
            }  
        }  
        LL ans=0;  
        for(int i=0; i= INF) {
        	printf("-1\n");  
		}
        else cout << ans << endl;  
    }  
} 


你可能感兴趣的:(ACM_动态规划(DP问题))