【蓝桥杯2023】寒假5天集训-2022省赛题合集

注:困难题暂不解答! 量力而行Q.Q

目录

【Day 1】 练习

【Day 1】三角回文数

【Day 2】小平方

【Day 2】超级质数

【Day 3】考勤刷卡

【Day 3】最大和

 【Day 4】卡片

【Day 4】第几小

 【Day 5】染色时间 

 【Day 5】单峰序列

【Day 1】 练习

#include <iostream>
using namespace std;
int main()
{
  // 请在此输入您的代码
  cout << "ABC" <<endl;
  return 0;
}

【Day 1】三角回文数

#include<bits/stdc++.h>
using namespace std;
int main(){
    int x= 0;
    for(int i=1; ; i++){
        x=x+i;
        if(x>20220514){
            int b=x;
            int a=0;
            //数转置 
            while(b!=0){
                a=a*10+b%10;
                b/=10;
            }
            if(a==x){
                cout<<x<<endl; 
                break;
            } 
            a=0;
        }
    }
}

【Day 2】小平方

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    int cnt=0;
    cin>>n;
    for(int i=1; i<n; i++){
    	if((i*i)%n*2<n) cnt++;
	}
	cout<<cnt<<endl;
}

【Day 2】超级质数

 373

  • 补充:关于dev c++5.11英文版报错 [Error] 'to_string' was not declared in this scope
  • 检查添加命令,原因在于c++1才支持!
#include<bits/stdc++.h>
using namespace std;
//is_prime
bool is_prime(int n){
	if(n<=1) return false;
	for(int i=2; i<=sqrt(n);i++){
		if(n%i==0) return false;
	}
	return true;
}
//核实 
bool check(int n){
	string s=to_string(n);
	int i=s.size();
	for(int j=0; j<i;j++){
		for(int k=1;k<=i-j;k++){
			string str=s.substr(j,k);
			int x=stoi(str);
			if(is_prime(x)==0) return false;
		}
	}
	return true;
}
//
int main(){
	for(int n=1;n<=INT_MAX;n++){	
		if(is_prime(n)&&check(n)) {
			cout<<n<<endl;
		}
	}	
	return 0;
}

【Day 3】考勤刷卡

 

#include<bits/stdc++.h>
using namespace std;

int main(){
	int n;//刷卡条数
	cin>>n;
	int a[n];
	int e=0,b=0,c=0,d=0;
	int time;
	for(int i=0;i<n;i++){
		scanf("%d:%d:%d %d", &e,&b, &c, &d);
		a[i]=d;
	
	} 
	sort(a,a+n);
	for(int i=0;i<n;i++){
		if(a[i] != a[i-1]){
      printf("%d\n",a[i]);
    }
	}
	return 0;
}

【Day 3】最大和

 

#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
//根本就不是dp
using namespace std;
const int N = 10010,inf=0x3f3f3f3f;
int n;
int a[N],f[N];
//质数的判断
bool is_prime(int x)
{
    for (int i = 2; i < x / i; ++ i )
        if (x % i == 0)
            return false;
    return true;
}
//遍历所有因子数
int d_prime(int x)
{
    for (int i = 2; i <= x; ++ i )
        if (x % i == 0 && is_prime(i))//为x的因子同时为质数,由每次于从2开始便得到最小因子
            return i;
    return 1;
}
int main() {
     cin>>n;
     for(int i=1;i<=n;i++) cin>>a[i];
     memset(f,-inf,sizeof(f));//初始化
     f[1]=a[1];
     for(int i=1;i<=n;i++){
       int j=d_prime(n-i);//从当前位置所能跳到的最远位置i——i+1到i+d_prime(n-i)
       for(int k=i+1;k<=i+j;k++){  //遍历所有的可能跳到的位置
        if(f[k] == -inf) f[k] = a[k] + f[i];//如果之前为经过,便直接f[i]+a[k];
        else f[k]=max(f[k],f[i]+a[k]);
        }
     }
     cout<<f[n];
    return 0;
}

 【Day 4】卡片

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,k;
	cin>>n; //n位同学 
	for( k=1; k*(k-1)/2+k<n;k++);
	cout<<k;	
	return 0;
}

【Day 4】第几小

 【Day 5】染色时间 

 【Day 5】单峰序列

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MengYa_DreamZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值