b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

c++ strchr函数_strchr函数返回_模拟实现strchr函数(5)

电脑杂谈  发布时间:2017-02-28 08:29:56  来源:网络整理

cout<<t[i].s<<" ";

cout<<endl;

for(int i=0;i<5;i)

cout<<t[i].e<<" ";

return 0;

}

贪心算法,只考虑当前状态,让它成为最优

#include <iostream>

using namespace std;

int a[20];

/*递归输出n以内所有的子集,其中cur为当前下标,初始0*/

void print_subset(int n,int* a,int cur){

for(int i=0;i<cur;i)//每次递归输出当前子集,靠它来最后输出上一层指定的子集

cout<<a[i]<<' ';

cout<<endl;//以行分隔

//找到当前子集首个,因为按字典顺序输出,所以每次找到最小的元素,cur>0则minElem=a[cur-1]1,否则为0

intminElem = cur?a[cur-1]1:0;

//从子集第一个开始遍历,先不看下面的print_subset(n,a,cur1);但看这for循环,

//可知是将子集第一个从头往后依次赋为minElem-n-1.每次第一个变化后递归设置下一个(相当于下一层的第一个)

for(int i=minElem;i<n;i){

a[cur]=i;//当前层子集第一个

//cur1表示当前层设置完毕,开始递归下一层,和前面步骤一样。

//到达最后一层结束后return 到上一层,然后i,a[cur]的(首元素)改变,又反复递归下一层...

print_subset(n,a,cur1);

}

}

int main(){

intn ;

while(cin>>n,n){

print_subset(n,a,0);

}

}

#include <iostream>

using namespace std;

bool b[20]={0};//判断当前每一个节点选中状态

/*递归输出n以内所有的子集,其中b表示该节点是否选中,cur为当前下标,初始0*/

void print_subset(int n,bool* b,int cur){

//当cur加到n的时候输出该串节点(解答树)的

if(cur==n){

for (int i=0;i<n;i){

if(b[i])

cout<<i<<' ';

}

cout<<endl;

return ;

}

b[cur]=true;//该节点设为选中状态

print_subset(n,b,cur1);//cur1递归该状态时的下一层节点,循环该操作

b[cur]=false;//该节点设为不选中状态

print_subset(n,b,cur1);//cur1递归该状态时的下一层节点,循环该操作

}

int main(){

intn ;

while(cin>>n,n){


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-34960-5.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...