题目链接:点击查看题目
1963: Deadline
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 27 Solved: 17
Description
刷了一天题的zy已经筋疲力尽,正在他准备上床时,才意识到自己所有科目的作业都没写,但这个时候再认真写
就已经晚了,于是他只好找同学抄,但其实班里也只有那么寥寥几个人写了作业,这就让zy非常头疼,因为平时分还是
非常重要的。
现已知有m门科目要交作业,班里只有n个人写了作业,问zy至少要找多少人借作业才能把所有作业全部搞定
PS:zy找同学借作业时会将那个同学的所有作业全部借来
Input
单实例测试,
第一行输入两个正整数n,m(n,m<=7)
接下来是一个n*m的01矩阵,第i行第j列为1表示第i个人做了第j门作业,为0表示没做,数据保证每个作业至少有一个人做了
Output
输出一个整数表示zy最少要找多少人
Sample Input
5 7
1 0 0 1 1 1 1
0 1 0 0 1 1 0
0 0 1 1 0 0 1
0 1 1 0 0 0 1
1 0 1 0 1 1 1
Sample Output
2
HINT
对于样例,zy只要找第1个同学和第4个同学即可!
基本思路
面对每一位同学的作业,zy都可以借或者不借。借的话把当前同学写的作业拿到自己手里, 然后去找下一位同学。不想借的话就跳过直接去 找下一位同学。
下附代码:
下面是三种代码, 其实方法是一样的,穷举每一种可能, 但是在实现过程还是有差异的。
1,
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int a[10][10], c[10];
int n, m, ans;
void dfs(int num, int x);//num为当前还需借几位同学的作业
int main () //x为当前面对同学的编号
{
scanf("%d%d", &n, &m);
int i,j;
for (i