zzulioj 1963:Deadline

zy面临所有科目作业未完成的问题,需要找同学抄作业。已知有m门科目,n个人写了作业,目标是最少找多少人。输入包含一个01矩阵表示哪些人完成了哪些作业,输出显示zy至少需要找的同学数量。样例中zy找第1位和第4位同学就能解决所有作业。代码提供了穷举解法的三种实现。
摘要由CSDN通过智能技术生成

题目链接:点击查看题目
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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值