题目一:

【题目描述】

Palmia国有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市。北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同。

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

【输入】

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

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

【输出】

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

【输入样例】


【输出样例】

4

【来源】

No

【思路】:把男岸从小到大排序,然后北列求最长上升子序列

ps:

本题数据和水,O(n2)就能过

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int f[];
struct road {
int begin;
int end;
} a[];
int cmp( road a, road b) {
return a.begin<b.begin;
}
int main() {
int n,i,j;
cin>>n;
for(i=; i<=n; i++) {
cin>>a[i].begin>>a[i].end;
f[i]=;
}
sort(a+,a++n,cmp);
for(i=; i<=n; i++) {
for(j=; j<i; j++) {
if(a[i].end>a[j].end) {
f[i]=max(f[i],f[j]+);
}
}
}
int ans=;
for(int i=; i<=n; ++i) {
if(f[i]>ans) {
ans=f[i];
}
}
cout<<ans;
return ;
}

题目二:

P2782 友好城市(luogu )

题目描述

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

输入输出格式

输入格式:

第1行,一个整数N,表示城市数。

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

输出格式:

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

输入输出样例

输入样例#1: 复制


输出样例#1: 复制

4

说明

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

100% 1<=N<=2e5,0<=xi<=1e6

【思路】:和上面一样,但是需要nlogn的才能100分

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int f[];
struct road {
int begin;
int end;
} a[];
int cmp( road a, road b) {
return a.begin<b.begin;
}
int d[];
int main() {
int n,i,j;
cin>>n;
for(i=; i<=n; i++) {
cin>>a[i].begin>>a[i].end;
f[i]=;
}
sort(a+,a++n,cmp);
/*n方
for(i=2; i<=n; i++) {
for(j=1; j<i; j++) {
if(a[i].end>a[j].end) {
f[i]=max(f[i],f[j]+1);
}
}
}
*/
/*n*log n*/
d[]=a[].end;//初始化
int len=;
for(i=; i<=n; i++) {
if(a[i].end>d[len]) {
d[++len]=a[i].end;
} else {
d[lower_bound(d+,d++len,a[i].end)-d]=a[i].end;
}
}
/*int ans=0;
for(int i=1; i<=n; ++i) {
if(f[i]>ans) {
ans=f[i];
}
}*/
cout<<len;
return ;
}

【dp】友好城市的更多相关文章

  1. 洛谷P2782 友好城市 DP

    やはり まだあしたということは嘘でしょう.ぜんぶ忘れた( ´・ヮ・`) 所以今天就贴一道水题吧 原题>>https://www.luogu.org/problem/show?pid=278 ...

  2. 【经典DP】洛谷 P2782 友好城市

    嘤嘤嘤,昨天两个文化课老师在上奥赛时招呼我(亲切交流),今天又要写工作报告,没时间写题解,希望今天能补上 友好城市 题目://洛谷那粘来的题面竟然能把格式粘过来 题目描述 有一条横贯东西的大河,河有笔 ...

  3. 友好城市dp

    // // Created by Arc on 2020/4/27. //对了,这篇题解的代码是小白自己写的.有啥错误还请各位大佬多多包涵. /* * 某国有一条大河(一条大河~~~~,波浪宽~~~~ ...

  4. P2782 友好城市

    P2782 友好城市一道伪装得很好的dp,一开始没想出来,不相交就是所有的都在右边,也就是对于当前的城市i和它的友好城市的坐标都在城市j和它的友好城市的右边,这样就转化成了求最长上升子序列,f[i]表 ...

  5. AC日记——友好城市 洛谷 P2782

    题目背景 无 题目描述 有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市.北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同.没对友好城市都向政府申请在河上 ...

  6. 洛谷 P2782 友好城市

    P2782 友好城市 题目描述 有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市.北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同.每对友好城市都向政府申 ...

  7. (Java实现) 友好城市

    1263:[例9.7]友好城市 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 1867 通过数: 1032 [题目描述] Palmia国有一条横贯东西的大河,河有笔直的南北两岸, ...

  8. P2782 友好城市(最长不下降子序列)

    题目描述 有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的$N$个城市.北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同.每对友好城市都向政府申请在河上开辟一条直 ...

  9. 【Noip模拟 20161005】友好城市

    问题描述 小ww生活在美丽的ZZ国.ZZ国是一个有nn个城市的大国,城市之间有mm条单向公路(连 接城市ii.jj的公路只能从ii连到jj).城市ii.jj是友好城市当且仅当从城市ii能到达城市jj并 ...

随机推荐

  1. oracle学习笔记(四) DQL数据查询语言和TCL 事务控制语言

    DML 数据管理语言 Data manage language insert, update, delete以及select语句,不过,有人也把select单独出来,作为DQL 数据查询语言 data ...

  2. web前端图片上传(3)--filereader

    这篇文章主要是为了介绍一种文件上传的方式.当然文件中是包含图片的.如果大家仔细看我的第一篇web前端图片上传(1)就会知道,其实也是按照这种方式上传你的,但是由于上次时间比较紧张,没有详细的介绍今天的 ...

  3. Can`tconnect to MySQL server on 'localhost'(10061)问题解决

    今天在登陆MySQL是登录不上出现了“Can`tconnect to MySQL server on ‘localhost’(10061)”的问题,于是便在网上到处搜资料查原因:但好多都是:让删除my ...

  4. iOS:我的学习路径

    1.复习C语言(半个月) <C Primer Plus>1-6章 2.学习Objective-C基础语法(一周) 黑马程序员视频 3.直接用Xcode开始APP的实战(半个月) 黑马程序员 ...

  5. RAID5当一块硬盘离线后处理

    RAID5当一块硬盘离线后,处理降级状态,这时候正常的建议是马上更换硬盘做REBUILD以恢复完整的数据状态,如果有热备盘的话,就会自动做REBUILD,这样做合适吗? 一组RAID卷在工作很长时间以 ...

  6. requests库下载图片的方法

    方法: 传入图片url,requests.get()方法请求一下,将源码以二进制的形式写在本地即可. 以前一直以为requests库中有特定的方法获取图片,类似urllib.request.urlre ...

  7. 记录Javascript集合操作

    function Set() { var items = {}; /** * 添加元素 * @param {[type]} value [description] */ this.add = func ...

  8. R语言学习——数据合并及绘制密度分布曲线图

    setwd("E:/08_cooperation/07_X-lab/06-Crosstalk/Aadapter_primer")# 读取lane01.txt,并对其按列进行相加处理 ...

  9. fastJson反序列化异常,JSONException: expect ':' at 0, actual =

    com.alibaba.fastjson.JSONException: expect , actual = at com.alibaba.fastjson.parser.DefaultJSONPars ...

  10. React 系列教程2:编写兰顿蚂蚁演示程序

    简介 最早接触兰顿蚂蚁是在做参数化的时候,那时候只感觉好奇,以为是很复杂的东西.因无意中看到生命游戏的 React 实现,所以希望通过兰顿蚂蚁的例子再学习一下 React. 兰顿蚂蚁的规则非常简单: ...