蓝桥杯2024年第十五届省赛

news/2024/10/22 14:42:50/

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.ppmy.cn/news/1425764.html

相关文章

python 贪心算法 动态规划实现 跳跃游戏ll【力扣题45】

作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 欢迎加入社区&#xff1a;码上找工作 作者专栏每日更新&#xff1a; LeetCode解锁1000题: 打怪升级之旅 python数据分析…

<个人笔记>基础算法模板题

1.基础算法 &#xff08;1&#xff09;一维前缀和 #include<iostream>using namespace std;const int N 1e510;int p[N],res[N]; int n,Q,l,r;int main() {cin >> n >> Q;for(int i 1;i<n;i){cin >> p[i];res[i] res[i - 1] p[i];}while(Q--)…

亚马逊云科技AWS免费3门网课+5门实验+证书重考券福利

亚马逊云科技AWS最新官方福利活动: AWSome Day&#xff0c;适用于正在备考AWS Practitioner认证&#xff0c;或者刚刚上手学习AWS的小伙伴们&#xff0c;不仅可以白嫖AWS官方精品在线课程&#xff0c;还能不花钱使用AWS服务做实验。 小李哥点评: 虽然福利不如以前的Awsome Day活…

C++修炼之路之继承<二>

目录 一&#xff1a;子类的六大默认成员函数 二&#xff1a;继承与友元 三&#xff1a;继承与静态成员 四&#xff1a;复杂的继承关系菱形继承菱形虚拟继承 1.单继承 2.多继承 3.菱形继承&#xff1b;一种特殊的多继承 4.菱形虚拟继承 5.虚拟继承解决数据冗余和二…

MySQL 8.0 vs MySQL 5.7: 详细比较

MySQL 8.0 vs MySQL 5.7: 详细比较 MySQL是世界上最流行的开源关系数据库之一&#xff0c;随着技术的进步&#xff0c;每个新版本都带来了许多重要的更新和改进。在本文中&#xff0c;我们将深入探讨MySQL 8.0和5.7两个版本之间的主要差异&#xff0c;涵盖从性能改进、新特性到…

如何用JAVA如何实现Word、Excel、PPT在线前端预览编辑的功能?

背景 随着信息化的发展&#xff0c;在线办公也日益成为了企业办公和个人学习不可或缺的一部分&#xff0c;作为微软Office的三大组成部分&#xff1a;Word、Excel和PPT也广泛应用于各种在线办公场景&#xff0c;但是由于浏览器限制及微软Office的不开源等特性&#xff0c;导致…

Spring Boot 中 Controller 接口参数注解全攻略与实战案例详解

引言 在 Spring Boot 应用程序中&#xff0c;Controller 是 MVC 架构模式中的核心组件之一&#xff0c;负责处理 HTTP 请求并返回响应结果。为了更好地映射请求、解析请求参数、执行业务逻辑和生成视图或 JSON 数据&#xff0c;Controller 中广泛使用了各种注解。本文将全面梳…

现代软件为什么要采用微服架构

现代软件采用微服务架构是为了解决传统单体架构在开发、部署和维护大型应用时面临的一系列问题。以下是采用微服务架构的主要优势&#xff1a; 1. **模块化和组件化**&#xff1a;微服务通过将应用拆分为一系列小型、松耦合的服务来提高模块化水平。每个服务都是围绕特定的业务…