蓝桥杯2024年第十五届省赛

news2024/11/21 0:13:29

E:宝石组合

根据给的公式化简后变为gcd(a,b,c)根据算数基本定理,推一下就可以了

然后我们对1到mx的树求约数,并记录约数的次数,我们选择一个最大的且次数大于等3的就是gcd

int mx;
vector<int> g[N];
vector<int> cnt[N];
int n;
int a[N];
void solve()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
        mx = max(mx, a[i]);
    }
    for (int i = 1; i <= mx; i++)
    {
        for (int j = 1; j * i <= mx; j++)
        {
            g[i * j].pb(i);
        }
    }
    vector<int> ans;
    sort(a + 1, a + 1 + n);
    for (int i = 1; i <= n; i++)
    {
        int t = a[i];
        for (auto ed : g[t])
        {
            cnt[ed].pb(t);
        }
    }
    int res = 0;
    for (int i = 1; i <= mx; i++)
        if (cnt[i].size() >= 3)
            res = i;
    for (int i = 0; i < 3; i++)
        cout << cnt[res][i] << " ";
}

H:拔河

赛时写的记录全部区间和,然后sort判断区间是否相交,但是时间复杂度好像有点问题,应该不是很对。

这里看了别人写的n_{}^{2}logn复杂度的做法,具体说就是,我们首先枚举右端点再左端点,然后对于枚举的每一段区间我们只看右边即可了,因为左边的合理的方案在左边已经枚举过了,然后二分找大于等于当前的,这里我们也只需看右边就行,不需要在减一了原理和上面相同,然后我们枚举玩一个右端点后,把以下一个右段点为起点的区间全部删去,这样满足了下一个循环

注意1需要特殊处理一下,一开始就不存进set里面

const int N = 1003;
int a[N];
int n;
int s[N];
signed main()
{
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
        scanf("%d", &a[i]), s[i] = s[i - 1] + a[i];

    multiset<int> S;
    for (int l = 1; l <= n; l++) // 提前把1全删去了
    {
        for (int r = l + 1; r <= n; r++)
        {
            S.insert(s[r] - s[l]);
        }
    }
    int res = 1e18;
    for (int r = 1; r < n; r++) // 但是l==1的时候并没有,所以一开始就调过1
    {
        for (int l = 1; l <= r; l++) // 本身也被r==l的时候删去了
        {
            int val = s[r] - s[l - 1];

            auto it = S.lower_bound(val);
            if (it != S.end())
            {
                int ans = abs(*it - val);
                res = min(res, ans);
            }
            if (it != S.begin())
            {
                it--;
                int ans = abs(*it - val);
                res = min(res, ans);
            }
        }
        for (int r2 = r + 1; r2 <= n; r2++) // 提前把下一个断点删去
        {
            S.erase(S.find(s[r2] - s[r]));
        }
    }
    printf("%lld\n", res);
    return 0;
}

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

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

相关文章

深入刨析 mysql 底层索引结构B+树

文章目录 前言一、什么是索引&#xff1f;二、不同索引结构对比2.1 二叉树2.2 平衡二叉树2.3 B-树2.4 B树 三、mysql 的索引3.1 聚簇索引3.2 非聚簇索引 前言 很多人看过mysql索引的介绍&#xff1a;hash表、B-树、B树、聚簇索引、主键索引、唯一索引、辅助索引、二级索引、联…

【面经】2024春招-云计算后台研发工程师2(三大行 TW等)

【面经】2024春招-云计算后台研发工程师2&#xff08;三大行 & TW等&#xff09; 文章目录 岗位与面经基础1&#xff1a;数据库 & 网络基础2&#xff1a;系统 & 网络编程模板3&#xff1a;算法 & 行测 岗位与面经 1、银行面经&#xff08;重点&#xff09; …

MinIO自定义权限控制浅研

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 MinIO搭建好之后&#xff0c;出于不同场景的需要&#xff0c;有时候需要对不同的用户和Bucket做一些针对性的权限控制。 MinIO的…

2024年短剧素材怎么下载

看到好看的短剧&#xff0c;想要把它剪辑出来&#xff0c;该怎么下载呢&#xff0c;本文就教大家用工具进行下载 需要工具的点击下面的链接 下载高手链接&#xff1a;https://pan.baidu.com/s/1qJ81sNBzzzU0w6DWf-9Nxw?pwdl09r 提取码&#xff1a;l09r --来自百度网盘超级…

CommunityToolkit.Mvvm笔记---ObservableValidator

ObservableValidator 是实现 INotifyDataErrorInfo 接口的基类&#xff0c;它支持验证向其他应用程序模块公开的属性。 它也继承自 ObservableObject&#xff0c;因此它还可实现 INotifyPropertyChanged 和 INotifyPropertyChanging。 它可用作需要支持属性更改通知和属性验证的…

Pytest精通指南(19)断言和异常处理

文章目录 Pytest assert 简介assert 应用场景assert 测试结果assert 基本用法Pytest raises 简介raises 用途和作用raises 与 try 的区别python代码中使用try在测试用例中使用try使用pytest.raises() Pytest assert 简介 断言&#xff08;Assertion&#xff09;是编程中的一个基…

代码随想录算法训练营Day4 | 24.两两交换链表中的节点、19删除链表中的第N个节点、链表相交、142.环形链表

24.两两交换链表中的节点 题目&#xff1a;给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 题目链接&#xff1a;24. 两两交换…

