【第22期】观点:IT 行业加班,到底有没有价值?

洛谷 P2813 母舰

原创 2017年01月04日 00:13:39

题目描述

在小A的星际大战游戏中,一艘强力的母舰往往决定了一场战争的胜负。一艘母舰的攻击力是普通的MA(Mobile Armor)无法比较的。

对于一艘母舰而言,它是由若干个攻击系统和若干个防御系统组成的。两艘母舰对决时,一艘母舰会选择用不同的攻击系统去攻击对面母舰的防御系统。当这个攻击系统的攻击力大于防御系统的防御力时,那个防御系统会被破坏掉。当一艘母舰的防御系统全部被破坏掉之后,所有的攻击都会攻击到敌方母舰本身上去造成伤害。

这样说,一艘母舰对对面的伤害在一定程度上是取决于选择的攻击对象的。

在瞬息万变的战场中,选择一个最优的攻击对象是非常重要的。所以需要写出一个战斗系统出来,判断出你的母舰最多能对对手造成多少伤害并加以实现。

输入输出格式

输入格式:

输入第一行两个整数M和N,表示对方母舰的防御系统数量和你的母舰的攻击系统数量。

接着M行每行一个整数每一个表示对方防御系统的防御力是多少。

接着N行每行一个整数每一个表示己方攻击系统的攻击力是多少。

输出格式:

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

输入输出样例

输入样例#1:
3 5 
1000 
2000 
1200 
2100 
2000 
1200 
1000 
1000
 
输出样例#1:
2000
 

说明

对于80%的数据有 1 <= N , M <= 1000

对于100%的数据有 1 <= N , M <= 100000

对样例的解释:

对方防御系统有3个,防御值为1000(a),2000(b),1200(c),己方攻击系统有5个,攻击值为2100(d),2000(e),1200(f),1000(g),1000(h)。第1轮攻击的最优方案是d攻击b,e攻击c,f攻击a,g和h攻击对方母舰本身,造成2000点伤害。

 

解题思路

         本题可用贪心求解,将敌方防御系统防御值和我方攻击系统攻击值分别从小到大排序,再依次从小到大枚举敌方防御系统,每枚举一个防御系统,就在我方还剩着的攻击系统中找到最小的且可以爆破这个防御系统的攻击系统,攻击;完爆敌方防御系统后,将还剩下的攻击值累加即得到答案。

         为何排序和枚举时是从小到大呢?因为大的要留着攻击母舰啊!(从大到小50TAT


#include<cstdio>
#include<algorithm>
using namespace std;
int cmp(const int & a,const int & b)//其实完全没必要cmp,sort默认升序
{
    return a<b;
}
int main()
{
    int fang[100010]={0},gong[100000];
    int m,n;
    int f=0,g=-1;
    int ans=0;
    scanf("%d%d",&n,&m);
    if(n>=m)
    {
        printf("0");
        return 0;
    }
    for(int i=0;i<n;i++)
        scanf("%d",&fang[i]);
    for(int i=0;i<m;i++)
        scanf("%d",&gong[i]);
    sort(fang,fang+n,cmp);
    sort(gong,gong+m,cmp);
    for(int i=0;i<n;i++)
    {
        for(int j=g+1;j<m;j++)
        {
            g=j;
            if(gong[j]>fang[i])
            {
                //g++;
                gong[j]=0;
                fang[i]=0;
                break;
            }
        }
    }
    g=0;
    while(g<m) ans+=gong[g++];
    printf("%d",ans);
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载 举报

相关文章推荐

洛谷 P1807 最长路_NOI导刊2010提高(07)

题目描述设G为有n个顶点的有向无环图,G中各顶点的编号为1到n,且当为G中的一条边时有i < j。设w(i,j)为边的长度,请设计算法,计算图G中间的最长路径。输入输出格式输入格式: 输入文件lon...

hit2813 Garden visiting

#include&lt;iostream&gt; #include&lt;vector&gt; #include&lt;algorithm&gt; #include&lt;cstdio&gt; #include&lt;queue&gt; #include&lt;stack&gt; #include&lt;string&gt; #include&lt;map&gt; #include&lt;set&gt; #include&lt;cmath&gt; #include&lt;cassert&gt; #include&lt;cstrin

洛谷 P3128 [USACO15DEC]最大流Max Flow

题目描述Farmer John has installed a new system of N-1N−1 pipes to transport milk between the NN stalls i...

Internet 交换交谈:服务器协议(RFC2813——Internet Relay Chat: Server Protocol)

Internet 交换交谈:服务器协议(RFC2813——Internet Relay Chat: Server Protocol)备忘录的状态:这个备忘录提供了internet群体的信息。它并没有详细说明每一种internet的标准。这个备忘录的适用范围是无拘束的。版权通告:copyright(c)internet Society (2000). All Rights Reserved.摘要:以客户端——服务器为模板,irc协议允许服务器连接到另外的有效形成的网络。本文档定义了服务器用于互相交流的协议

|洛谷|贪心|P2813 母舰

https://www.luogu.org/problem/show?pid=2813 90分程序,TLE第一个点 把两个数组从小到大排序,然后尽量用我方较为小的系统去打敌人较大的系统 #inc...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)