kAri OJ605陈队的树
Posted 水郁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kAri OJ605陈队的树相关的知识,希望对你有一定的参考价值。
时间限制 1000 ms 内存限制 65536 KB
题目描述
陈队有N棵树,有一天他突然想修剪一下这N棵树,他有M个修剪器,对于每个修剪器给出一个高度h,表示这个修剪器可以把某一棵高度超过h的树修剪为h高度。但是有一个限制条件,每棵树最多只能被修改一次,每个修剪器最多也只能使用一次。现在问题来了,陈队想问下修剪完之后N棵树的高度之和最小为多少。
输入格式
第一行为数据组数T(1≤T≤50)。
每组数据第一行为N(1≤N≤1000),M(1≤M≤1000)。
下面一行为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\n",a[0]); } return 0; }
以上是关于kAri OJ605陈队的树的主要内容,如果未能解决你的问题,请参考以下文章