Logo 阿兹卡班的小天狼星的博客

博客

选书

2023-03-21 21:33:50 By 阿兹卡班的小天狼星

2483http://go.helloworldroom.com:50080/problem/2483

1.这次少写了一个判断(判断人有没有用过)

2.写函数时别用混i和k

3.别思考太片面 AC程序:

include

using namespace std;

int sum=1;

int a[6][6];

char b[5],x[5]={'A','B','C','D','E'};

bool flag[5]={0},flag1[5]={0},b1=false;//定义

void search(int k){

if(k>5){

    cout<<"answer "<<sum<<":"<<endl;

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

        cout<<i+1<<": "<<b[i]<<endl;

    }

    sum++;//输出 

    b1=true;

    return ;

}

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

    if(a[k-1][i]==1/*判断是否喜欢*/&&flag[k-1]==false/*判断是否有人用过*/&&flag1[i]==false/*拿过书了吗*/){

        b[k-1]=x[i];//赋值 

        flag1[i]=true;

        flag[k-1]=true;//设下决定 

        search(k+1);

        flag1[i]=false;

        flag[k-1]=false;//销毁决定 

    }

}

} int main(){

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

    for(int j=0;j<5;j++){

        cin>>a[i][j];

    }

}//输入 

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

    if(a[0][i]==0&&a[1][i]==0&&a[2][i]==0&&a[3][i]==0&&a[4][i]==0){

        cout<<0;

        return 0;

    }

}//是否有书谁都不喜欢 

search(1);//搜索 

if(!b1){

    cout<<0;

}

return 0; 

}

评论

暂无评论

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。