蛋白质亚细胞定位预测(生物信息学工具-017)

直奔主题&#xff0c;下面这张表图怎么制作&#xff0c;一般都是毕业论文hh&#xff0c;蛋白质的亚细胞定位如何预测&#xff1f; 01 方法 https://wolfpsort.hgc.jp/ #官网小程序&#xff0c;简单好用&#xff0c;不用R包&#xff0c;python包&#xff0c;linux程序&#x…

Linux的学习之路:14、文件(1)

摘要 有一说一文件一天学不完&#xff0c;细节太多了&#xff0c;所以这里也没更新完&#xff0c;这里部分文件知识&#xff0c;然后C语言和os两种的文件操作 目录 摘要 一、文件预备 二、c文件操作 三、OS文件操作 1、系统文件I/O 2、接口介绍 四、思维导图 一、文件…

C++笔记:类和对象(一)

类和对象 认识类和对象 先来回忆一下C语言中的类型和变量&#xff0c;类型就像是定义了数据的规则&#xff0c;而变量则是根据这些规则来实际存储数据的容器。类是我们自己定义的一种数据类型&#xff0c;而对象则是这种数据类型的一个具体实例。类就可以理解为类型&#xff0c…

在Ubuntu 22.04上安装配置VNC实现可视化

前面安装的部分可以看我这篇文章 在Ubuntu 18.04上安装配置VNC实现Spinach测试可视化_ubuntu18开vnc-CSDN博客 命令差不多一样&#xff1a; sudo apt update sudo apt install xfce4 xfce4-goodies sudo apt install tightvncserver这个时候就可以启动server了 启动server&…

音频---数字mic

一、常见的数字mic pdm麦通过codec芯片将数字麦转换为i2s信号输入到SOC 纯pdm麦就是直接进入SOC的pdm接口&#xff0c;走的是PDM信号&#xff0c;PDM信号就是两个线&#xff0c;一根数据线一根时钟线&#xff08;如顺芯ES7201/7202把MIC信号转换成PDM&#xff09;。 二、DMIC…

等保合规:保护企业网络安全的必要性与优势

前言 无论是多部网络安全法律法规的出台&#xff0c;还是最近的“滴滴被安全审查”事件&#xff0c;我们听得最多的一个词&#xff0c;就是“等保。” 只要你接触安全类工作&#xff0c;听得最多的一个词&#xff0c;一定是“等保。” 那么&#xff0c;到底什么是“等保”呢…

Docker部署SpringBoot服务(Jar包映射部署)

介绍 项目在docker部署运行以后&#xff0c;每次需更新jar包时&#xff0c;都得重新制作镜像&#xff0c;再重新制作容器。流程及其繁琐&#xff0c;效率极低。 以下步骤是在不更新镜像和容器的前提下&#xff0c;直接更新jar完成项目更新的操作。 不重新制作镜像部署 1. 创…

Python简化远程部署和系统管理的工具库之fabric使用详解

概要 Python Fabric库是一个用于简化远程部署和系统管理的工具库。它提供了一组简洁而强大的函数和工具,可以帮助开发者轻松地在多台远程主机上执行命令、上传文件、下载文件等操作,从而实现自动化部署和管理。 安装 要使用Python Fabric库,首先需要安装Fabric模块。可以通…

OpenHarmony实战开发-如何使用text组件的enableDataDetector属性实现文本特殊文字识别。

介绍 本示例介绍使用text组件的enableDataDetector属性实现文本特殊文字识别。 效果图预览 使用说明 1.进入页面&#xff0c;输入带有特殊文字的信息并发送&#xff0c;对话列表中文本会自动识别并标识特殊文字。目前支持识别的类型包括电话号码、链接、邮箱和地址&#xff…

Zynq7000系列中PL时钟使用

可编程逻辑&#xff08;PL&#xff09;具有自己的时钟管理生成和分配功能&#xff0c;并从处理器系统&#xff08;PS&#xff09;中的时钟发生器接收四个时钟信号&#xff08;如图25-10所示&#xff09;。 在嵌入式系统中&#xff0c;PL时钟的管理和分配对于确保逻辑电路的正确…

协程的意义(二)

1.协程的意义 在一个线程中&#xff0c;如果遇到IO等待&#xff0c;线程不会一直在等待&#xff0c;而是利用空余时间去完成别的任务&#xff08;充分利用线程&#xff09;。 示例&#xff1a;下载图片 ①普通的方式下载图片&#xff08;同步方式&#xff09; ②使用协程的方…

发泡机液压站比例阀放大器

发泡机液压站是提供动力和压力以驱动发泡机工作的系统。 发泡机是一种用于制备聚氨酯发泡材料的设备&#xff0c;而液压站则扮演着为发泡机提供必要动力的角色。具体来看&#xff0c;液压站的主要组成包括&#xff1a; 液压油箱&#xff1a;存储液压油&#xff0c;为系统提供液…

【Applied Algebra】隐藏子群问题和Shor算法的新视角

隐藏子群问题和Shor算法的新视角 隐藏子群问题是指给定一个群和一个函数,该函数对于群的一个子群是常数,并且对于子群的任何两个不同的左陪集有不同的值,问题是找到这个子群.HSP是许多量子算法的基础,其中最著名的是Shor的算法,它可以用来分解大整数和计算离散对数,这直接威胁到…