2397. 被列覆盖的最多行数-深度优先枚举+二进制检索

news2025/7/30 9:53:14

2397. 被列覆盖的最多行数-深度优先枚举+二进制检索

给你一个下标从 0 开始的 m x n 二进制矩阵 mat 和一个整数 cols ,表示你需要选出的列数。

如果一行中,所有的 1 都被你选中的列所覆盖,那么我们称这一行 被覆盖 了。

请你返回在选择 cols 列的情况下,被覆盖 的行数 最大 为多少。

示例 1:
在这里插入图片描述

输入:mat = [[0,0,0],[1,0,1],[0,1,1],[0,0,1]], cols = 2
输出:3
解释:
如上图所示,覆盖 3 行的一种可行办法是选择第 0 和第 2 列。
可以看出,不存在大于 3 行被覆盖的方案,所以我们返回 3 。

示例 2:
在这里插入图片描述

输入:mat = [[1],[0]], cols = 1
输出:2
解释:
选择唯一的一列,两行都被覆盖了,原因是整个矩阵都被覆盖了。
所以我们返回 2 。

解题代码如下:


int max_count;


void find_max(int *a,int tra,int m){
   
    int count=0;
    for(int i=0;i<m;i++){
        if((a[i]&tra)==0){
            count++;
        }
       


    }
    max_count=fmax(max_count,count);
  //  printf("count %d ",count);
 
}

void dfs(int data,int cols,int now,int n,int po,int *a,int m){
    if(po==cols){
      
        find_max(a,data,m);

    }
    else{
         for(int i=now;i<n;i++){
           
             dfs(data-pow(2,i),cols,i+1,n,po+1,a,m);

         }

    }
   

}

