第十六届蓝桥杯模拟赛(第一期)-c++/c

前面填空参考https://blog.csdn.net/2301_76891851/article/details/143448411
后面大题code:

停车场停车

c 复制代码
#include <bits/stdc++.h>
#define int long long
using namespace std;
int tmp;
signed main()
{
	int n;cin>>n;
	if(n<15)cout<<"0";
	else{
		cout<<(n/15)*2;
	}
  return 0;
}

非零数减一

c 复制代码
#include <bits/stdc++.h>
#define int long long
using namespace std;
int tmp;
signed main()
{
	char c='0';
	int n;cin>>n;
	string a=to_string(n);
	for(int i=0;i<a.length();i++){
		if(c<a[i])c=a[i];
	}
	cout<<c;
  return 0;
}

减法运算

c 复制代码
#include <bits/stdc++.h>
#define int long long
using namespace std;
int tmp;
signed main()
{
	string res1="",res2="";
	string a;cin>>a;
	int index=a.find("-");
	for(int i=0;i<index;i++)res1+=a[i];
	for(int i=index+1;i<a.length();i++)res2+=a[i];
	int cnt1=stoll(res1);int cnt2=stoll(res2);
	cout<<cnt1-cnt2;
  return 0;
}

间隔为k

c 复制代码
#include <bits/stdc++.h>
#define int long long
using namespace std;
int mx=0;
int arr[100010];

signed main()
{
	int n;cin>>n;
	for(int i=1;i<=n;i++)cin>>arr[i];
	int k;cin>>k;
	int r=n-2*k-2;
	for(int i=1;i<=r;i++){
		int sum=0;//sum要在这里进行初始化 
		for(int j=i;j<=i+2*k-2;j+=2){
			sum+=arr[j];
		}
		if(sum>mx){
			mx=max(mx,sum);
		}
	}
	cout<<mx;
  return 0;
}

钩子

c 复制代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }

    if (n < 3) {
        cout << 0 << endl;
        return 0;
    }

    vector<int> decreasing(n, 1);
    vector<int> increasing(n, 1);

    // 计算每个位置之前的最长递减子序列
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < i; j++) {
            if (a[j] > a[i]) {
                decreasing[i] = max(decreasing[i], decreasing[j] + 1);
            }
        }
    }

    // 计算每个位置之后的最长递增子序列
    for (int i = n - 1; i >= 0; i--) {
        for (int j = i + 1; j < n; j++) {
            if (a[j] > a[i]) {
                increasing[i] = max(increasing[i], increasing[j] + 1);
            }
        }
    }

    int max_length = 0;
    for (int i = 0; i < n; i++) {
        if (decreasing[i] > 1 && increasing[i] > 1) {
            max_length = max(max_length, decreasing[i] + increasing[i] - 1);
        }
    }

    cout << max_length << endl;

    return 0;
}
相关推荐
智者知已应修善业7 小时前
【洛谷P9975奶牛被病毒传染最少数量推导,导出多样例】2025-2-26
c语言·c++·经验分享·笔记·算法·推荐算法
Trouvaille ~7 小时前
【Linux】应用层协议设计实战(一):自定义协议与网络计算器
linux·运维·服务器·网络·c++·http·应用层协议
CSCN新手听安7 小时前
【linux】高级IO,I/O多路转接之poll,接口和原理讲解,poll版本的TCP服务器
linux·运维·服务器·c++·计算机网络·高级io·poll
CSCN新手听安7 小时前
【linux】网络基础(三)TCP服务端网络版本计算器的优化,Json的使用,服务器守护进程化daemon,重谈OSI七层模型
linux·服务器·网络·c++·tcp/ip·json
m0_736919107 小时前
C++中的委托构造函数
开发语言·c++·算法
小小小小王王王7 小时前
洛谷-P1886 【模板】单调队列 / 滑动窗口
c++·算法
历程里程碑8 小时前
Linux 库
java·linux·运维·服务器·数据结构·c++·算法
Sheep Shaun8 小时前
如何让一个进程诞生、工作、终止并等待回收?——探索Linux进程控制与Shell的诞生
linux·服务器·数据结构·c++·算法·shell·进程控制
小龙报8 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
小武编程8 小时前
基于JL700N可视化SDK的MAC地址应用
c语言·tws耳机·杰理jl700n