永发信息网

问你两道题C++

答案:1  悬赏:80  手机版
解决时间 2021-08-22 11:14
  • 提问者网友:我们很暧昧
  • 2021-08-22 07:53

导弹拦截问题

问题描述:某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。

输入导弹依次飞来的高度(雷达给出的高度数据是不大于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

最佳答案
  • 五星知识达人网友:雾月
  • 2021-08-22 08:53
为什么你不将析构函数都变成virtual 呢,还有的是,你访问的F1();但是,class A 中的析构函数并没有变成virtual ,那你是不可能输出~B()的;
将如下改法就可以输出:
#include <iostream>
using namespace std;
class A
{
int m;
public:
A()
virtual ~A()
virtual void F1()
virtual void F2()
};
class B : public A
{
public:
B()
~B()

virtual void F2()
};
int main()
{
A *ap = new B;
ap->F1();
delete ap;

return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