zoukankan      html  css  js  c++  java
  • 【kAri OJ605】陈队的树

    时间限制 1000 ms 内存限制 65536 KB

    题目描述

    陈队有N棵树,有一天他突然想修剪一下这N棵树,他有M个修剪器,对于每个修剪器给出一个高度h,表示这个修剪器可以把某一棵高度超过h的树修剪为h高度。但是有一个限制条件,每棵树最多只能被修改一次,每个修剪器最多也只能使用一次。现在问题来了,陈队想问下修剪完之后N棵树的高度之和最小为多少。

    输入格式

    第一行为数据组数T(1T50)

    每组数据第一行为N(1N1000),M(1M1000)

    下面一行为N个数,每个数大小在1到1000之间。

    下面一行为M个数,每个数大小在1到1000之间。

    输出格式

    输出N棵树被修剪完之后的高度和的最小值。

    输入样例

    1
    2 2
    4 7
    3 4
    

    输出样例

    7

    分析

    相当于把比较大的数字换成比较小的,最后就是所有数字里最小的n个数之和。

    代码

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int t,n,m,a[2005];
    int main(){
        scanf("%d",&t);
        while(t--){
            scanf("%d%d",&n,&m);
            for(int i=0;i<n;i++)
                scanf("%d",&a[i]);
            for(int i=n;i<n+m;i++)
                scanf("%d",&a[i]);
            sort(a,a+n+m);
            for(int i=1;i<n;i++)
                a[0]+=a[i];
            printf("%d
    ",a[0]);
        }
        return 0;
    }

      

  • 相关阅读:
    单链表
    队列

    面向对象的数组与查找算法
    线性结构
    数据结构与算法概述
    webstorm 格式化代码快捷键
    Web规范小记录1:Web文件规范
    豆瓣 API报错 ( "code":104 问题 )
    舔狗日记二之心灵日记(H5版本)
  • 原文地址:https://www.cnblogs.com/flipped/p/5257577.html
Copyright © 2011-2022 走看看