• HDU 3008 DP


    基础DP题

    打BOSS  BOSS和自己都有100点血。玩家先手

    每回合能够选择施放技能攻击(耗蓝,共n种)或者普通攻击(不耗蓝,伤害为1),BOSS每回合会攻击自己q点血,每回合自己会恢复t点法力

    方程:  dp[i][j-a[k]+t]=Max(dp[i][j-a[k]+t],dp[i-1][j]+b[k]);  


    #include "stdio.h"
    #include "string.h"
    
    int inf=0x3f3f3f3f;
    
    int Max(int a,int b)
    {
        if (a<b) return b;else return a;
    }
    int main()
    {
        int i,n,m,t,q,j,k,ans;
        int dp[101][101],a[101],b[101];
        while (scanf("%d%d%d",&n,&t,&q)!=EOF)
        {
            if (n+t+q==0) break;
    
            for (i=1;i<=n;i++)
                scanf("%d%d",&a[i],&b[i]);
            a[0]=0; b[0]=1;
            m=100/q;
            if (100%q!=0) m++;
    
            memset(dp,-1,sizeof(dp));
            ans=-1;
            dp[0][100]=0;
            for (i=1;i<=m;i++)
            {
                for (j=0;j<=100;j++)
                    if (dp[i-1][j]!=-1)
                    {
                        for (k=0;k<=n;k++)
                        if (a[k]<=j)
                        {
                            dp[i][j-a[k]+t]=Max(dp[i][j-a[k]+t],dp[i-1][j]+b[k]);
                            if (dp[i][j-a[k]+t]>=100) {ans=i; break;}
                        }
                        if (ans!=-1) break;
                    }
                if (ans!=-1) break;
            }
            if (ans==-1) printf("My god
    ");
            else printf("%d
    ",ans);
        }
        return 0;
    }
    



  • 相关阅读:
    MYsql增删改查
    粘包问题
    模拟ssh远程执行命令
    Socket抽象层
    基于TCP协议的socket套接字编程
    TCP协议的三次握手和四次挥手
    大话OSI七层协议
    网络架构及其演变过程
    互联网和互联网的组成
    Windows安装MySQL
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6914978.html
Copyright © 2020-2023  润新知