当前位置: 首页 > news >正文

P2782 友好城市

题目链接:

思路:

我们可以先对河岸一边从小到大排序,对于另外一边,就转换为求最长上升子序列的问题了。

二分+贪心代码:

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

int n;
struct edge{
    int x, y;
}p[N];
//g[i] 表示长度为i的子序列最后数字
int len = 1, g[N];


//sort判断函数
bool cmp(edge a, edge b){
    return a.x < b.x;
}

int main(){
    cin >> n;
    //读入
    for(int i = 1; i <= n; i++){
        cin >> p[i].x >> p[i].y;
    }
    //对p根据x从小到大排序
    sort(p+1, p+1+n, cmp);
    //对p[i]选出最长上升子序列
    g[1] = p[1].y;
    for(int i = 2; i <= n; i++){
        //当满足上升 添加到g[]中
        if(g[len] <=  p[i].y){
            g[++len] = p[i].y;
        }
        else{//不满足
            int l = 0, r = len+1;
            while(l+1 < r){
                int mid = (l+r) / 2;
                if(g[mid] < p[i].y){
                    l = mid;
                }
                else r = mid;
            }
            g[r] = p[i].y;
        }
    }
    
    cout << len << endl;
    
    return 0;
}

http://www.dtcms.com/a/107555.html

相关文章:

  • 私有云(三)双节点部署openstack
  • 自学-C语言-基础-数组、函数、指针、结构体和共同体、文件
  • 111.在 Vue 3 中使用 OpenLayers 实现动态曲线流动图(类似 ECharts 迁徙状态)
  • 从代码学习深度学习 - 残差网络(ResNet)PyTorch版
  • MSVC编译遇到C2059、C2143、C2059、C2365、C2059等错误的解决方案
  • 打开pycharm显示编制索引后卡死
  • C++软件开发架构
  • llm-universe 踩坑记录
  • 数值与字典解决方案第二十五讲:数组的合并拆分及筛选
  • GNSS信号模拟器、导航信号模拟器、导航模拟信号源介绍
  • 如何解决 PyQt5 中的 `xcb` 插件加载错误
  • vue修饰符
  • ns-3使用animation出现文件小、无时间、打开后只有拓扑没有内容
  • 《静默与轰鸣的对决》
  • 什么是向量搜索Vector Search?
  • work03_1 实现一个简单的计算器,能够处理加法、减法、乘法和除法
  • 四、Bug篇+用例篇
  • Docker学习--容器操作相关命令--docker inspect 命令
  • C/C++指针核心难点全解析:从内存模型到实战避坑指南
  • AttributeError: module ‘smtplib‘ has no attribute ‘SMTP_SSL‘ 解决方法
  • AI小白的第十天:影响模型泛化能力的因素以及对策
  • spring boot 集成redis 中RedisTemplate 、SessionCallback和RedisCallback使用对比详解,最后表格总结
  • 系统思考与时间管理
  • 在MFC中使用Qt(五):MFC和Qt的共存和交互
  • 经典算法 最长公共子序列问题
  • GPU与CUDA对应
  • 阿里云服务器对接高防的时候可能会出现的问题
  • 鸿蒙应用元服务开发-Account Kit 常见问题说明
  • BRC认证是什么?如何获得BRC认证?对企业发展的好处
  • 解决Oracle PL/SQL中“表或视图不存在“错误的完整指南