zoukankan      html  css  js  c++  java
  • 【51nod 1191】消灭兔子

    Description

    有N只兔子,每只有一个血量B[i],需要用箭杀死免子。有M种不同类型的箭可以选择,每种箭对兔子的伤害值分别为D[i],价格为P[i](1 <= i <= M)。假设每种箭只能使用一次,每只免子也只能被射一次,计算要消灭地图上的所有兔子最少需要多少Q币。如不能杀死所有兔子,请输出No Solution。
    特别说明:1、当箭的伤害值大于等于兔子的血量时,能将兔子杀死;2、血量B[i],箭的伤害值D[i],箭的价格P[i],均小于等于100000。

    Input

    第1行:两个整数N,M,中间用空格分隔(1 <= N, M <= 50000),分别表示兔子的个数和箭的种类。

    第2 - N + 1行:每行1个正整数(共N行),表示兔子的血量B[i](1 <= B[i] <= 100000)。

    第N + 2 - N + M + 1行:每行2个正整数(共M行),中间用空格分隔,表示箭所能造成的伤害值D[i],和需要花费的Q币P[i](1 <= D[i], P[i] <= 100000)。

    Output

    输出最少需要多少Q币才能消灭所有的兔子。如果不能杀死所有兔子,请输出"No Solution"。

    Input示例

    3 3
    1
    2
    3
    2 1
    3 2
    4 3

    Output示例

    6

     1 #include<cstdio>
     2 #include<algorithm>
     3 #include<cstring>
     4 #include<queue>
     5 using namespace std;
     6 int n,m,ans,b[50050];
     7 struct node
     8 {
     9     int d,p;
    10     bool operator <(const node& a)const{return p>a.p;}
    11 };
    12 struct kick{int d,p;}a[50050];
    13 priority_queue<node>q;
    14 int read()
    15 {
    16     int x=0,f=1;char c=getchar();
    17     while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
    18     while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    19     return x*f;
    20 }
    21 bool cmp(kick a,kick b){return a.d<b.d;}
    22 int main()
    23 {
    24     n=read();m=read();
    25     int tail=m;
    26     for(int i=1;i<=n;i++)b[i]=read();
    27     sort(b+1,b+n+1);
    28     for(int i=1;i<=m;i++)a[i].d=read(),a[i].p=read();
    29     sort(a+1,a+m+1,cmp);
    30     for(int i=n;i>=1;i--)
    31     {
    32         while(tail&&a[tail].d>=b[i]){q.push((node){a[tail].d,a[tail].p});tail--;}
    33         if(q.empty()){printf("No Solution");return 0;}
    34         node t=q.top();ans+=t.p;q.pop();
    35     }
    36     printf("%d",ans);
    37     return 0;
    38 }
    View Code
  • 相关阅读:
    攻防世界新手练习题_MOBILE(移动)
    攻防世界新手练习题_CRYPTO(加密)
    攻防世界新手练习题_REVERSE(逆向)
    攻防世界新手练习题_PWN(漏洞利用)
    攻防世界新手练习题_WEB(渗透)
    攻防世界新手练习题_MISC(杂项)
    数据传输流程图
    leetcode hot 100- 62. 不同路径
    leetcode hot 100
    leetcode hot 100
  • 原文地址:https://www.cnblogs.com/zsnuo/p/7072382.html
Copyright © 2011-2022 走看看