洛谷 P2782 友好城市

题目链接:友好城市 - 洛谷

思路:对两组河东河西的坐标,如果x1>x2,但y1

dp法:(超时)

#include
#include
using namespace std;

struct Address
{
    int a,b;
    bool operator<(const Address x)const{
        return a>n;
    for(int i=1;i<=n;++i)
    {
        cin>>a[i].a>>a[i].b;
    }

    sort(a+1,a+n+1);

    for(int i=1;i<=n;++i)
    {
        f[i]=1;
        for(int j=1;ja[j].b) f[i]=max(f[i],f[j]+1);
        }
        ans=max(ans,f[i]);
    }
    
    cout<

贪心+二分法:

#include
#include
using namespace std;

const int MAXN = 200005;
struct city
{
    int x,y;
    bool operator<(const city a)const {
        return x>n;

    for(int i=0;i>c[i].x>>c[i].y;
    }
    sort(c,c+n);
    for(int i=0;idp[cnt]) dp[++cnt]=a[i];
        else
        {
            dp[lower_bound(dp,dp+cnt+1,a[i])-dp]=a[i];
        }
    }
    cout<

你可能感兴趣的:(寒假练习,算法)