问题标题: 不会

0
0
已解决
张司桥
张司桥
中级光能
中级光能

·-·

张司桥在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追加了内容

已自行解决

送豆


0
我要回答