洛谷刷题题解笔记----UVA11292 Dragon of Loowater

简介: 洛谷刷题题解笔记----UVA11292 Dragon of Loowater

题目链接

题目链接

解题思路

每组输入后对龙脖子的直径和骑士的能力值进行从小到大排序,外加一个判断数组判断该骑士是否被雇佣

然后遍历每个龙,看没有雇佣过的骑士是否可以杀死,因为已经从小到大排序,所以最后的结果为最小花费

循环结束判断所有的龙是否被杀死

解题代码

#include <bits/stdc++.h>
using namespace std;
bool complare( int a, int b ) {
  return a<b;
}
int main() {
  while ( true ) {
    int n;
    int m;
    cin >> n >> m;
    if ( n==0&&m==0 ) return 0;
    int d[n];//龙 
    for ( int i=0; i<n; i++ ) {
      cin >> d[i];
    } 
    int q[m];//骑士 
    for ( int i=0; i<m; i++ ) {
      cin >> q[i];
    }
    if ( n>m ) {
      cout << "Loowater is doomed!" << endl;
      break;
    }
    int is[m];
    for ( int i=0; i<m; i++ ) {
      is[i] = 1;
    } 
    //排序 
    sort( d, d+n, complare );
    sort( q, q+m, complare );
//    for ( int i=0; i<m; i++ ) {
//      cout << is[i] << " ";
//    }
    int sum = 0;//花费 
    int cnt = 0;//杀死的龙 
    for ( int i=0; i<n; i++ ) {
      int num = d[i];
      for ( int j=0; j<m; j++ ) {
        if( q[j]>=num && is[j]==1 ) {
          sum += q[j];
          is[j] = 0;
          cnt++;
          break;
        } 
      }
    }
    if ( cnt==n ) { //所有的龙被杀死 
      cout << sum << endl;
    } else {
      cout << "Loowater is doomed!" << endl;
    }
  }
}
相关文章
|
9月前
|
算法
【动态规划专栏】专题三:简单多状态dp--------2.打家劫舍II
【动态规划专栏】专题三:简单多状态dp--------2.打家劫舍II
65 0
|
9月前
|
存储 索引
题目----LeeCode热题100--1 两数之和
题目----LeeCode热题100--1 两数之和
52 1
|
9月前
|
Java
HDU-1286-找新朋友
HDU-1286-找新朋友
45 0
|
Java
hdu 1286 找新朋友
hdu 1286 找新朋友
47 0
ACM刷题之路(二十四)HDU 2844 多重背包转换 Coins
ACM刷题之路(二十四)HDU 2844 多重背包转换 Coins
113 0
|
算法 程序员
力扣——算法入门计划第十天
力扣(LeetCode)是领扣网络旗下专注于程序员技术成长和企业技术人才服务的品牌。源自美国硅谷,力扣为全球程序员提供了专业的IT技术职业化提升平台,有效帮助程序员实现快速进步和长期成长。 此外,力扣(LeetCode)致力于解决程序员技术评估、培训、职业匹配的痛点,逐步引领互联网技术求职和招聘迈向专业化。
力扣——算法入门计划第十天