导弹拦截问题
问题描述:某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。
输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。
样例:INPUT OUTPUT
389 207 155 300 299 170 158 65 6(最多能拦截的导弹数)
2(要拦截所有导弹最少要配备的系统数)
(5-9)渡口设置
问题描述:两个地区被一条河流 分成南北两岸。南北两岸上各有N个村庄。北岸的每一个村庄有一个唯一的朋友村庄在南岸,且他们的朋友村庄彼此不同。河流的长度(10<=X<=6000)
每一对朋友村庄想要一条船来连接他们。他们向政府提出申请以获得批准。由于河上经常有雾,政府决定禁止船只航线相交(如果相交,则有可能导致相撞)。
你的任务是编写一个程序,帮助政府官员决定批准那些船只航线,使不相交的航线数目最大。
输入数据:输入数据的第一行包含整数N,表示分别坐落在南北两岸上的村庄数目(1<=N<=5000)。在接下来的N行中,每一行有两个非负整数C,D(1<=C,D<=6000),由一个空格隔开,分别表示一对朋友村庄在河流两岸的坐标(以最西边界为0)。不存在同岸又同位置的村庄。
输出数据:一个数为满足上述条件的航线数目。
输入输出示例:输入示例:30 输出示例:4
7
22 4
2 6
3 10
15 12
9 8
17 17
4 2