试题四[题目略] 是个贪心的算法题..
(1) k=0
(2) j<=N
(3) k=k+1
(4) d[i] + 6
(5) O(N)




#include <iostream>
using namespace std;

 void Fun(int *d,int N) {
int i=1,j,k=0;
int *s=new int[N+1];
memset(s,0,sizeof(s));
while(i<=N)
 {
j=i+1;
while(j<=N&&d[j]-d[i]<=12) //如果2个房子可以用一个基站覆盖
j=j+1;
++k; //建一个基站
s[k]=d[i]+6; //s[k]为第k个基站到公路A端的距离
i=j; //继续从没有覆盖的开始搜索.
}
cout<<k<<endl;
delete []s;
}

 int main() {
int N;
freopen("in.cpp","r",stdin);
//6 2 7 12 13 16 20
//5 8 15 22 29 36
while(cin>>N&&N)
 {
int *d=new int[N+1];
for(int i=1;i<=N;++i)
scanf("%d",&d[i]);
d[0]=0;
Fun(d,N);
delete []d;
}
return 0;
}

试题五[题目略] 2叉树的数据结构考题
 typedef struct TreeNode {
int id; //当前节点的识别号
int ChildNum; //当前节点的子节点数目
int d; //父亲点到当前节点的信号衰减值
struct TreeNode **childptr; //向量,存放当前节点到其所有子节点的指针
int M; //当前节点到其所有子节点的信号衰减值中的最大值
bool boost; //是否在当前节点放置信号放大器的标志
}TreeNode;

 void placeBoosters(TreeNode *root) {
//计算root所指节点处的衰减量,如果衰减量超出了容忍值,则放置放大器
TreeNode *p;
int i,degradation;
if(root)
 {
degradation=0;root->M=0;
i=0;
if(i>=root->ChildNum) //没有孩子返回
return;
p=root->childptr[0];
for(;i<root->ChildNum&&p;i++,p=root->childptr[i])
 {
p->M=0;
placeBoosters(p);
if(p->d+p->M>Tolerance)
 {
p->boost=true;
p->M=0;
}
if(p->d+p->M>degradation)
degradation=p->d+p->M;
}
root->M=degradation;
}
}

试题六[题目略] 考的是抽象类,纯虚函数,继承和派生的知识。
#include <iostream>
using namespace std;

 class FlyBehavior {
public:
virtual void fly()=0;
};

 class QuackBehavior {
public:
virtual void quack()=0;
};

 class FlyWithWings:public FlyBehavior {
public:
 void fly() { cout<<"使用翅膀飞行!"<<endl;}
};

 class FlyNoWay:public FlyBehavior {
public:
 void fly() { cout<<"不能飞行!"<<endl;}
};

 class Quack:public QuackBehavior {
public:
 void quack() { cout<<"发出\'嘎嘎\'声!"<<endl;}
};

 class Squeak:public QuackBehavior {
public:
 void quack() { cout<<"发出空气与橡皮摩擦声!"<<endl;}
};

 class QuackNoWay:public QuackBehavior {
public:
 void quack() { cout<<"不能发声!"<<endl;}
};

 class Duck {
protected:
FlyBehavior *flyBehavior;
QuackBehavior *quackBehavior;
public:
 void fly() { flyBehavior->fly();}
 void quack() { quackBehavior->quack();}
virtual void display()=0;
};

 class RubberDuck:public Duck {
public:
 RubberDuck() {
flyBehavior=new FlyNoWay();
quackBehavior=new Squeak();
}
 ~RubberDuck() {
if(!flyBehavior) delete flyBehavior;
if(!quackBehavior) delete quackBehavior;
}
 void display() {}
};

.....~ 如有错误,请指出
|
|
随笔:5
文章:28
评论:1
引用:0
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
23 | 24 | 25 | 26 | 27 | 28 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 |
|
公告
Blog里的内容如果没有注明为转载,就是原创文章,需要转载的朋友请注明出处。文章中如有错误,请指出。转载内容如果有侵权行为,请与我联系,----issac_asimoy@qq.com。
常用链接
留言簿(1)
随笔分类(5)
随笔档案(5)
文章分类(28)
文章档案(28)
相册
My World
Study Web
最新随笔
搜索
积分与排名
最新评论

阅读排行榜
评论排行榜
|
|