Jack666Yue 2023-01-09 08:57 采纳率: 100%
浏览 58
已结题

不知道如何写的一道C++题

谁能帮我看一下这一题?我不知道怎样写。
原题:

img


代码:

#include <bits/stdc++.h>
using namespace std;
struct node {
    int r, h;
} b[200010];
int T,;
bool s[200010];
inline int read() {
    char c = getchar();
    int x = 0, s = 1;
    while (c < '0' || c > '9') {
        if (c == '-') s = -1;
        c = getchar();
    }
    while (c >= '0' && c <= '9') {
        x = x * 10 + c - '0';
        c = getchar();
    }
    return x * s;
}
bool cmp_r(node a, node b) {
    return a.r < b.r;
}
bool cmp_h(node a, node b) {
    return a.h > b.h;
}
int main() {
    T = read();
    for (int i = 0; i < T; i++) {
        b[i].r = read();
        b[i].h = read();
    }
    node *a = new node [T];
    memset(s, 0, sizeof(s));
    sort(b, b + T, cmp_r);
    for (int i = 0; i < T; i++)
        if (s[i]) a[i].h = b[i].h;
    sort(a, a + n, cmp_h);
    delete[] a;
    return 0;
}
  • 写回答

2条回答 默认 最新

  • m0_54204465 2023-01-09 09:11
    关注

    贪心。

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    const int N = 55;
    
    int n;
    int r[N], h[N];
    int a[N];
    
    bool cmp(int x, int y)
    {
        return h[x] < h[y];
    }
    
    int main()
    {
        scanf("%d", &n);
    
        for (int i = 1; i <= n; i ++ )
            scanf("%d%d", &r[i], &h[i]);
    
        int res = 0;
        for (int i = 1; i <= n; i ++ )
        {
            a[i] = 1; // 初始值为 1,因为至少可以垒出 1 层
            for (int j = 1; j < i; j ++ )
                if (r[i] > r[j])
                    a[i] = max(a[i], a[j] + 1);
    
            res = max(res, a[i]);
        }
    
        printf("%d\n", res);
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月17日
  • 已采纳回答 1月9日
  • 创建了问题 1月9日

悬赏问题

  • ¥15 bat批处理,关于数据复制问题
  • ¥50 同步两个不同结果的array中某些属性
  • ¥15 悬赏15远程操控解决问题
  • ¥15 CST复制的模型无法单独修改参数?
  • ¥15 前端页面想做个定时任务,但是使用requestAnimationFrame,setinterval和settimeout都不行
  • ¥15 根据以下文字信息,做EA模型图
  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)