首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >建立友好城市有什么用_缔结友好城市

建立友好城市有什么用_缔结友好城市

作者头像
全栈程序员站长
发布2022-09-22 11:10:52
发布2022-09-22 11:10:52
27200
代码可运行
举报
运行总次数:0
代码可运行

Palmia国有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市

北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同。

每对友好城市都向政府申请在河上开辟一条直线航道连接两个城市,但是由于河上雾太大,政府决定避免任意两条航道交叉,以避免事故。

编程帮助政府做出一些批准和拒绝申请的决定,使得在保证任意两条航线不相交的情况下,被批准的申请尽量多。

输入格式 第1行,一个整数N,表示城市数。

第2行到第n+1行,每行两个整数,中间用1个空格隔开,分别表示南岸和北岸的一对友好城市的坐标。

输出格式 仅一行,输出一个整数,表示政府所能批准的最多申请数。

数据范围 1≤N≤5000, 0≤xi≤10000 输入样例:

代码语言:javascript
代码运行次数:0
运行
复制
7
22 4
2 6
10 3
15 12
9 8
17 17
4 2

输出样例:

代码语言:javascript
代码运行次数:0
运行
复制
4

题解 先按照y排序然后对x求最长上升子序列

代码语言:javascript
代码运行次数:0
运行
复制
#include<bits/stdc++.h>
#include<cmath>
#define x first
#define y second
#define send string::npos
#define lowbit(x) (x&(-x))
#define left(x) x<<1
#define right(x) x<<1|1
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
typedef struct Node * pnode;
const int N = 1e1 + 10;
const int M = 5e5 + 10;
const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3f;
const int Mod = 4e8;
PII a[N];
bool cmp(const PII &a,const PII &b){ 
   
    return a.y < b.y;
}
int f[N];
int main(){ 
   
    int n,x,y;
    cin>>n;
    for(int i = 0;i < n;i ++)
    { 
   
        cin>>a[i].x>>a[i].y;
    }
    sort(a,a + n,cmp);
// for(int i = 0;i < n;i ++){ 
   
// a[i].x = i;
// cout<<a[i].x<<endl;
// }
    f[0] = 1;
    int res = 0;
    for(int i = 1;i < n;i ++){ 
   
        for(int j = 0;j < i;j ++){ 
   
            if(a[j].x < a[i].x){ 
   
                f[i] = max(f[i],f[j]);
            }
        }
        f[i] += 1;
        res = max(res,f[i]);
    }
    cout<<res<<endl;
    return 0;
}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168999.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档