試題四[題目略] 是個貪心的算法題..
(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
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
27 | 28 | 29 | 30 | 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 | 6 | 7 |
|
公告
Blog里的內容如果沒有注明為轉載,就是原創文章,需要轉載的朋友請注明出處。文章中如有錯誤,請指出。轉載內容如果有侵權行為,請與我聯系,----issac_asimoy@qq.com。
常用鏈接
留言簿(1)
隨筆分類(5)
隨筆檔案(5)
文章分類(28)
文章檔案(28)
相冊
My World
Study Web
最新隨筆
搜索
積分與排名
最新評論

閱讀排行榜
評論排行榜
|
|