zoukankan      html  css  js  c++  java
  • HDU 2159

    FATE

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 3985    Accepted Submission(s): 1763


    Problem Description
    最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。xhd还说了他最多只杀s只怪。请问他能升掉这最后一级吗?
     
    Input
    输入数据有多组,对于每组数据第一行输入n,m,k,s(0 < n,m,k,s < 100)四个正整数。分别表示还需的经验值,保留的忍耐度,怪的种数和最多的杀怪数。接下来输入k行数据。每行数据输入两个正整数a,b(0 < a,b < 20);分别表示杀掉一只这种怪xhd会得到的经验值和会减掉的忍耐度。(每种怪都有无数个)
     
    Output
    输出升完这级还能保留的最大忍耐度,如果无法升完这级输出-1。
     
    Sample Input
    10 10 1 10 1 1 10 10 1 9 1 1 9 10 2 10 1 1 2 2
     
    Sample Output
    0 -1 1
     1 //背包问题中我坚决不用结构体 
     2 #include <iostream>
     3 #include <cstring>
     4 using namespace std;
     5 
     6 int f[105][105];
     7 int a[105],b[105];
     8 
     9 int main()
    10 {
    11     int i,j,t;
    12     int m,n,k,s;
    13     while(cin>>n>>m>>k>>s)
    14     {
    15         memset(f,0,sizeof(f));
    16         memset(a,0,sizeof(a));
    17         memset(b,0,sizeof(b));
    18         for(i=1; i<=k; i++)
    19             cin>>a[i]>>b[i];
    20         int ans = 0,tag = 0;
    21         for(i=1;i<=m;i++)
    22         {
    23             for(j=1;j<=s;j++)
    24                 for(t=1;t<=k;t++)
    25                 if(i>=b[t])
    26                 {
    27                     int temp = f[i-b[t]][j-1] + a[t];
    28                     if(f[i][j] < temp)
    29                         f[i][j] = temp;
    30                 }
    31             if(f[i][s]>=n)
    32             {
    33                 ans = f[i][s];
    34                 tag = i;
    35                 break;
    36             }
    37         }
    38         if(ans>=n)//ans必须附一个很小小的初值,否则即便不可升级成功 ,因ans的随机值很大也不会输出-1 
    39             cout<<m - tag<<endl;
    40         else
    41             cout<<-1<<endl;
    42     }
    43     return 0;
    44 }
    45             
  • 相关阅读:
    现代软件工程 第一章 概论 第3题——韩婧
    现代软件工程 第一章 概论 第2题——韩婧
    小组成员邓琨、白文俊、张星星、韩婧
    UVa 10892 LCM的个数 (GCD和LCM 质因数分解)
    UVa 10780 幂和阶乘 求n!中某个因子的个数
    UVa 11859 除法游戏(Nim游戏,质因子)
    Codeforces 703C Chris and Road 二分、思考
    Codeforces 703D Mishka and Interesting sum 树状数组
    hdu 5795 A Simple Nim SG函数(多校)
    hdu 5793 A Boring Question 推公式(多校)
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2652867.html
Copyright © 2011-2022 走看看