基础算法集训第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 之前
银行中的激光束数量
移除元素
写字符串需要的行数
按符号重排数组

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

相关推荐
nju_spy2 小时前
力扣每日一题 2026.1
算法·leetcode·二分查找·动态规划·最小生成树·单调栈·最长公共子序列
Howrun7772 小时前
C++ 线程互斥锁 lock_guard
c++·算法
小李独爱秋2 小时前
计算机网络经典问题透视:试比较先进先出排队(FIFO)、公平排队(FQ)和加权公平排队(WFQ)的优缺点
服务器·计算机网络·算法·web安全·信息与通信·队列
永远都不秃头的程序员(互关)2 小时前
【K-Means深度探索(十)】进阶思考:K-Medoids与Fuzzy C-Means,K-Means的“亲戚”们!
算法·机器学习·kmeans
Remember_9932 小时前
【LeetCode精选算法】二分查找专题一
java·数据结构·算法·spring·leetcode·哈希算法
刘某某.2 小时前
大模型数据传输3 种方式对比
算法
橘子师兄2 小时前
C++AI大模型接入SDK—快速上手
开发语言·c++·人工智能
wen__xvn2 小时前
基础算法集训第03天:递推
算法
wen__xvn2 小时前
算法基础集训第19天:广度优先搜索
算法·宽度优先