基础算法集训第01天:线性枚举

目录

成绩分析

存在连续三个奇数的数组

最大连续1的个数

有序数组中的单一元素

[P12163 [蓝桥杯 2025 省 C/Java A] 2025](#P12163 [蓝桥杯 2025 省 C/Java A] 2025)

三元组中心问题

企业组织结构优化

单词分析

成绩统计

[P12162 [蓝桥杯 2025 省 C/Java A/研究生组] 数位倍数](#P12162 [蓝桥杯 2025 省 C/Java A/研究生组] 数位倍数)

其他题目


成绩分析

cpp 复制代码
#include <iostream>
#include<algorithm>
using namespace std;
int main()
{
  int MAX=0;
  int MIN=100;
  double x=0;
  int n;
  cin>>n;
  int t;
  for(int i=0;i<n;i++){
    cin>>t;
    MAX=max(MAX,t);
    MIN=min(MIN,t);
    x+=t;
  }
  x/=(double)n;
  cout<<MAX<<endl<<MIN<<endl;
  printf("%.2lf",x);
  return 0;
}

存在连续三个奇数的数组

cpp 复制代码
class Solution {
public:
    bool threeConsecutiveOdds(vector<int>& arr) {
        int sum=0;
        for(int i=0;i<arr.size();i++){
            if(arr[i]%2==1){
                sum++;
                if(sum>=3){
                    return true;
                }
            }
            else {
                sum=0;
            }
        }
        return false;
    }
};

最大连续1的个数

cpp 复制代码
class Solution {
public:
    int findMaxConsecutiveOnes(vector<int>& nums) {
        int res = 0;
        int sum = 0;
        for (int i = 0; i < nums.size(); i++) {
            if (nums[i] == 1) {
                sum++;
                res = max(res, sum);
            } else {
                sum = 0;
            }
        }
        return res;
    }
};

有序数组中的单一元素

cpp 复制代码
class Solution {
public:
    int singleNonDuplicate(vector<int>& nums) {
        int res=0;
        for(int i=0;i<nums.size();i++){
            res^=nums[i];
        }
        return res;
    }
};

P12163 [蓝桥杯 2025 省 C/Java A] 2025

cpp 复制代码
#include <iostream>
using namespace std;
int main()
{
    int res = 0;
    for (int i = 1000; i <= 20250412; i++)
    {
        int n = i;
        int a[11] = {0};
        while (n)
        {
            a[n % 10]++;
            n /= 10;
        }
        if (a[0] >= 1 && a[2] >= 2 && a[5] >= 1)
        {
            res++;
        }
    }
    cout << res;
    return 0;
}

三元组中心问题

cpp 复制代码
#include <iostream>
using namespace std;
int j;
int res;
int a[1010];
int n;
void jud(){
    for(int i=0;i<j;i++){
        if(a[i]<a[j]){
            for(int k=j+1;k<n;k++){
                if(a[j]<a[k]){
                    res++;
                    return ;
                }
            }
            return ;
        }
    }
}
int main()
{
  cin>>n;
  for(int i=0;i<n;i++){
      cin>>a[i];
  }
  for(j=1;j<n-1;j++){
      jud();
  }
  cout<<res;
  return 0;
}

企业组织结构优化

cpp 复制代码
#include <iostream>
#include<algorithm>
using namespace std;
int main()
{
  int t;cin>>t;
  int res=0;
  while(t--){
      int n;cin>>n;
      int t=0;
      int k;
      for(int i=0;i<n;i++){
          cin>>k;
          t=max(t,k);
      }
      res+=t;
  }
  cout<<res;
  return 0;
}

单词分析

cpp 复制代码
#include <iostream>
#include<cstring>
using namespace std;
int main()
{
  string s;cin>>s;
  int a[27]={0};
  for(int i=0;i<s.size();i++){
      a[s[i]-'a']++;
  }
  int max=a[0];
  char t='a';
  for(int i=0;i<27;i++){
      if(a[i]>max){
          max=a[i];
          t='a'+i;
      }
  }
  cout<<t<<endl<<max;
  return 0;
}

成绩统计

如何四舍五入?

浮点数+0.5然后转化为int

cpp 复制代码
#include <iostream>
using namespace std;
int main()
{
  int n;
  cin>>n;
  int t;
  double jige=0;
  double youxiu=0;
  for(int i=0;i<n;i++){
      cin>>t;
      if(t>=60)jige++;
      if(t>=85)youxiu++;
  }
  jige*=100;
  youxiu*=100;
  jige/=(double)n;
  youxiu/=(double)n;
  int j=jige+0.5;
  int y=youxiu+0.5;
  cout<<j<<"%"<<endl<<y<<"%";
  return 0;
}

P12162 [蓝桥杯 2025 省 C/Java A/研究生组] 数位倍数

cpp 复制代码
#include <iostream>
using namespace std;
int main()
{
    int res = 0;
    for (int i = 1; i <= 202504; i++)
    {
        int n = i;
        int sum = 0;
        while (n)
        {
            sum += n % 10;
            n /= 10;
        }
        if (sum % 5 == 0)
        {
            res++;
        }
    }
    cout << res;
    return 0;
}

其他题目

P12175 [蓝桥杯 2025 省 Python B] 园艺 - 洛谷

桥接字符
消失的蓝宝
逛商场
门牌制作
A Mathematical Curiosity
Ignatius and the Princess IV
Financial Management
猜数字

数组中两元素的最大乘积
寻找旋转排序数组中的最小值
寻找旋转排序数组中的最小值 II
第三大的数
三个数的乘积
从数组中移除最大值和最小值
使数组变成交替数组的最小操作数
K 个元素的最大和
拿硬币

值相等的最小索引
删除有序数组中的重复项
将找到的值乘以 2
检查是否所有 A 都在 B 之前
银行中的激光束数量
移除元素
写字符串需要的行数
按符号重排数组

数组元素和与数字和的绝对差
数组能形成多少数对
两个数组的交集
两个数组间的距离值
最大交换
至少在两个数组中出现的值
子数组范围和
统计上升四元组

相关推荐
那个村的李富贵14 小时前
CANN加速下的AIGC“即时翻译”:AI语音克隆与实时变声实战
人工智能·算法·aigc·cann
power 雀儿14 小时前
Scaled Dot-Product Attention 分数计算 C++
算法
Yvonne爱编码14 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
熬夜有啥好15 小时前
数据结构——哈希表
数据结构·散列表
琹箐15 小时前
最大堆和最小堆 实现思路
java·开发语言·算法
renhongxia115 小时前
如何基于知识图谱进行故障原因、事故原因推理,需要用到哪些算法
人工智能·深度学习·算法·机器学习·自然语言处理·transformer·知识图谱
坚持就完事了15 小时前
数据结构之树(Java实现)
java·算法
算法备案代理15 小时前
大模型备案与算法备案,企业该如何选择?
人工智能·算法·大模型·算法备案
赛姐在努力.16 小时前
【拓扑排序】-- 算法原理讲解,及实现拓扑排序,附赠热门例题
java·算法·图论
我能坚持多久16 小时前
【初阶数据结构01】——顺序表专题
数据结构