Codeforces 2021 C Those Who Are With Us

[Problem Discription]\color{blue}{\texttt{[Problem Discription]}}[Problem Discription]

给定一个 n×mn \times mn×m 的表格 ai,ja_{i,j}ai,j,你可以恰好进行一次如下操作:

  1. 选择一个格点 (r,c)(r,c)(r,c)
  2. 对于所有满足 i=ri=ri=r 或者 j=cj=cj=c 的格点 (i,j)(i,j)(i,j),使 ai,j←ai,j−1a_{i,j} \leftarrow a_{i,j}-1ai,jai,j1

求操作后所有格点最大值最小可能为多少。

多组数据,满足 1≤n×m≤1×1051 \leq n \times m \leq 1 \times 10^{5}1n×m1×105,且所有数据的 n×mn \times mn×m 的总和不超过 2×1052 \times 10^{5}2×105

[Analysis]\color{blue}{\texttt{[Analysis]}}[Analysis]

记原来矩阵的最大值为 ttt,显然由于只能进行一次操作,且一次操作最多让一个格点的值减小 111,所以最终答案要么是 ttt,要么是 (t−1)(t-1)(t1)

思考哪些情况会让答案为 (t−1)(t-1)(t1)

显然,当所有取得最大值的格点要么分布在第 rrr 行要么分布在第 ccc 列时,我们可以通过一次操作 (r,c)(r,c)(r,c) 把所有最大值都干掉;否则答案为 ttt 不变。

统计每一行每一列有多少个最大值,分别记为 cntri,cntcj\text{cntr}_{i},\text{cntc}_{j}cntri,cntcj,显然第 iii 行和第 jjj 列的最大值的个数即为:

f(i,j)=cntri+cntcj−[ai,j=max⁡1≤i≤n,1≤j≤m{ai,j}]f(i,j)=\text{cntr}_{i}+\text{cntc}_{j}- \left [a_{i,j}=\max\limits_{1 \leq i \leq n, 1 \leq j \leq m} \{a_{i,j} \}\right ]f(i,j)=cntri+cntcj[ai,j=1in,1jmmax{ai,j}]

显然预先统计出最大值的个数 cnt\text{cnt}cnt,如果某个格点 (i,j)(i,j)(i,j) 满足 f(i,j)=cntf(i,j)=\text{cnt}f(i,j)=cnt,那么这个 (i,j)(i,j)(i,j) 就是我们需要的格点。

Code\color{blue}{\text{Code}}Code

const int N=1e5+100;int OneZDoubleY(){int n=read(),m=read();vector<int> a[n+2];for(int i=1;i<=n;i++){a[i].push_back(0);for(int j=1;j<=m;j++)a[i].push_back(read());}int maxn=a[1][1];for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)ckmax(maxn,a[i][j]);int cnt=0;vector<int> cntr(n+1),cntc(m+1);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if (a[i][j]==maxn){++cntr[i];++cntc[j];++cnt;}bool flag=false;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){int t=cntr[i]+cntc[j];if (a[i][j]==maxn) t--;if (t==cnt){flag=true;break;}}return printf("%d\n",flag?maxn-1:maxn);
}
//大家可以挑战一下不用 vector,用 malloc 来处理int main(){int T=read();while (T--) OneZDoubleY();return 0;
}

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

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

相关文章

chrome插件合集

最近一段时间呢(不到一年)&#xff0c;实现了大概二十几个chrome插件。很多人不知道的是&#xff0c;其实开发插件很解压&#xff0c;就好像是我喜欢沿着公园的小路散步一样&#xff0c;每开发一个插件带给我的成就感和快乐都是独特的。我依然记得自己开发出第1个插件时的快乐&…

【机器学习深度学习】模型微调的基本概念与流程

目录 前言 一、什么是模型微调&#xff08;Fine-tuning&#xff09;&#xff1f; 二、预训练 vs 微调&#xff1a;什么关系&#xff1f; 三、微调的基本流程&#xff08;以BERT为例&#xff09; 1️⃣ 准备数据 2️⃣ 加载预训练模型和分词器 3️⃣ 数据编码与加载 4️…

大语言模型预训练数据——数据采样方法介绍以GPT3为例

大语言模型预训练数据——数据采样方法介绍以GPT3为例一、数据采样核心逻辑二、各列数据含义一、数据采样核心逻辑 这是 GPT - 3 训练时的数据集配置&#xff0c;核心是非等比例采样——不按数据集原始大小分配训练占比&#xff0c;而是人工设定不同数据集在训练中被抽取的概率…

针对同一台电脑,为使用不同 SSH Key 的不同用户分别设置 Git 远程仓库凭据的操作指南

一、准备工作 生成多对 SSH Key 为每个用户&#xff08;如“个人”、“公司”&#xff09;生成一对独立的 SSH Key。 示例&#xff08;在 Git Bash 或 Linux 终端中执行&#xff09;&#xff1a; # 个人 ssh-keygen -t rsa -b 4096 -C "personalexample.com" -f ~/.…

【V5.0 - 视觉篇】AI的“火眼金睛”:用OpenCV量化“第一眼缘”,并用SHAP验证它的“审美”

系列回顾&#xff1a; 在上一篇 《给AI装上“写轮眼”&#xff1a;用SHAP看穿模型决策的每一个细节》 中&#xff0c;我们成功地为AI装上了“透视眼镜”&#xff0c;看穿了它基于数字决策的内心世界。 但一个巨大的问题暴露了&#xff1a;它的世界里&#xff0c;还只有数字。 它…

