日暮寻路题解-创新互联

题目

描述

创新互联是专业的丹东网站建设公司,丹东接单;提供网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行丹东网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

“先生,您是什么人,要去哪里?”
“天已经快黑了,您要去哪里?”

玛恩纳是明日方舟里的一位强大的干员。

玛恩纳有两种状态:

  1. 第一种为暖机状态,期间玛恩纳不能开技能,不能攻击。暖机时间为不包括上一次技能结束时刻的F个时刻。即若玛恩纳在第ii时刻结束技能,那么玛恩纳在第[i + 1,i+ F][i+1,i+F]内的时刻都不能开技能。
  2. 第二种为开启技能状态。包括技能开启时刻的接下来K个时刻,玛恩纳都会对攻击范围内所有敌人造成 1 点伤害。例如从第4时刻开启技能,K = 7,那玛恩纳会在第4、5、6、7、8、9、10时刻攻击。

注意事项

  1. 战斗开始时,玛恩纳可以在任意时刻开启技能。技能结束后,玛恩纳会进入暖机状态,持续F个时刻。暖机时间结束后,可以继续选择在接下来的某一时刻开启技能。
  2. 给出 nn个敌人的在玛恩纳攻击范围的起始时刻和结束时刻Li​ ,Ri​ ,特别的所有敌方单位的生命值 H=R i​ −L i​ +1。

开始时刻为第 11 秒,结束时刻为第 TT 秒,问如何规划技能开启时间可以使玛恩纳最多能杀死多少敌方单位。

在这里插入图片描述

输入样例 1
5 20 7 3
4 6
10 12
11 14
13 17
4 10
输出样例 1
3

题解

这题一个重点就是以时刻为单位来看比较好理解,从题意可知是从第1秒开始的。
在这里插入图片描述
然后遍历每个敌人,满足上图条件的val[i]的价值加1,利用差分进行优化。
在这里插入图片描述
再利用前缀和把val数组求出来
在这里插入图片描述
在这里插入图片描述

代码展示(C++)
#includeusing namespace std;
int main()
{int n,t,k,f;
    cin>>n>>t>>k>>f;
    int chafen[t+1];
    memset(chafen,0,sizeof(chafen));
    for(int i=1;i<=n;i++)
    {int l,r,xue;
        cin>>l>>r;
        xue=r-l+1;
        if(r-l+1>k)continue;
        int h=max(1,r-k+1);
        chafen[h]++;
        chafen[l+1]--;
    }
    int val[t+1];
    memset(val,0,sizeof(val));
    for(int i=1;ival[i]=val[i-1]+chafen[i];
    }
    int res[t+1];
    memset(res,0,sizeof(res));
    for(int i=1;iint y=max(0,i-k-f);
        res[i]=max(res[i-1],res[y]+val[i]);
    }
    cout<

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前题目:日暮寻路题解-创新互联
URL地址:http://pwwzsj.com/article/ccohhd.html