中级光能
·-·
张司桥在2024-06-15 21:08:22追加了内容
求解转判定的题真难
10054和10055怎么写?
10054:
题目描述 Description
李老板需要总长为M米的木材,他安排光头强去砍树。树林里有N棵树,为了保护环境,不能将一个树完全砍掉,会留出一部分, 因为这样树还可以继续生长。光头强将他的砍树装置的锯片高度设置为H米,这样可以锯掉所有的树比H高的部分。求在得到M米木材的前提下,H的最大值。
比如,一共有4棵树,高度分别为20、15、 8、17. 需要6米的木材,若将锯片的高度设置为15米,这样可以得到的木材为5+0+0+2=7米, 若锯片的高度提高1米,设置为16米, 只能得到木材的长度为4+1=5。为了得到6米的木材,锯片的高度最大只能设置为15米。
输入描述 Input Description
第一行两个整数N和M。
第二行,N个整数,表示每棵树的高度。
输出描述 Output Description
一个整数,意义如题所述。
样例输入 Sample Input
4 6 20 15 8 17
样例输出 Sample Output
15
10055:
题目描述 Description
五金工厂有一些钢筋,现在想把这些钢筋切割成一些长度相同的小段钢筋(钢筋有可能有剩余),需要得到的小段的数目是给定的。当然,我们希望得到的小段钢筋越长越好,你的任务是计算能够得到的小段钢筋的最大长度。钢筋长度的单位是cm。钢筋的长度都是正整数,我们要求切割得到的小段钢筋的长度也是正整数。
例如有两根钢筋长度分别为11和21,要求切割成到等长的6段,很明显能切割出来的小段钢筋长度最长为5.
输入描述 Input Description
第一行是两个正整数N和K(1 ≤ N ≤ 100,1 ≤ K ≤ 100),N是钢筋的数目,K是需要得到的小段的数目。
接下来的N行,每行有一个1到100之间的正整数,表示一根钢筋的长度。
输出描述 Output Description
能够切割得到的小段的最大长度。如果连1cm长的小段都切不出来,输出”0”。
样例输入 Sample Input
6 43 62 10 46 28 12 81
样例输出 Sample Output
5
都不会,怎么办
求大佬解惑,给思路也行
张司桥在2024-06-15 21:13:38追加了内容
10054已自行解决,
请问10055怎么写?
给个思路也可以
张司桥在2024-06-15 21:18:19追加了内容
10055错误代码,只有10分,哪错了:
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
int* a = new int[105];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a, a + n);
int maxx = 0;
for (int i = 0; i < n; i++) {
maxx += a[i];
}
maxx /= k;
if (maxx < 1) {
cout << "0";
} else {
cout << maxx;
}
return 0;
}
张司桥在2024-06-15 21:45:23追加了内容
已自行解决
送豆