矩阵最大路径与

题目描述

东九日在学习dp的时候,解决了经典的矩阵最大路径和问题;

他向队友小夨阐述他的感悟,dp要做的就是感受解空间;

为了防止东九日赛上犯病,小夨决定出一道改编版检查东九日的实力。

以上为题目背景;

给定一个 n 行 m 列的矩阵 a,初始的时候,你在矩阵左上角 (1,1) 的位置(即第 1 行第 1 列),你想要通过移动到达矩阵右下角 (n,m)的位置(即第 n 行第 m 列);
 

若你在位置 (x,y),那么你可以进行以下移动:

①:向左移动到达位置 (x,y−1);

②:向右移动到达位置 (x,y+1);

③:向上移动到达位置 (x−1,y);

④:向下移动到达位置 (x+1,y);

注意:每个位置可以重复到达多次,但你不可以走出矩阵!



假设你从位置 (1,1) 到达位置(n,m) 经过了这样一条长度为 k 路径(x1,y1)→(x2,y2)→...→(xk−1,yk−1)→(xk,yk),那么这条路径的权值就定义为 ax1,y1 & ax2,y2 &...& axk−1,yk−1 & axk,yk  & 表示 “按位与”;


请你求出所有的从位置 (1,1) 到位置 (n,m)的路径中,权值最大的那条路径,其对应的权值是多少?

输入描述:

第一行输入两个整数 n,m (1≤n×m≤10^5),表示矩阵的大小为 n 行,m 列;

接下来输入 n 行,每一行输入 m 个整数 ai,1,ai,2,...,ai,m (0≤ai,j≤10^9),分别表示矩阵的每个位置上元素的值。

输出描述:

输出一个整数ans,表示最大的路径权值。

示例1

输入

3 3
1 1 1
0 0 1
0 0 1

输出

1

#include<bits/stdc++.h>
using namespace std;
#define fp(i,a,b) for(int i=a;i<=b;i++)
#define PII pair<int,int>
//typedef long long ll;
#define int long long
typedef double db;
const int N=1e6+10;
const int M=505;
const int mod=1e9+7;
int n,m;
int a[N];
bool tr[N],u[N];
int id(int x,int y)
{return (x-1)*m+y;
} 
void dfs(int x,int y)
{if(!tr[id(x,y)])return;if(u[id(x,y)])return;u[id(x,y)]=1;if(x>1)dfs(x-1,y);if(x<n)dfs(x+1,y);if(y>1)dfs(x,y-1);if(y<m)dfs(x,y+1);
}
bool check(int mid)
{memset(u,0,sizeof u);memset(tr,0,sizeof tr);for(int i=1;i<=n*m;i++){if((a[i]&mid)==mid)tr[i]=1;}dfs(1,1);return u[n*m];
}
void solve()
{ cin>>n>>m;int ans=0;fp(i,1,n){fp(j,1,m){cin>>a[id(i,j)];}}for(int t=30;t>=0;t--){if(check(ans|(1<<t)))ans|=1<<t;}cout<<ans<<"\n";
}
signed main()
{cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);int T;
//    cin>>T;T=1;while(T--){solve();}return 0;
}

思路:从2^30一直到2^0,看1*1能不能到n*m。

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

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

相关文章

北方天途航空——无人船、植保无人机及VR教学系统

4月29日&#xff0c;2019中国北京世界园艺博览会在北京的延庆区正式拉开大幕&#xff0c;这一场A1类的世界园艺博览会吸引了110个国家以及国际组织正式确认参展。北方天途航空技术发展(北京)有限公司受邀参与了此次世园会&#xff0c;并在博览会上应用无人船、植保无人机及VR虚…

网络七层模型之网络层:理解网络通信的架构(三)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

centos 7安装pgsql14

参考 yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm终端直接运行&#xff1a;yum install -y postgresql14-server 1. 初始化数据库 使用yum安装后&#xff0c;会在系统中创建一个postgres的无密码…

【快速解决】谷歌浏览器驱动的安装及selenium的安装

目录 快速安装Selenium 快速下载对应谷歌驱动 找不到对应版本号的解决方法 快速安装Selenium 安装 Selenium 环境就用下面的代码进行安装&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447; pip install selenium3.141.0 快速下载对应谷歌驱动 点击这个链接…

关于RPC

初识RPC RPC VS REST HTTP Dubbo Dubbo 特性&#xff1a; 基于接口动态代理的远程方法调用 Dubbo对开发者屏蔽了底层的调用细节&#xff0c;在实际代码中调用远程服务就像调用一个本地接口类一样方便。这个功能和Fegin很类似&#xff0c;但是Dubbo用起来比Fegin还要简单很多&a…

Mac上配置host

要在Mac上配置host&#xff0c;可以按照以下步骤进行操作&#xff1a; 打开终端&#xff1a;输入以下命令并按下回车键&#xff0c;以获取管理员权限&#xff1a; sudo nano /etc/hosts 这将打开一个文本编辑器&#xff0c;用于编辑hosts文件。 输入你想要配置的host记录。…

pe启动盘破解windows密码wins电脑登录密码修改重置

