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

在哪里可以学习做网站友链交换

在哪里可以学习做网站,友链交换,网站托管服务商,多语网站蓝桥杯第十五届CB组省赛真题解析 一、宝石组合https://www.lanqiao.cn/problems/19711/learning/ 解题思路 题目要求找到三个数,使得它们的最大公约数(GCD)尽可能大,并在GCD相同的情况下选择数值最小的三个数。以下是分步解析&a…

蓝桥杯第十五届C++B组省赛真题解析


一、宝石组合https://www.lanqiao.cn/problems/19711/learning/

解题思路

题目要求找到三个数,使得它们的最大公约数(GCD)尽可能大,并在GCD相同的情况下选择数值最小的三个数。以下是分步解析:

  1. ​公式化简​​:

    • 通过数学推导,将三个数的最小公倍数(LCM)转化为涉及GCD的表达式:
      LCM ( a , b , c ) = a × b × c × GCD ( a , b , c ) GCD ( a , b ) × GCD ( b , c ) × GCD ( a , c ) \text{LCM}(a, b, c) = \frac{a \times b \times c \times \text{GCD}(a, b, c)}{\text{GCD}(a, b) \times \text{GCD}(b, c) \times \text{GCD}(a, c)} LCM(a,b,c)=GCD(a,b)×GCD(b,c)×GCD(a,c)a×b×c×GCD(a,b,c)
    • 题目中的目标函数 $ S $ 最终简化为三个数的最大公约数:
      S = GCD ( a , b , c ) S = \text{GCD}(a, b, c) S=GCD(a,b,c)
  2. ​预处理因数​​:

    • 对每个输入的数,计算其所有因数,并将该数记录到对应因数的列表中。
    • ​例如​​:数 12 的因数为 1, 2, 3, 4, 6, 12 ,每个因数的列表都会添加12。
  3. ​搜索最大GCD​​:

    • ​从大到小遍历所有可能的因数​​ d ,检查对应列表是否包含至少三个数。
    • 第一个满足条件的 $ d $ 即为最大可能的GCD,因为更大的因数已被遍历过且不满足条件。
  4. ​选择最小字典序​​:

    • 对满足条件的列表排序,取前三个最小的数,确保在相同GCD时结果字典序最小。

公式推导细节

  1. ​三数LCM的展开​​:
    LCM ( a , b , c ) = a ⋅ b ⋅ c GCD ( a , b ) ⋅ GCD ( b , c ) ⋅ GCD ( a , c ) ⋅ GCD ( a , b , c ) \text{LCM}(a, b, c) = \frac{a \cdot b \cdot c}{\text{GCD}(a, b) \cdot \text{GCD}(b, c) \cdot \text{GCD}(a, c)} \cdot \text{GCD}(a, b, c) LCM(a,b,c)=GCD(a,b)GCD(b,c)GCD(a,c)abcGCD(a,b,c)

  2. ​目标函数 $ S $ 的化简​​:
    S = LCM ( a , b , c ) ⋅ GCD ( a , b ) ⋅ GCD ( b , c ) ⋅ GCD ( a , c ) a ⋅ b ⋅ c = GCD ( a , b , c ) S = \frac{\text{LCM}(a, b, c) \cdot \text{GCD}(a, b) \cdot \text{GCD}(b, c) \cdot \text{GCD}(a, c)}{a \cdot b \cdot c} = \text{GCD}(a, b, c) S=abcLCM(a,b,c)GCD(a,b)GCD(b,c)GCD(a,c)=GCD(a,b,c)


算法步骤

  1. ​预处理​​:

    • 遍历每个数,分解其所有因数,将数存入对应因数的容器中。
    • ​时间复杂度​​:$ O(n \sqrt{\text{max_value}}) $,其中 $ n $ 是输入数的个数。
  2. ​枚举最大GCD​​:

    • 从最大可能的因数(如 $ 10^5 $)开始倒序遍历,找到第一个满足条件的因数。
    • ​时间复杂度​​:$ O(\text{max_value}) $。
  3. ​输出结果​​:

    • 对符合条件的三数排序,选择字典序最小的组合。
    • ​时间复杂度​​:$ O(k \log k) $,其中 $ k $ 是容器中数的数量。

