2024icpc武汉站邀请赛F.Custom-Made Clothes(交互题)

devtools/2024/9/22 13:11:28/

2024 i c p c 武汉站邀请赛 F . C u s t o m − M a d e C l o t h e s \Huge{2024icpc武汉站邀请赛F.Custom-Made Clothes} 2024icpc武汉站邀请赛F.CustomMadeClothes

文章目录

    • 题意
    • 思路
    • 标程

题目链接:F. Custom-Made Clothes

题意

本题是一道交互题。

给出一个 n × n n\times n n×n的矩阵, a i − 1 , j ≤ a i , j , a i , j − 1 ≤ g i , j , ( 1 ≤ a i , j ≤ n 2 ) a_{i-1,j} \le a_{i,j},a_{i,j-1} \le g_{i,j},(1\le a_{i,j}\le n^2) ai1,jai,j,ai,j1gi,j(1ai,jn2) 1 ≤ n ≤ 1000 1\le n \le 1000 1n1000

题目首先给出 n , k n,k n,k,求矩阵中第k大的值,提供不超过 50000 50000 50000次查询。

题目有两种输出:

  • ? i j x:表示查询 a i , j ≤ x a_{i,j} \le x ai,jx。返回 0 0 0 1 1 1
  • ! x:表示输出结果,即 x x x为第 k k k大的值。

思路

通过观察发现,矩阵每行和每列都具有单调性,并且答案具有单调性。

  • 因此我们可以二分答案,然后计算出当前答案为第几大的值。

  • 在计算当前答案为第几大时,直接计算显然会超过交互次数,因此我们根据每行每列的单调性来计算。

  • 对于二分过程中的 m i d mid mid,如果第 i i i行第 j j j列后面都大于 m i d mid mid,那么第 i + 1... n i+1...n i+1...n行第j列后都会大于 m i d mid mid

  • 优化后减少至少一半询问,则不会超过查询次数。

标程

bool query(int x, int y, int v) {cout << "? " << x << ' ' << y << ' ' << v << endl;fflush(stdout);int t; cin >> t;return t;
}void Solved() { int n, k; cin >> n >> k;k = n * n - k + 1;int l = 1, r = n * n, mid, res = 1;while(l <= r) {mid = l + r >> 1;int now = n, tmp = 0;for(int i = 1; i <= n; i ++ ) {while(now >= 1 && query(i, now, mid) == 0) now --;tmp += now;if(tmp >= k) break;}if(tmp >= k) r = mid - 1, res = mid;else l = mid + 1;}cout << "! " << res << endl;
}

http://www.ppmy.cn/devtools/39177.html

相关文章

Yii2 自动生成php代码

文档地址&#xff1a;入门&#xff08;Getting Started&#xff09;: 用 Gii 生成代码&#xff08;Generating Code with Gii&#xff09; - Yii 2.0 权威指南 - 文档 - Yii Framework 中文网 找到配置文件&#xff0c;以我的项目为例&#xff1a; 因为的是开启了路由美化所以访…

二分查找(Binary Search)

二分查找&#xff08;Binary Search&#xff09;是一种在有序数组或有序区间中查找特定元素的高效算法。其基本思想是每次都通过与区间的中间元素比较&#xff0c;将待查找的区间缩小为之前的一半&#xff0c;直到找到目标值或区间被缩小为零。以下是二分查找的基本步骤&#x…

[性能优化] ScrollView视图优化为循环列表

问题描述&#xff1a; 原先商城的物品栏中的item 是load在一个scrollView 下&#xff0c;用于滑动查看。仅仅在父级panel下是使用了NGUI原生的scrollview 组件&#xff0c;随着商场物品列表中新物品的增多。panel下加载的实例也非常庞大。而大部分的实例用户也无法看到&#x…

泰迪科技2024中职大数据实训室方案解读

中职在大数据专业建设所遇到的困难 数据、信息安全、人工智能等新信息技术产业发展迅猛&#xff0c;人才极其匮乏&#xff0c;各个中职院校纷纷开设相应的专业方向。但是&#xff0c;绝大多数院校因为师资和积累问题&#xff0c;在专业建设规划、办学特色提炼、创新教学模…

61-ARM与FPGA间SPI通信电路设计

视频链接 ARM与FPGA间SPI通信电路设计01_哔哩哔哩_bilibili ARM与FPGA间SPI通信电路设计 第22课&#xff1a;SPI Flash 电路设计 第65课&#xff1a;实战S1-FPGA板级实战导学 1、SPI简介 1.1、SPI概述 SPI是(Serial Peripheral Interface) 串行外设接口&#xff0c;由Mot…

Linux -- 日志

一 日志的重要性 在之前的编程经历中&#xff0c;如果我们的程序运行出现了问题&#xff0c;都是通过 标准输出 或 标准错误 将 错误信息 直接输出到屏幕上&#xff0c;以此来排除程序中的错误。 这在我们以往所写的程序中使用没啥问题&#xff0c;但如果出错的是一个不断在运行…

101_Linux文件挂载系统相关

一、文件系统简介 传统的磁盘与文件系统应用中,一个分区就只能够被格式化成为一个文件系统,所以我们可以说一个文件系统就是一个硬盘分区。 随着新技术的出现如LMM与软件磁盘阵列software raid),这些技术可以将一个分区格式化为多个文件系统(例如LWM),也能够将多个分区合成一…

新能源 锂电池行业创业的财富方案,锂电池回收实战攻略课(36节课)

实战攻略 12年锂电池回收行业经验与坑全收录 课程内容&#xff1a; 001-课程介绍.mp4 002-锂电池的全种类认识.mp4 003-废品锂电池到级片粉末价值估算,mp4 004-锂电池的生产应用回收,mp4 005-梯次回收到粉未提纯全流程,mp4 006-锂电池行业术语,mp4 007-回收所需必备工具…