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

蓝桥杯备考:数学问题模运算---》次大值

这道题,由于数据规模是2e5,我们直接暴力的话是一定会超时的

所以我们得想个办法,我们先把所有的数排序去重

我们先想想如果要找最大值,怎么找

这时候我们要分类讨论

①如果是大数模小数,那结果肯定是小于小数的,我们让小数最大,但是又必须得让大数比小数大,所以小数只能选择a[n-1] 大数选择a[n]也就是a[n]%a[n-1],这个式子模出来的值一定是小于a[n-1]的

②如果是小数模大数,结果就是小数,我们要让小数最大,也就是a[n-1]%a[n] 这个时候模出来的值就是a[n-1] 所以最大值就是a[n-1]%a[n]

but,我们要求的不是最大值而是次大值

我们继续分类讨论

①如果是大数模小数,结果肯定是小于小数的,因为最大值是a[n-1]%a[n],我们的次大值一定是小于a[n-1]的,所以应该是a[n]%a[n-1],结果小于a[n-1]

②如果是小数模大数,结果就是小数,这时候我们得让小数第二大,也就是a[n-2]%a[n],结果就是a[n-2]

最后我们对这两种情况取max,就是我们的答案了!
 

#include <iostream>
#include <algorithm>
using namespace std;
int n;
const int N = 2e5+10;
int a[N];
int main()
{
	cin >> n;
	for(int i =1;i<=n;i++)
	{
		cin >> a[i];
	}
	sort(a+1,a+1+n);
	n = unique(a+1,a+1+n) - (a+1);
	cout << max(a[n-2]%a[n],a[n]%a[n-1]);
	
	return 0;
}


http://www.kler.cn/a/593938.html

相关文章:

  • DeepSeek重构产业生态:餐饮、金融与短视频的智能跃迁
  • SAP-ABAP:SAP系统架构技术白皮书
  • 注册安全工程师考试科目有哪些?
  • 第J3周:DenseNet121算法实现01(Pytorch版)
  • 部分标签数据集生成与过滤特定标签方法
  • AcWing 838:堆排序 ← 数组模拟
  • 双碳战略下的电能质量革命:解码电力系统的健康密码
  • oracle 索引
  • 世界职业院校技能大赛(软件测试)技术创新思路分享(二)
  • VSCode C/C++ 开发环境完整配置及常见问题
  • Android Launcher3终极改造:全屏应用展示实战!深度解析去除Hotseat的隐藏技巧
  • 数据结构之栈(C语言)
  • 轨道交通DSP+FPGA主控板(6U)板卡,支持逻辑控制、数据处理、通信管理、系统安全保护切换等功能
  • NET6 WebApi第5讲:中间件(源码理解,俄罗斯套娃怎么来的?);Web 服务器 (Nginx / IIS / Kestrel)、WSL、SSL/TSL
  • 【01-驱动学习】
  • 华为流程体系建设与运营(123页PPT)(文末有下载方式)
  • 【Spring 默认是否管理 Request 和 Session Bean 的生命周期?】
  • Android Coil3 Fetcher preload批量Bitmap拼接扁平宽图,Kotlin
  • 头歌 JAVA 桥接模式实验
  • GitHub Actions上关于“Cannot Find Matching Keyid”或“Corepack/PNPM Not Found”的错误