Open3D 基于最大团(MAC)的点云粗配准

MAC 一、算法原理1、原理概述2、实现流程3、总结二、代码实现三、结果展示博客长期更新,本文最新更新时间为:2025年7月1日。 一、算法原理 1、原理概述 最大团(Maximal Cliques, MAC)法在点云配准中的应用,是近年来解决高离群值(outlier)和低重叠场景下配准问题的重要…

Science Robotics发表 | 20m/s自主飞行+避开2.5mm电线的微型无人机!

从山火搜救到灾后勘察&#xff0c;时间常常意味着生命。分秒必争的任务要求无人机在陌生狭窄环境中既要飞得快、又要飞得稳。香港大学机械工程系张富教授团队在Science Robotics(2025)发表论文“Safety-assured High-speed Navigation for MAVs”提出了微型无人机的安全高速导航…

【数据分析】如何在PyCharm中高效配置和使用SQL

PyCharm 作为 Python 开发者的首选 IDE&#xff0c;其 Professional 版本提供了强大的数据库集成功能&#xff0c;让开发者无需切换工具即可完成数据库操作。本文将手把手教你配置和使用 PyCharm 的 SQL 功能。 一、安装和配置 PyCharm 老生常谈&#xff0c;第一步自然是安装并…

OpenShift AI - 使用 NVIDIA Triton Runtime 运行模型

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.18 OpenShift AI 2.19 的环境中验证 文章目录 准备 Triton Runtime 环境添加 Triton Serving Runtime运行基于 Triton Runtime 的 Model Server 在 Triton Runtime 中运行模型准备模型运行…

物联网数据安全区块链服务

物联网数据安全区块链服务 下面是一个专为物联网数据安全设计的区块链服务实现&#xff0c;使用Python编写并封装为RESTful API。该服务确保物联网设备数据的不可篡改性、可追溯性和安全性。 import hashlib import json import time from datetime import datetime from uui…

数据集-目标检测系列- 卡车 数据集 truck >> DataBall

数据集-目标检测系列- 卡车 数据集 truck &#xff1e;&#xff1e; DataBall贵在坚持&#xff01;* 相关项目1&#xff09;数据集可视化项目&#xff1a;gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/overview2&#xff09;数据集训练、推理相关项目&…

vue/微信小程序/h5 实现react的boundary

ErrorBoundary react的boundary实现核心逻辑无法处理的情况包含函数详细介绍getDerivedStateFromError和componentDidCatch作用为什么分开调用 代码实现&#xff08;补充其他异常捕捉&#xff09;函数组件与useErrorBoundary&#xff08;需自定义Hook&#xff09; vue的boundar…

Day113 切换Node.js版本、多数据源配置

切换Node.js版本 1.nvm简介nvm(Node Version Manager)&#xff0c;在Windows上管理Node.js版本&#xff0c;可以在同一台电脑上轻松管理和切换多个Node.js版本 nvm下载地址&#xff1a;https://github.com/coreybutler/nvm-windows/2.配置nvm安装之后检查nvm是否已经安装好了&a…

应急响应靶机-linux2-知攻善防实验室

题目&#xff1a; 1.提交攻击者IP2.提交攻击者修改的管理员密码(明文)3.提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)4.提交Webshell连接密码5.提交数据包的flag16.提交攻击者使用的后续上传的木马文件名称7.提交攻击者隐藏…

新手前端使用Git(常用命令和规范)

发一篇文章来说一下前端在开发项目的时候常用的一些git命令 注&#xff1a;这篇文章只说最常用的&#xff0c;最下面有全面的 一&#xff1a;从git仓库拉取项目到本地 1&#xff1a;新建文件夹存放项目代码 2&#xff1a;在git上复制一下项目路径&#xff08;看那个顺眼复制…

【面试题】常用Git命令

【面试题】常用Git命令1. 常用Git命令1. 常用Git命令 1.git clone git clone https://gitee.com/Blue_Pepsi_Cola/straw.git 2.使用-v选项&#xff0c;可以参看远程主机的网址 git remote -v origin https://ccc.ddd.com/1-java/a-admin-api.git (fetch) origin https://ccc.…

Webpack构建工具

构建工具系列 Gulp构建工具Grunt构建工具Webpack构建工具Vite构建工具 Webpack构建工具 构建工具系列前言一、安装打包配置webpack安装样式加载器devtoolwebpack devtool 配置详解常见 devtool 值及适用场景选择建议性能影响注意事项 module处理流程module.rulesmodule.usemod…

重学前端002 --响应式网页设计 CSS

文章目录 css 样式特殊说明 根据在这里 Freecodecamp 实践&#xff0c;调整顺序后做的总结。 css 样式 body {background-color: red; # 跟background-image 不同时使用background-image: url(https://cdn.freecodecamp.org/curriculum/css-cafe/beans.jpg);font-family: san…

RabbitMQ简单消息监听和确认

如何监听RabbitMQ队列 简单代码实现RabbitMQ消息监听 需要的依赖 <!--rabbitmq--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId><version>x.x.x</version>&l…

Docker学习笔记:Docker网络

本文是自己的学习笔记 1、Linux中的namespace1.1、创建namespace1.2、两个namespace互相通信2、Docker中的namespace2.1 容器中的默认Bridge3、容器的三种网络模式1、Linux中的namespace Docker中使用了虚拟网络技术&#xff0c;让各个容器的网络隔离。好像每个容器从网卡到端…