icpc 2019 word final A题 思路

解决两排物品按特定条件排列的问题,确保前排高度低于后排且价格不降序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接

题意

两排物品摆放,每个物品有价格和高度两个属性

要求:

  • each前排高度小于后排
  • 行内价格从左到右不下降

solution

首先每行按价格排序

每行将价格相同的放进buffer

固定buffer.size()小的那个然后用另一个buffer贪心的取同等价格可以取的高度里最大的。

buffer空了适时补充

“能犯的错误都犯了一遍”

#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 7;

struct Node{
    int idx, price, height;

    Node (){}
    Node (int id, int p, int h):idx(id), price(p), height(h){}

    friend bool operator < (const Node &a,const Node &b){
        return a.height < b.height;
    }

    void print(){
        printf("Node %d: p = %d, h = %d\n", idx, price, height);
    }
}fro[N], bac[N];

bool cmp (const Node &a,const Node &am
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值