当前位置:首页 > 题解目录 > 正文内容

【题解】母舰

亿万年的星光10个月前 (04-11)题解目录614

【题目描述】

在小A的星际大战游戏中,一艘强力的母舰往往决定了一场战争的胜负。一艘母舰的攻击力是普通的MA(Mobile  Armor)无法比较的。 对于一艘母舰而言,它是由若干个攻击系统和若干个防御系统组成的。两艘母舰对决时,一艘母舰会选择用不同的攻击系统去攻击对面母舰的防御系统。当这个攻击系统的攻击力大于防御系统的防御力时,那个防御系统会被破坏掉。当一艘母舰的防御系统全部被破坏掉之后,所有的攻击都会攻击到敌方母舰本身上去造成伤害。 这样说,一艘母舰对对面的伤害在一定程度上是取决于选择的攻击对象的。 在瞬息万变的战场中,选择一个最优的攻击对象是非常重要的。所以需要写出一个战斗系统出来,判断出你的母舰最多能对对手造成多少伤害并加以实现。

【输入描述】

输入第一行两个整数M和N,表示对方母舰的防御系统数量和你的母舰的攻击系统数量。 接着M行每行一个整数每一个表示对方防御系统的防御力是多少。 接着N行每行一个整数每一个表示己方攻击系统的攻击力是多少。

【输出描述】

输出仅有一行,表示可以造成的最大伤害。

【样例输入】

3 5
1000
2000
1200
2100
2000
1200
1000
1000

【样例输出】

2000




【参考答案】

#include<bits/stdc++.h>
using namespace std;
int m,n,a[100005],b[100005],kkk;
int main(){
    cin>>m>>n;
    for(int i=1;i<=m;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){
        cin>>b[i];
    }
    sort(a+1,a+m+1);
    sort(b+1,b+n+1);
    int j=1;
    for(int i=1;i<=n;i++){
        if(a[j]==0)j++;
        if(a[j]<b[i]&&a[j]!=0){
            b[i]=0;
            j++;
        }
    }
    if(j<=m){
        cout<<0;
        return 0;
    }
    for(int i=1;i<=n;i++){
        kkk+=b[i];
    }
    cout<<kkk<<endl;
    return 0;
}



  1. 贪心匹配

    • 如果当前防御系统 a[j] 已经被破坏(即 a[j] == 0),则移动到下一个防御系统。

    • 如果当前攻击系统 b[i] 可以破坏防御系统 a[j](即 b[i] > a[j]),则将该攻击系统标记为已使用(b[i] = 0),并移动到下一个防御系统。

    • 初始化指针 j 为1,表示当前需要破坏的防御系统。

    • 遍历所有攻击系统 b[i]

  2. 检查防御系统是否全部被破坏:如果 j <= m,说明还有防御系统未被破坏,输出0。

  3. 计算剩余攻击力:将所有未被使用的攻击系统(即 b[i] != 0)的攻击力累加,输出结果。


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    2021年市北区程序设计竞赛试题(初中组)

    2021年市北区程序设计竞赛试题(初中组)

    1.开关灯(light.cpp)【题目描述】某实验室共有n盏灯,灯的编号为1~n,每盏灯的初始状态是关闭的。现在有m位学生,每位学生可以前去抽取一张带数字的卡片,其数字为Ai,然后依次将自己手中的数字...

    【题解】合并有序表

    【题目描述】k路归并问题把k个有序表合并成一个有序表。元素共有n个。【输入描述】读入K。接下来K行。每i行第一个数为Ci表示接下来这一行有Ci个数,表示第i个序列。总数小于100000。【输出描述】输...

    【题解】队列问题

    【题解】队列问题

    4.队列问题(lru.cpp)【题目描述】有一个大小为n的页面缓存队列,初始为空,当计算机访问页面时,若缓存队列没有该页面,则加入到缓存队列中,若队列已满,则将删除访问时间最远的页面。有Q次询问,每次...

    【题解】踩方格

    【题目描述】有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:a、每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;b、走过的格子立即塌陷无法再走第二次;c、只能向北、东、西三个方向走;请问...

    【题解】高精度除法

    【题目描述】高精除以高精,求它们的商和余数。【输入描述】输入两个低于300位的正整数。【输出描述】输出商和余数。【样例输入】12313123184575776878979876423245678643...

    【题解】东哥的杯子

    【题解】东哥的杯子

    【题目描述】话说在一场牛客练习赛中,东哥力压群雄,挣得第一,牛客为了奖励东哥的发挥,送他一个马克杯。奖励的马克杯是一个标准的圆台形状,它的上底为R1,下底为R2,高为H, 东哥向杯子里倒V毫升的水,你...