int maximumRows(int** matrix, int matrixSize, int* matrixColSize, int numSelect){
    int m=matrixSize,n=matrixColSize[0];
    int* a=(int *)malloc(sizeof(int)*matrixSize);
    int* r=(int *)malloc(sizeof(int)*matrixSize);

    for(int i=0;i<m;i++){
        a[i]=0;
        r[i]=1;
        int p=1;
        for(int j=n-1;j>=0;j--){
             a[i]=a[i]+p*matrix[i][j];
             p=p*2;

        }
    }
   max_count=0;
   
    int num=pow(2,n)-1;
     dfs(num,numSelect,0,n,0,a,m);

    


    
    return max_count;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16234.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Security内部工作原理

定义 Spring 安全性是 Spring提供的一个框架&#xff0c;有助于自定义访问和身份验证过程。它在保护应用程序方面起着非常关键的作用。 Spring 安全性&#xff0c;主要侧重于身份验证和授权&#xff0c;为 Java 应用程序提供所有好处。它非常有用&#xff0c;并提供了一种在实…

抑制细胞代谢紊乱的抑制剂

作者团队发现&#xff0c;缺乏 CD4 T 细胞能保护小鼠免受应激诱导的焦虑样行为&#xff0c;物理应激诱导的白三烯 B4 (LTB4) 触发 CD4 T 细胞中的严重线粒体裂变&#xff0c;进而导致各种行为异常&#xff0c;包括焦虑&#xff0c;抑郁和社交障碍。代谢组和单细胞转录组学显示…

Android App实战项目之实现手写签名APP功能(附源码,简单易懂 可直接实用)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、跟踪滑动轨迹实现手写签名 手写签名的原理是把手机屏幕当作画板&#xff0c;把用户手指当作画笔&#xff0c;手指在屏幕上划来划去&#xff0c;屏幕就会显示手指的移动轨迹&#xff0c;就像画笔在画板上写字一样&#…

安装free IPA与CDH6.3.2结合

主机名之类的应该在cdh安装的时候就配好了 不再赘述 安装freeipa yum -y install nscd 修改 enable-cache netgroup no enable-cache group no enable-cache passwd no 云主机默认不开启IPv6&#xff0c;根据提…

小 A 的卡牌游戏(Gym - 103186B)

题 小A最近沉迷于-款名为Hearthverse的卡牌游戏。在这款游戏中&#xff0c;卡被分为了三个种类(随从、法术和魔法阵)&#xff0c;在组卡时&#xff0c;这款游戏严格规定了卡组中每种卡牌的数量&#xff0c;具体来说&#xff0c;-副n张卡的卡组需要包含恰好a张随从卡&#xff0…

Tdengine技术实践

1. 什么是时序数据库&#xff1f; 时序数据库全称为时间序列数据库。 即时间序列数据&#xff0c;按时间维度顺序记录且索引的数据。 时间序列数据主要由 电力行业、化工行业、气象行业、地理信息 等各类型实时监测、检查与分析设备所采集、产生的数据&#xff0c;这些工业数…

配置Maven环境

Maven官网 Maven所有发行版本 一、windows配置maven环境 想要使用maven就必须要有JDK JDK安装 百度网盘下载&#xff08;二进制文件&#xff0c;一直点下去&#xff09; 链接&#xff1a;https://pan.baidu.com/s/1y1AutzJeQGdNHa2ml_bk8w 提取码&#xff1a;scyc验证JDK是…

【Java八股文总结】之Java基础

写在前面&#xff1a; 整份Java八股文的整理贯穿我的整个秋招&#xff0c;希望可以给大家带来帮助&#xff0c;如果对你有一定的作用&#xff0c;欢迎大家转发点赞&#xff0c;谢谢&#xff01;在复习Java八股文的过程中&#xff0c;有两位老哥的博文对我帮助比较大&#xff0c…

力扣(LeetCode)10. 正则表达式匹配(C++)

动态规划 基于闫式dp分析法。 综上 , f[i][j]{f[i−1][j−1]&&(s[i]p[j]∣∣′.′p[j])if p[j]≠∗f[i][j−2]∣∣(f[i−1][j]&&(s[i]p[j−1]∣∣′.′p[j−1])if p[j]∗f[i][j] \begin {cases} f[i-1][j-1] ~~\&\& ~~(s[i]p[j] ~||~ .p[j])&…

鲁棒局部均值分解 (RLMD)附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

安卓手机丢了,危险了!意外的7万美元的谷歌Pixel绕过锁屏

我发现了一个影响似乎所有谷歌Pixel手机的漏洞&#xff0c;如果你把任何锁定的Pixel设备给我&#xff0c;我可以把它解锁还给你。这个漏洞刚刚在2022年11月5日的安全更新中得到修复。 该问题允许有物理权限的攻击者绕过锁屏保护&#xff08;指纹、PIN等&#xff09;&#xff0c…

英国博士后招聘|林肯大学—植物-土壤相互作用

英国林肯大学博士后职位—植物 -土壤相互作用 林肯大学&#xff08;University of Lincoln&#xff09;&#xff0c;简称“UoL”&#xff0c;是英国一所公立综合性研究型大学&#xff0c;创办于1861年&#xff0c;后与多所大学合并更名为林肯大学。 《独立报》曾评价林肯大学为…

Mysql之性能优化分析

一、避免死锁 1.1、导致mysql死锁的要素 1、两个或者两个以上事务。 2、锁资源只能被同一个事务持有或者多个事务竞争的锁是不兼容的&#xff0c;比如排他锁和共享锁、排他锁和排他锁。 3、每个事务都已经持有锁并且申请新的锁。 4、事务之间因为持有锁和申请锁导致彼此循环等…

Cesium 简介

Cesium 简介 一、Cesium 是什么&#xff1f; Cesium 是一个开源 JavaScript 库&#xff0c;用于 3D , 2D , 2.5D 地图可视化。 Cesium 由 AGI 公司计算机图形开发小组与 2011 年研发的。 Cesium 一词来源于化学元素铯&#xff0c;铯是制造原子钟的关键元素&#xff0c;研发小组…

Vue框架实现对前端数据表的增删改查(第六课)

前端对数据的增删改查你看到过吗?今天带你来实现一下在前端就页面上实现对数据的增伤改查 第一部分功能演示 先看下页面效果 增加一条数据 删除一条数据 修改一条数据 查询指定的一条记录 第二部分 上面的功能该如何实现的呢&#xff01;首先又是页面改如何展示…

吃豆人游戏-第12届蓝桥杯Scratch选拔赛真题精选

[导读]&#xff1a;超平老师计划推出Scratch蓝桥杯真题解析100讲&#xff0c;这是超平老师解读Scratch蓝桥真题系列的第79讲。 蓝桥杯选拔赛每一届都要举行4~5次&#xff0c;和省赛、国赛相比&#xff0c;题目要简单不少&#xff0c;再加上篇幅有限&#xff0c;因此我精挑细选…

基于PHP+MySQL的在线投票系统设计与实现

随着时代的发展,人们需要获取更多的信息和用户的意见,这时候就会产生一个投票。转托管模式都是人工发传单,然后填写来进行。但是随着互联网的发展,这种模式已经逐渐被淘汰,人们越来越希望通过更加方便快捷的方式来进行在线投票。这就是在线投票系统,这是我们设计本系统一个初衷…

传奇GOM/GEE微端配置外网架设教程

传奇GOM/GEE微端配置外网架设教程 我是艾西&#xff0c;经常听到一些小伙伴说微端需要购买&#xff1f;其实大家理解错了&#xff0c;传奇微端自己就可以搭建的是不需要购买的&#xff0c;如果是说单独架设到另外一台服务器上那么这才是需要收费的俗称微端服务器。主要用于跑带…

Nginx+keeplived高可用

目录 一、环境准备 1、准备3台centos服务器 2、安装软件 二、keepalived配置 三、nginx进程监视脚本 一、环境准备 1、准备3台centos服务器 服务器名主机名IPVIPNginx代理服务器proxy1192.168.1.10192.168.1.100Nginx代理服务器proxy2192.168.1.20web网站服务器web1192.…

TikTok 的 TAP好货分销服务商招募啦,最新入驻政策速来了解

众所周知&#xff0c;以抖音快手平台为主的内容电商对于国内来说已经司空见惯&#xff0c;内卷到极致&#xff0c;但是对于国外来说还是一个比较新奇的领域。 而海外版抖音 TikTok就成功实现了内容电商的出海&#xff0c;将电商直播带出国门&#xff0c;面向全世界。为了完善T…