当前位置: 首页 > news >正文

小红的矩阵【牛客tracker 每日一题】

小红的矩阵

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

小红有一个n × m n×mn×m大小的矩阵,矩阵第i ii行第j jj列的元素为i × j i×ji×j,小红想知道矩阵中第k kk小的元素是多少。

输入描述:

第一行三个整数n , m , k n,m,kn,m,k
1 ≤ n , m ≤ 1 0 5 , 1 ≤ k ≤ n × m 1≤n,m≤10^5,1≤k≤n×m1n,m105,1kn×m

输出描述:

输出一个整数表示答案。

示例1

输入:

3 3 4

输出:

3

说明:

矩阵为
1 2 3
2 4 6
3 6 9

解题思路

采用二分查找法确定矩阵中第k kk小的元素,初始设置左边界l = 0 l=0l=0、右边界r = k r=kr=k(因矩阵第k kk小元素必然不超过k kk),每次取中间值m i d midmid,统计矩阵中小于等于m i d midmid的元素数量(遍历每行i ii,该行符合条件的列数为m i n ( m , m i d / i ) min(m, mid/i)min(m,mid/i),累加所有行的数量得到s u m sumsum);若s u m ≥ k sum≥ksumk,说明m i d midmid可能是目标值或偏大,调整右边界r = m i d − 1 r=mid-1r=mid1并将m i d midmid记为候选结果,否则调整左边界l = m i d + 1 l=mid+1l=mid+1;该方法通过二分将问题转化为多次统计,每次统计时间复杂度O ( n ) O(n)O(n),二分次数约30 3030次,总复杂度为O ( n l o g k ) O(nlogk)O(nlogk),适配n nnm mm1 e 5 1e51e5的规模,最终候选结果即为矩阵中第k kk小的元素。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=1e5+10;intmain(){ll n,m,k;cin>>n>>m>>k;ll l=0,r=k;ll res=0;while(l<=r){ll mid=(l+r)>>1;ll sum=0;for(ll i=1;i<=n;i++)sum+=min(m,mid/i);if(sum>=k){r=mid-1;res=mid;}elsel=mid+1;}cout<<res<<endl;return0;}
http://www.jsqmd.com/news/73293/

相关文章:

  • 【服务器数据恢复】误操作删除HP ProLiant DL380配置导致教育机构数据丢失数据恢复案例 - 金海境科技
  • 寫代碼總是最簡單的
  • 14.结构型 - 外观模式 (Facade Pattern)
  • 【量子安全时代已来】:MCP SC-400必须掌握的6项核心技能
  • 系统编程之进程
  • 利用 PHPStudy(Mac 版)部署 Nuxt3 node-server 模式项目完整教程
  • 负载均衡-LVS 全解析
  • 基于偏置场校正的改进模糊c-均值聚类图像分割算法
  • 晶体塑性有限元显示动力学cpfem_vumat子程序(界面调用程序)
  • DAY23常见聚类算法
  • 最想考公的時刻
  • 26护士资格证报名照要求 制作+审核流程
  • Wan2.2-T2V-A14B生成动画短片全流程实录
  • Vite 如何优化项目的图片体积
  • 未來永遠不會到來
  • python爬虫获取手机评论数据 - f
  • Java Web 养老院管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • 用Playwright替代Selenium:更快更现代的浏览器自动化实战指南
  • AXI-A7.4.1 Overview
  • 嚴重似情侶講分手
  • 如有可能,你應該和本就幸福的人結婚
  • SpringBoot+Vue 一款BS美食网站平台完整项目源码+SQL脚本+接口文档【Java Web毕设】
  • 前端岗来了个男生,没两天就被劝退了
  • 以太网温湿度传感器五重告警方式如何协同工作?
  • 多场景应用支持, AgenticHub如何根据业务需求定制智能体
  • 总结咯
  • 上手RAG 四步构建最小可行系统(MVP) - yi
  • 生活大於工作
  • MATLAB基于LOO-PSO-KELM的微电阻点焊质量预测与工艺优化
  • Spring Boot + Kafka 实战:从入门到避坑,小白也能轻松上手!