初级天翼
4051 选书
经验值:800
题目描述 Description
学校放寒假了,信息学竞赛辅导老师有A,B,C,D,E五本书,要分给参加培训的张,王,刘,孙,李五位同学,每个人只能选一本书,老师事先让每个人填在一张表格中,然后根据他们填写的表格来分配书,你能帮助老师设计一个程序求出所有的分配方案,让每一个学生都满意。
输入描述 Input Description
输入5*5的布尔型数组,喜欢这本书则输入1,不喜欢则输入0。第一行代表张同学对这五本书的喜好,第二行代表王同学对这五本书的喜好,第三行代表刘同学对这五本书的喜好,第四行代表孙同学对这五本书的喜好,第五行代表李同学对这五本书的喜好,
输出描述 Output Description
有多少种方案输出多少行,每行五个字符,分别代表张,王,刘,孙,李这五名同学得到的书本。按字典序排列
样例输入 Sample Input
0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 1 0 0 1
样例输出 Sample Output
CABDE
没有任何思路,望大佬给出思路或者加我QQ回我:1708262261
初级天翼
我是直接全排列,在一个一个比对。。。。。。思路来起来还行但是WA了
许金夫在2020-05-16 15:43:19追加了内容
啊,好消息!我刚刚做出来了!!!
这道题不要用上次的代码,要用全排列的代码~
将1011的代码找出来,把n不要输入,定义成5
然后输入BOOL数组(都会)
在最上面定义一个string s="0ABCDE"; //不要问我为什么
dfs里面一切正常,只是把if改一下//都会,跳过去,不细讲了
输出的时候吧cout<<pl[i]<<" ";改成cout<<s[pl[i]];
AC!
中级天翼
一、定义+输入(如果会,继续往下看;如果不会,别写这道题了)
二、搜索(这个数重点)
函数里一个参数,表示要给第i个同学选书
如果选完了,答案++,结束
否则,遍历5本书,如果这本书没被选过而且这个同学喜欢这本书,那么选这本书
三、输出(不讲了)
董子墨在2020-05-14 17:26:56追加了内容
如果没看懂,评论里回我