船
来源:互联网 发布:云计算服务市场规模 编辑:程序博客网 时间:2024/04/27 13:41
【问题描述】
PALMIA国家被一条河流分成南北两岸,南北两岸上各有N个村庄。北岸的每一个村庄有一个唯一的朋友在南岸,且他们的朋友村庄彼此不同。
每一对朋友村庄想要一条船来连接他们,他们向政府提出申请以获得批准。由于河面上常常有雾,政府决定禁止船只航线相交(如果相交,则很可能导致碰船)。
你的任务是编写一个程序,帮助政府官员决定批准哪些船只航线,使得不相交的航线数目最大。
【输入文件】ships.in
输入文件由几组数据组成。每组数据的第一行有2个整数X,Y,中间有一个空格隔开,X代表PALMIA河的长度(10<=X<=6000),Y代表河的宽度(10<=Y<=100)。第二行包含整数N,表示分别坐落在南北两岸上的村庄的数目(1<=N<=5000)。在接下来的N行中,每一行有两个非负整数C,D,由一个空格隔开,分别表示这一对朋友村庄沿河岸与PALMIA河最西边界的距离(C代表北岸的村庄,D代表南岸的村庄),不存在同岸又同位置的村庄。最后一组数据的下面仅有一行,是两个0,也被一空格隔开。
【输出文件】ships.out
对输入文件的每一组数据,输出文件应在连续的行中表示出最大可能满足上述条件的航线的数目。
【输入样例】
30 4
7
22 4
2 6
10 3
15 12
9 8
17 17
4 2
0 0
【输出样例】
4
PALMIA国家被一条河流分成南北两岸,南北两岸上各有N个村庄。北岸的每一个村庄有一个唯一的朋友在南岸,且他们的朋友村庄彼此不同。
每一对朋友村庄想要一条船来连接他们,他们向政府提出申请以获得批准。由于河面上常常有雾,政府决定禁止船只航线相交(如果相交,则很可能导致碰船)。
你的任务是编写一个程序,帮助政府官员决定批准哪些船只航线,使得不相交的航线数目最大。
【输入文件】ships.in
输入文件由几组数据组成。每组数据的第一行有2个整数X,Y,中间有一个空格隔开,X代表PALMIA河的长度(10<=X<=6000),Y代表河的宽度(10<=Y<=100)。第二行包含整数N,表示分别坐落在南北两岸上的村庄的数目(1<=N<=5000)。在接下来的N行中,每一行有两个非负整数C,D,由一个空格隔开,分别表示这一对朋友村庄沿河岸与PALMIA河最西边界的距离(C代表北岸的村庄,D代表南岸的村庄),不存在同岸又同位置的村庄。最后一组数据的下面仅有一行,是两个0,也被一空格隔开。
【输出文件】ships.out
对输入文件的每一组数据,输出文件应在连续的行中表示出最大可能满足上述条件的航线的数目。
【输入样例】
30 4
7
22 4
2 6
10 3
15 12
9 8
17 17
4 2
0 0
【输出样例】
4
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<math.h>#define N 1000000using namespace std;typedef struct { int x,y;}node;int cmp(node a,node b){ if (a.x<b.x) return 1; if (a.x==b.x) if (a.y<b.y) return 1; return 0;}int main(){ int n,dp[110],m,t; node temp[110]; int i,j; scanf("%d%d",&m,&t); scanf("%d",&n); for (i=0;i<n;i++) { scanf("%d%d",&temp[i].x,&temp[i].y); dp[i]=1; } sort(temp,temp+n,cmp); /*for (i=0;i<n;i++) printf("%d %d\n",temp[i].x,temp[i].y);*/ for (i=0;i<n;i++) { for (j=0;j<=i;j++) if (temp[i].y>temp[j].y&&dp[i]<dp[j]+1) dp[i]=dp[j]+1; } int cnt=0; for (i=0;i<n;i++) if (cnt<dp[i]) cnt=dp[i]; printf("%d\n",cnt); return 0;}
0 0
- 船
- 船
- 空船
- 月夜船
- 出船
- 像船
- 船_DP
- 大海里的船
- 船商航海技术论坛
- 中国船友在线
- 等风的船
- 大海里的船
- 船友论坛
- 搁浅的船
- 心中的月亮船
- 忒修斯之船
- 借船过河问题
- CEO的月亮船
- C++中引用类型
- kendo widow 打开的位置
- React组件协同
- 黑盒测试
- XMG 各种手势
- 船
- 动态规划——problemA
- 【C++】VS2010生成的程序在安装了vc2010运行库的机器上提示“丢失MSVCR100D.dll”
- 自动化运维工具Ansible详细部署
- HDU 1827 Summer Holiday 求每一个连通块内点的权值最小
- StringUtil
- nodejs: error 事件 转载自“这个笑话网”
- android 自学日记(六) ——SAX解析中换行问题解决
- Unity设置cullingMask值