文章

24

粉丝

27

获赞

120

访问

6.4k

头像
表面积 题解:只需要看我这篇就够了
P1882 华东师范大学2020年机试
发布于2025年3月14日 20:40
阅读数 292

#include<bits/stdc++.h>
using namespace std;

struct node {
    long long r, h, s;
} a[1005];  //结构体,储存半径,高度,侧面积

int main() {
    int n, k;
    cin >> n >> k;
    for (int i = 0; i < n; i++) {
        cin >> a[i].r >> a[i].h;
        a[i].s = 2 * a[i].r * a[i].h;
    }
    sort(a, a + n, [](node x, node y) {
        return x.s > y.s;
    });  //按侧面积降序排列,这样从前往后遍历优先选侧面积大的
    long long result = 0;
    for (int i = 0; i < n; i++) {
        long long sum = a[i].s + a[i].r * a[i].r;  //侧面积大不代表侧面积加顶面最大,因此每个都要作为最下面试一试
        //或者我们举个极限例子,侧面积超级大,半径很小,顶面最小的,上面根本放不了其他大圆柱(题目要求最底下摞的圆柱半径要最大)
        int count =...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发