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

蓝桥杯宝石,考察数学。考察公式推导能力

这个题考察纯数学推导,我不会,但是可以解释别人的代码

 大体思路是先化简公式,最后得知s与a,b,c的最大公约数有关

所以我们的目标就是要寻找最大公约数,并且要找到三个数,所有我们要从大到小枚举所有最大公约数的可能。

#include<bits/stdc++.h>
using namespace std;
int main()
{
  int n;
  cin>>n;
  vector<int> q;
  map<int,int> mp;//为什么用map因为可能存在多个饱食度相同的情况如1 2 2 2 3
  int b;

  for(int i=0;i<n;i++)
  {
    cin>>b;
    q.push_back(b);
    mp[b]++;
  }//到这里都是输入数据的处理
  sort(q.begin(),q.end());//进行排序我们要寻找最大公约数,数组里面的每个数都可能是最大公约数
  int xx=q.size()-1;
  for(int i=q[xx];i>=1;i--)//从后往前枚举
  {
    int now[3];//我们需要找到三个数,题目要求
    int pos=0;
    for(int j=i;j<=q[xx];j+=i)//重点,枚举的边界是最大的宝石度,更大就没必要了,j+=i为什么呢。注意我们寻找的是以最大公约数为开头的三个数,要保证该数是最大公约数,就要让后面两个数是它的倍数。
    {
      if(mp[j]>0)//判断该数是否存在
      {
        int cont=mp[j];/将数存下来,下面应该都看的懂
        while(cont--)
        {
          now[pos++]=j;
          if(pos==3)
          {
            cout<<now[0]<<" "<<now[1]<<" "<<now[2];
            return 0;
          }
        }
      }
    }
  }
}

相关文章:

  • 设计模式(行为型)-命令模式
  • 【MySQL】MySQL数据存储机制之存储引擎
  • Vim 编辑器-实现基础跳转
  • MCP 开放协议
  • 55-交换机堆叠
  • P4924 [1007] 魔法少女小Scarlet
  • 模板初阶:
  • 判断一个数是否是质数(素数)
  • 【递归与动态规划(DP) C/C++】(1)递归 与 动态规划(DP)
  • 图书管理借阅系统(豪华版)
  • python二级每日十题(1)
  • css盒子模型第二章(margin padding border content)
  • 从零开始 | C语言基础刷题DAY3
  • 深入解析Hosts文件:从原理到实战应用(文末附Qwins下载)
  • Couldn‘t install PSEXESVC service: 拒绝访问。
  • 宇树科技纯技能要求总结
  • 大话数据结构第一章,数据结构绪论笔记
  • 项目实战系列:基于瑞萨RA6M5构建多节点OTA升级-系统设计<一>
  • DQN 玩 2048 实战|第三期!优化网络,使用GPU、Env奖励优化
  • 整形在内存中的存储(例题逐个解析)
  • “11+2”复式票,宝山购彩者领走大乐透1170万头奖
  • 香港根据《维护国家安全条例》订立附属法例
  • 万科:存续债券均正常付息兑付
  • 国内首例侵入式脑机接口系统前瞻性临床试验:受试者已能用意念玩游戏
  • 中美经贸高层会谈在瑞士日内瓦举行
  • 伊美第四轮核问题谈判开始