目录 1.进入电脑BIOS&#xff0c;设置电脑第一启动项为U盘启动2.进入微pe系统3.然后点击界面最左下方的Windows图标4.点击windows密码选择对应用户名称修改&#xff1b; 1.进入电脑BIOS&#xff0c;设置电脑第一启动项为U盘启动 把u盘插到要清除密码的电脑&#xff0c;然后开机…

Java语法学习 正则表达式

Java语法学习 正则表达式 大纲 具体案例 需求&#xff1a;使用正则表达式完成对文本的查询&#xff0c;regular expression&#xff08;正则表达式&#xff09; 源码解析group package com.wantian.regular;import java.util.regex.Matcher; import java.util.regex.Patt…

日新增百万数据clickhouse大数据解决方案记录分享

公司广告业务需求&#xff0c;需要多个维度统计每个应用的设备数&#xff0c;点击率&#xff0c;展示率&#xff0c;等相关数据&#xff0c;而且数据需要进行去重&#xff0c;我第一时间想到的是利用clickhouse来做统计&#xff0c;因为我们平台访问量比较大&#xff0c;用mysq…

C++(5): std::ofstream的使用

1. ofstream 之前讲到&#xff0c;ifstream具有将文件从硬盘中读进内存的功能。而ofstream则是执行反操作&#xff0c;它提供了将文件从内存写入磁盘的功能。 std::ofstream 是 C 标准库中用于文件输出的类&#xff0c;它提供了向文件写入数据的能力。std::ofstream 属于 <…

服务器上虚拟环境里的jupyter notebook连接不上kernal,显示not connection to kernel

问题描述 在服务器上新建了一个虚拟环境&#xff0c;下载了相关的包后&#xff0c;使用以下代码新建了kernal pip install ipykernel python -m ipykernel install --user --namepytorch-0.3.0然后输入jupyter notebook启动&#xff0c;却显示not connection to kernel 解决…

浅谈WPF之MVVM工具包

在之前的WPF示例中&#xff0c;都会用到一个MVVM框&#xff0c;也是一个比较常的MVVM框架&#xff0c;就是MVVM工具包【CommunityToolkit.Mvvm】&#xff0c;今天专门以一个简单的小例子&#xff0c;简述一下MVVM工具包的常见用法&#xff0c;仅供学习分享使用&#xff0c;如有…

选项式API和组合式API的区别

选项式(options) API 和组合式(composition) API两种不同的风格书写&#xff0c;Vue3 的组件可以使用这两种api来编写。 选项式API和组合式API的区别 选项式API 选项式 API&#xff0c;具有相同功能的放在一起&#xff0c;可以用包含多个选项的对象来描述组件的逻辑&…

WPF---1.入门学习

学习来源 布局 wpf布局原则 一个窗口中只能包含一个元素 不应显示设置元素尺寸 不应使用坐标设置元素的位置 可以嵌套布局容器 StackPanel-->表单条件查找布局 DataGrid wpf布局容器 StackPanel: 水平或垂直排列元素&#xff0c;Orientation属性分别: Horizontal / Vertic…

Java数据结构-ArrayList

目录 1. 初识集合框架2. ArrayList的介绍3. ArrayList的使用3.1 构造方法3.2 add3.3 addAll3.4 remove3.5 get3.6 set3.7 contains3.8 IndexOf3.9 lastIndexOf3.10 subList 4. ArrayList的遍历4.1 简单粗暴法4.2 循环遍历法4.3 迭代器 1. 初识集合框架 Java集合框架是Java编程…

图论记录之最短路迪杰斯特拉

简述思想 这个思想能用一句话来概括&#xff0c;精简到的极致:每次找到一个最短距离的点并更新起点到各个点的最短距离 如果要可视化的化&#xff0c;B站搜索Dijksra算法&#xff0c;有视频讲解 代码 这里是Acwing的851题&#xff0c;下面的有注释 import java.util.*;publ…

基于OneAPI+ChatGLM3-6B+FastGPT搭建LLM大语言模型知识库问答系统

搭建大语言模型知识库问答系统 部署OneAPI部署一个LLM模型部署嵌入模型部署FastGPT新建FastGPT对话应用新建 FastGPT 知识库应用 部署OneAPI 拉取镜像 docker pull justsong/one-api创建挂载目录 mkdir -p /usr/local/docker/oneapi启动容器 docker run --name one-api -d …

03 React 基础样式控制

在React中&#xff0c;有多种方式可以管理组件的样式&#xff0c;每种方式都有其优劣势。以下是一些常见的样式管理方法以及它们之间的比较&#xff1a; 内联样式&#xff08;Inline Styles&#xff09;&#xff1a; function MyComponent() {const style {color: red,backg…

粘包/半包及解决方案

一、粘包/半包介绍 1&#xff1a;粘包 粘包&#xff08;Packet Concatenation&#xff09;通常发生在基于流式传输协议&#xff08;如 TCP&#xff09;的通信中&#xff0c;因为 TCP 是面向流的传输协议&#xff0c;它不保证数据包的边界&#xff0c;而是将数据视为连续的字节…

C#面:C# 中的预定义特性有哪些

常见的 C# 预定义特性&#xff1a; [Obsolete]&#xff1a;用于标记已过时的代码或方法。当使用被标记为[Obsolete]的代码时&#xff0c;编译器会发出警告或错误。 [Serializable]&#xff1a;用于标记类&#xff0c;表示该类的对象可以被序列化为字节流&#xff0c;以便在网…