#include <bits/stdc++.h>
using namespace std;
vector<int> a[100010];
int main()
{int n;cin >> n;for(int i=0; i<n; i++){int temp;cin >> temp;for(int j=1; j*j<=temp; j++){//找到temp的所有因数,并将temp插入到每个因数的后面if(temp%j==0){a[j].push_back(temp);if(j!=temp/j)//防止重复在开方数后插入tempa[temp/j].push_back(temp);}}}for(int i=100000;i>=0; i--){if(a[i].size()>=3){sort(a[i].begin(),a[i].end());cout << a[i][0]<< " "<<  a[i][1]<< " " << a[i][2];return 0;}}return 0;
}

二、拔河

https://www.lanqiao.cn/problems/19713/learning/

问题描述

给定一个表示同学力量值的数组,要求找到​​两个不同子数组和的最小差值​​。允许子数组重叠甚至完全重合(这意味着差值为0是可能的)。


算法思路

1. 前缀和计算
  • ​目标​​:快速计算任意子数组的和,避免双重循环累加。
  • ​方法​​:构建前缀和数组 pre[],其中 pre[i] 表示原数组前 i 项的和。
    p r e [ i ] = { a [ 0 ] if  i = 0 p r e [ i − 1 ] + a [ i ] if  i > 0 pre[i] = \begin{cases} a[0] & \text{if } i = 0 \\ pre[i-1] + a[i] & \text{if } i > 0 \end{cases} pre[i]={a[0]pre[i1]+a[i]if i=0if i>0
2. 生成所有子数组和
  • ​步骤​​:
    1. 通过双重循环枚举所有可能的子数组起止点 ij
    2. 使用前缀和公式计算区间 [i, j] 的和:
      sum ( i , j ) = { p r e [ j ] if  i = 0 p r e [ j ] − p r e [ i − 1 ] if  i > 0 \text{sum}(i, j) = \begin{cases} pre[j] & \text{if } i = 0 \\ pre[j] - pre[i-1] & \text{if } i > 0 \end{cases} sum(i,j)={pre[j]pre[j]pre[i1]if i=0if i>0
    3. 将所有子数组和存入集合 s 中。
3. 排序优化查找
  • ​关键性质​​:排序后的数组中,最小差值必然出现在相邻元素之间。
  • ​步骤​​:
    1. 对集合 s 排序。
    2. 遍历排序后的数组,计算相邻元素的差值,记录最小值。

时间复杂度

步骤时间复杂度
前缀和计算O(n)
生成所有子数组和O(n^2)
排序子数组和集合O(n^2 \log n)

​适用场景​​:当 $ n \leq 1000 $ 时,算法效率可接受。


代码实现

#include <bits/stdc++.h>
using namespace std;
vector<int> a[100010];
int main()
{int n;cin >> n;for(int i=0; i<n; i++){int temp;cin >> temp;for(int j=1; j*j<=temp; j++){//找到temp的所有因数,并将temp插入到每个因数的后面if(temp%j==0){a[j].push_back(temp);if(j!=temp/j)//防止重复在开方数后插入tempa[temp/j].push_back(temp);}}}for(int i=100000;i>=0; i--){if(a[i].size()>=3){sort(a[i].begin(),a[i].end());cout << a[i][0]<< " "<<  a[i][1]<< " " << a[i][2];return 0;}}return 0;
}
http://www.cadmedia.cn/news/6527.html

相关文章:

  • 怎么做网盘搜索引擎网站线上营销推广方式都有哪些
  • 网站建设一条龙怎么样淘客推广
  • 搭建高端网站免费广告推广
  • 网站平台专题如何制作世界最新新闻
  • ps做网站首页设计教程seo推广一年要多少钱
  • 上海网站建设不好海南百度总代理
  • 手机 wordpress html5泰安seo
  • 高端网站建设汉狮团队百度站内搜索
  • 辽宁省住房建设厅网站科技中心线上推广费用
  • 扬州做网站的网络公司地推接单在哪个平台找
  • 导航类网站模板好项目推荐平台
  • 商标转让交易网aso优化软件
  • 腾讯建设网站视频视频下载seoul是什么意思
  • 模板网站自助建站可以搜索任何网站的浏览器
  • 做网站需要基础吗东莞seo关键词排名优化排名
  • 杭州建设工程招投标赣州seo外包怎么收费
  • 网站搭建学什么专业发帖推广哪个平台好
  • 学习日常网站建设作业软件开发工具
  • 设计素材网站会员哪个最好网络优化论文
  • 单页面网站建设网络口碑推广公司
  • 公司网站建设的策划方案爱上链外链购买交易
  • 做网站需准备些什么软件流量精灵
  • 企业网站建设对网络营销的影响seo建站是什么意思
  • 快速做网站的软件百度指数查询平台
  • 网站制作技术人员如何进行网站性能优化?
  • 东莞seo收费逆冬seo
  • 网站开发调用别人网站的组件搜索引擎关键词怎么优化
  • 大同营销型网站建设费用关键词工具有哪些
  • 潍坊网站建设平台资深seo顾问
  • 河北省造价信息价查询seo综合查询爱站