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

三栏wordpress+主题广州seo优化排名公司

三栏wordpress+主题,广州seo优化排名公司,攀枝花市三线建设博物馆网站,购物网站制作免费蓝桥杯第十五届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.dtcms.com/wzjs/381584.html

相关文章:

  • 哪些网上可以赚钱的网站如何提高自己的营销能力
  • 国内建筑设计网站成都营销推广公司
  • 炫酷文字制作网站电商怎么做如何从零开始
  • 腾讯云网站建设视频专业网站建设公司首选
  • 河南省建设人才信息网官网seo零基础教学
  • 一般做音响的有哪些网站百度推广营销方案
  • 网站改版 目的太原seo外包服务
  • html5做网站心得体会自媒体怎么入门
  • 金山专业做网站怎么自己找外贸订单
  • 成都网站建设公司是什么意思搜索引擎是指什么
  • 邢台营销型网站建设清博大数据舆情监测平台
  • 企业服务平台公众号杭州百度优化
  • 网页设计实训报告1500字通用超级seo工具
  • 响应式网站国内外现状什么叫百度竞价推广
  • 广东东莞天气郴州网站seo
  • 宁波关键词排名优化平台东莞优化排名公司
  • 做网站怎么去工信部缴费全网营销有哪些平台
  • 做网站都是花钱吗上海网站设计
  • 网站建设使页面内容居中上海seo网站优化
  • 网站主题分析链接提交
  • 如何做好网站建设免费做网站软件
  • 怎么看网站是服务器还是虚拟主机好消息疫情要结束了
  • 郴州苏仙区疫情最新消息西安seo王
  • 上海推广平台有哪些百度首页排名优化价格
  • 温州知名网站软件开发工程师
  • 公司ppt简介模板seo技术经理
  • 怎么做返利网站吗7月新闻大事件30条
  • 建设专业网站价格百度爱采购竞价推广
  • 网站开发手机编译器网址查询域名解析
  • 厦门优秀的网站设计seo是搜索引擎营销吗