zoukankan      html  css  js  c++  java
  • AC日记——友好城市 洛谷 P2782

    题目背景

    题目描述

    有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市。北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同。没对友好城市都向政府申请在河上开辟一条直线航道连接两个城市,但是由于河上雾太大,政府决定避免任意两条航道交叉,以避免事故。编程帮助政府做出一些批准和拒绝申请的决定,使得在保证任意两条航道不相交的情况下,被批准的申请尽量多。

    输入输出格式

    输入格式:

    第1行,一个整数N(1<=N<=5000),表示城市数。

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

    输出格式:

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

    输入输出样例

    输入样例#1:
    7
    22 4
    2 6
    10 3
    15 12
    9 8
    17 17
    4 2
    输出样例#1:
    4

    说明

    1<=N<=5000,0<=xi<=10000

    思路:

      排序后求最长上升子序列;

    来,上代码:

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    struct EdgeType {
        int l,r;
    };
    struct EdgeType edge[5005];
    
    int n,dp[5005];
    
    char Cget;
    
    inline void in(int &now)
    {
        now=0,Cget=getchar();
        while(Cget>'9'||Cget<'0') Cget=getchar();
        while(Cget>='0'&&Cget<='9')
        {
            now=now*10+Cget-'0';
            Cget=getchar();
        }
    }
    
    bool cmp(struct EdgeType a,struct EdgeType b)
    {
        if(a.l==b.l) return a.r<b.r;
        else return a.l<b.l;
    }
    
    int main()
    {
        in(n);
        for(int i=1;i<=n;i++) in(edge[i].l),in(edge[i].r);
        sort(edge+1,edge+n+1,cmp);
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<i;j++)
            {
                if(edge[j].r<edge[i].r)
                {
                    dp[i]=max(dp[i],dp[j]+1);
                }
            }
        }
        int ans=0;
        for(int i=1;i<=n;i++) ans=max(ans,dp[i]);
        cout<<ans+1;
        return 0;
    }
  • 相关阅读:
    Mariadb/Mysql命令行常用命令
    Apache
    Web网页服务器软件——介绍
    力扣 2021.02.22
    openwrt 广告屏蔽大师 Plus+ 广告屏蔽
    AWX安装
    Command "python setup.py egg_info" failed with error code 1
    《Can you feel my world》--王力宏
    csv文件读入转字典
    每日一题力扣110 平衡二叉树
  • 原文地址:https://www.cnblogs.com/IUUUUUUUskyyy/p/6498229.html
Copyright © 2011-2022 走看看