zoukankan      html  css  js  c++  java
  • 三国风云

    先吐槽下题面。。。。。。

    感觉题面完全没说明白这一堆变量是干嘛的,最后还是照着题解代码才看懂题/kk

    (f[i]) 表示状态为 (i) 时吕布剩余的最大血量。

    梳理一下题目要素:

    • 两个人会一直互相攻击直到其中一个死掉,设 a1=max(1,lvatmp-emd[j]),a2=max(1,ema[j]-lvdtmp) ,则吕布剩余的血量 (hp)f[i]-(((emhp[j]+a1-1)/a1)-1)*a2

    • 每打死一个人,吕布就会得到其经验值。经验值每增加 (100) 就升一级。

    • 每升一级,吕布的 (ATI , DEF , HP) 就会分别加上 (In\_ATI,In\_DEF,In\_HP) 。(题面里好像没说?

    然后就和上一题思路差不多了吧...

    (看过 std 以后再自己写就莫名其妙地越写越像/kk)

    #include<bits/stdc++.h>
    using namespace std;
    const int N=(1<<20)+1;
    int f[N],expsum[N],n,m,lva,lvd,lvhp,ina,ind,inhp;//变量含义见题目 
    int ema[30],emd[30],emhp[30],emexp[30];char emname[30];//对手的基本信息 
    int main()
    {
    	while(scanf("%d%d%d%d%d%d",&lva,&lvd,&lvhp,&ina,&ind,&inhp)!=EOF)
    	{
    		scanf("%d",&n);
    		m=1<<n;
    		for(int i=0;i<=n-1;i++)//因为状态是从0开始算的所以数也要从0开始存 
    		{
    			scanf("%s%d%d%d%d",emname,&ema[i],&emd[i],&emhp[i],&emexp[i]);
    		}
    		memset(f,-1,(m<<2)+1);
    		f[0]=lvhp;//记得赋初值 
    		expsum[0]=0;
    		for(int i=0;i<=m-1;i++)
    		{
    			if(f[i]==-1) continue;
    			int t,lev=expsum[i]/100,hp;//lev表示当前等级 
    			int lvatmp=lva+lev*ina,lvdtmp=lvd+lev*ind;//计算当前的lva和lvd 
    			for(int j=0;j<n;j++)
    			{
    				int t=1<<j;
    				if(i&t) continue;//如果已经杀过j了就返回 
    				expsum[i|t]=expsum[i]+emexp[j];
    				int a1=max(1,lvatmp-emd[j]),a2=max(1,ema[j]-lvdtmp);
    				hp=f[i]-(((emhp[j]+a1-1)/a1)-1)*a2;//计算吕布剩余血量 
    				if(hp<=0) continue;//吕布死了 
    				if(expsum[i|t]/100>expsum[i]/100) hp+=inhp;//升级 
    				f[i|t]=max(f[i|t],hp);//更新答案 
    			}
    		}
    		if(f[m-1]>=0) printf("%d
    ",f[m-1]);//如果吕布存活就输出答案 
    		else printf("Poor LvBu,his period was gone.
    ");
    	}
    	return 0;
    }//终于写完了QAQ 
    
  • 相关阅读:
    在vue项目中使用element-ui的Upload上传组件
    express使用ejs模板引擎渲染html文件
    nodejs服务端实现post请求
    anroid学习笔记(1)
    水平遍历和嵌套递归
    写代码的风格
    简易版本vue的实现和注解
    JavaScript下的new操作符做了什么?
    node下的跨域传递cookie
    用node研究axios前后端交互状态码规则
  • 原文地址:https://www.cnblogs.com/ying-xue/p/san-guo-feng-yun.html
Copyright © 2011-2022 走看看