码迷,mamicode.com
首页 > 其他好文 > 详细

【RQNOJ356】myt的格斗

时间:2015-07-17 22:35:11      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:

题目描述

’恩 ~~这个和这个也是朋友.把他们放在一起......哇!终于完成了’mty费了好大劲,终于找出了一支最为庞大的军队.

fyc很高兴,立马出征与人fight.mty万万没想到fyc竟然把他也叫去了.偶像的命令不可违抗,mty只好跟着出发了.

两军交战采用一对一单挑的形式.mty一上来就遇到了一个对手.此人身高2米12,头大,腿粗.....这个人fight崇尚防守反击,他要等mty出手,漏出破绽才进攻,且只进攻一次.现在mty有p个招数,每招都会给对方造成伤害,也会让对手有可趁之机来攻击自己,造成伤害.

mty进攻一次需1秒,而他的对手出招很快,进攻时间可以忽略不计.

mty想在最短时间内战胜对方,请你帮帮忙.

输入格式

第一行,三个数,n,m,p(对方有n点HP,mty有m点,mty有p个招数); n<=100,m<=100,p<=1000;

接下来p行,每行两个数,x[i],y[i](表示这招会给对方造成x[i]点伤害,对手会给mty造成y[i]点伤害);

只有当对方HP为0,不包括负数,mtyHP为正数时,mty才算赢

输出格式

一个数表示mty要战胜对手所需最少秒数.如果,mty不可能赢,就输出’mty zhen mei yong!’(不包括引号)

 

样例输入
2 1 1
2 0 
样例输出
1

dp[i][j]代表敌人Hp为i,myt Hp为j时所用秒数。。。。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<string.h>
 5 #include<math.h>
 6 #include<map>
 7 #define inf 10000000
 8 using namespace std;
 9 
10 int main()
11 {
12     int n,m,p;
13     int x[1120];
14     int y[1220];
15     scanf("%d%d%d",&n,&m,&p);
16     for(int i=1; i<=p; i++)
17     {
18         scanf("%d%d",&x[i],&y[i]);
19     }
20     int dp[122][122];
21     for(int i=0; i<=n; i++)
22     {
23         for(int j=0; j<=m; j++)
24         {
25             dp[i][j]=inf;
26         }
27     }
28     dp[0][0]=0;
29     for(int i=1; i<=p; i++)
30     {
31         for(int j=x[i]; j<=n; j++)
32         {
33             for(int k=y[i]; k<=m; k++)
34             {
35                 dp[j][k]=min(dp[j-x[i]][k-y[i]]+1,dp[j][k]);
36             }
37         }
38     }
39     int ans=inf;
40     for(int i=1; i<m; i++)
41     {
42         if(dp[n][i]<ans) ans=dp[n][i];
43     }
44     if(ans==inf)
45        printf("mty zhen mei yong!\n");
46     else  printf("%d\n",ans);
47     return 0;
48 }

 

【RQNOJ356】myt的格斗

标签:

原文地址:http://www.cnblogs.com/zxhl/p/4655685.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!