蓝桥杯刷题计划-洛谷-持续更新

news2024/11/24 14:46:53

P8598 [蓝桥杯 2013 省 AB] 错误票据

题目

#include <bits/stdc++.h>
#define endl '\n'
#define int long long 
#define INF 0x3f3f3f3f3f
const int N = 1000010;
using namespace std;
int arr[N];
signed main()
{
	int N;
	cin>>N;
	int idx;
	while(cin>>arr[++idx]){}
	//排序
	sort(arr+1,arr+idx+1);
	int ans1,ans2;
	for(int i = 1; i <= idx; i++){
		if(arr[i+1] - arr[i] == 2)
			ans1 = arr[i]+1;
		if(arr[i+1] == arr[i])
			ans2 = arr[i];
	
	}
	cout<<ans1<<' '<<ans2;
	return 0;
}

P8752 [蓝桥杯 2021 省 B2] 特殊年份

题目

#include<bits/stdc++.h>
#define ll longlong 

using namespace std;



int a[100010];
int main(){
	
	int n = 5;
	string s;
	int ans = 0;
	for(int i = 0; i < n;i++ ){
		cin>>s;
		if(s[0] == s[2]&& s[3] - s[1] == 1)
			ans++;
	}
	cout<<ans;
	
	return 0;
}

P8753 [蓝桥杯 2021 省 AB2] 小平方

题目

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;

const int N = 100010;
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	int n;
	cin>>n;
	int cnt= 0 ;
	for(int i = 1; i<= n-1; i++){
		int x = i*i;
		if((x % n) < n/2.0){
			cnt++;
		}
	}
	cout<<cnt;
	return 0;
}

P8780 [蓝桥杯 2022 省 B] 刷题统计

题目

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;

const int N = 100010;
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	int a,b,n;
	cin>>a>>b>>n;
	int sum = 0;
	int cnt = 1;
	while(sum<n){
		if(cnt % 7>=1&& cnt%7<=5)
			sum+=a;
		else
			sum+=b;
		cnt++;
	
	}
	
	cout<<cnt-1;
	return 0;
}

P8706 [蓝桥杯 2020 省 AB1] 解码

题目

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;

const int N = 100010;
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	string s;
	cin>>s;
	for(int i = 0;i < s.size();i++){
		if(s[i]>='1'&& s[i]<='9')
			for(int j = 0 ; j < s[i]-'1';j++)
				cout<<s[i-1];
		else
			cout<<s[i];
	}
	return 0;
}

P8717 [蓝桥杯 2020 省 AB2] 成绩分析

题目

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;

const int N = 100010;
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	int n;
	int a[N];
	cin>>n;
	for(int i = 0 ;i < n;i++){
		cin>>a[i];
	}
	
	sort(a,a+n);
	double sum = 0;
	for(int i = 0 ; i < n;i++)
		sum+= a[i];
	double ans = sum/n*1.0;
	cout<<a[n-1]<<endl<<a[0]<<endl;
	printf("%.2lf",ans);
	return 0;
}

P8711 [蓝桥杯 2020 省 B1] 整除序列

题目

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;

const int N = 100010;
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n ;
	cin>>n;
	while(n>0){
		cout<<n<<" ";
		n = n>>1;
	}
	return 0;
}

P8722 [蓝桥杯 2020 省 AB3] 日期识别

题目

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;
	unordered_map<string,int> mp{//创立哈希表,建立字符到整形的映射
	{"Jan",1},
	{"Feb",2},
	{"Mar",3},
	{"Apr",4},
	{"May",5},
	{"Jun",6},
	{"Jul",7},
	{"Aug",8},
	{"Sep",9},
	{"Oct",10},
	{"Nov",11},
	{"Dec",12}
};
const int N = 100010;
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	string s;
	cin>>s;
	string s1 = s.substr(0,3);
	string s2 = s.substr(3);
	
	cout<<mp[s1]<<" ";
	if(s2[0] != '0')
		cout<<s2[0];
	
	cout<<s2[1];
	return 0;
}

P8680 [蓝桥杯 2019 省 B] 特别数的和

题目

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;


const int N = 100010;
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	int n;
	int ans = 0;
	cin>>n;
	for(int i = 1;i<=n;i++){
		string s = to_string(i);
		for(int j =0; j <s.size();j++){
			if(s[j] == '0' || s[j] =='1'||s[j] =='2'||s[j] == '9')
			{	ans+=i;
				break;
				}
		}
	}
	cout<<ans;
	return 0;
}

P9240 [蓝桥杯 2023 省 B] 冶炼金属

题目

  • 思路 贪心
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;


const int N = 100010;
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	int n;
	cin>>n;
	int a,b;
	int ans_min = 0,ans_max = 1e9;
	for(int i= 0; i< n;i++){
		cin>>a>>b;
		ans_min = max(ans_min,a/(b+1)+1);
		ans_max = min(ans_max,a/b);
	}
	cout<<ans_min<<" "<<ans_max;
	return 0;
}

P8597 [蓝桥杯 2013 省 B] 翻硬币

题目

  • 思路 模拟
  • 遇到不同的就反转
#include <bits/stdc++.h>
#define int long long 
#define endl '\n'
#define INF 0x3f3f3f3f3f
using namespace std;
const int N = 100010;
int arr[N];

signed main(){

    string a,b;
    cin>>a>>b;
    int cnt = 0;
    for(int i = 0 ; i < a.size();i++){
        if(a[i]!=b[i]){
            a[i] = a[i] == 'o'?'*':'o';
            a[i+1] = a[i+1] =='o'?'*':'o';
            cnt++;
        }

    }
    cout<<cnt;

    return 0;
}

P8647 [蓝桥杯 2017 省 AB] 分巧克力

  • 思路 打暴力超时 题干字眼——输出切出的正方形巧克力最大可能的边长 二分答案
  • 对于第 i 块巧克力,当边长为 x 时,可以分出 ⌊(ai÷x)×(bi÷x)⌋ 块巧克力。

题目

#include <bits/stdc++.h>
#define int long long 
#define endl '\n'
#define INF 0x3f3f3f3f3f
using namespace std;
const int N = 100010;
int a[N],b[N];//长宽
int n,k;

bool check(int mid){
	int cnt =0 ;
	for(int i = 1 ; i <= n ;i++){
		cnt+=(a[i]/mid)*(b[i]/mid);
	}
	if(cnt>=k)return true;
	else return false;
}

signed main(){
	
	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>k;
	for(int i = 1; i <= n;i++){
		cin>>a[i]>>b[i];
	}
	int l = 0;
	int r = 10010;
	while(l+1<r){
		int mid = (l+r)>>1;
		if(check(mid))
			l = mid;
		else
			r = mid;
	}
	if(check(r)) cout<<r;
	else cout<<l;
	return 0;
}

P8772 [蓝桥杯 2022 省 A] 求和

题目

  • 思路 前缀和 注意数据范围!
  • S=a1⋅a2+a1⋅a3+⋯+a1⋅an+a2⋅a3+⋯+an−2⋅an−1+an−2⋅an+an−1⋅an

=(a2+a3+⋯+an)⋅a1+(a3+a4+⋯+an)⋅a2+⋯+anan−1

#include <bits/stdc++.h>
#define int long long 
#define endl '\n'
#define INF 0x3f3f3f3f3f
using namespace std;
const int N = 200010;
int arr[N],sum[N];
int n;
int ans;
signed main(){
	
	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i = 1 ; i<=n;i++){
		cin>>arr[i];
		sum[i] = sum[i-1] + arr[i];
	}
	for(int i =1 ;i <=n-1 ;i++){
		ans += arr[i]*(sum[n]-sum[i]); 
	}
	cout<<ans;
	return 0;
}

P8665 [蓝桥杯 2018 省 A] 航班时间

题目

  • 前置知识
    • 去程时间 =飞行时间 + 时差;回程时间 = 飞行时间 − 时差
    • 由此可知 飞行时间 = (去+回)/ 2
  1. 用 scanf 输入前面的时间:
scanf("%d:%d:%d %d:%d:%d",&h1,&m1,&s1,&h2,&m2,&s2);
  1. 每一行后面不一定有额外的天数。如果有,则中间一定有空格,所以判断下一个字符是否为空格即可。
  2. 为方便计算,不妨把时间都转换成以秒为单位 t=86400⋅d+3600⋅h+60⋅m+s
  3. h = ans/3600 min = ans%3600/60 s = ans%60
#include <bits/stdc++.h>
#define endl '\n'
#define INF 0x3f3f3f3f3f
const int N = 1000010;
using namespace std;

int get()
{
    int h1,m1,s1,h2,m2,s2,day=0;
    scanf("%d:%d:%d %d:%d:%d",&h1,&m1,&s1,&h2,&m2,&s2);
    if(getchar()==' ')scanf("(+%d)",&day);
    return (day*86400+h2*3600+m2*60+s2)-(h1*3600+m1*60+s1);
}
signed main()
{
    int T;
    scanf("%d",&T);
    while(T--)
        {
            int ans=(get()+get())/2;
            printf("%02d:%02d:%02d\n",ans/3600,ans%3600/60,ans%60);
        }
    return 0;
}

P8681 [蓝桥杯 2019 省 AB] 完全二叉树的权值

题目

  • 思路 模拟
  • 完全二叉树的性质

设深度为 dep,根节点的深度为 1。则有第 dep 层的节点为 2dep,每层开头的节点编号为 2dep−1,末尾的节点编号为 2dep−1(以上结论叶子节点除外)。

  • 注意上面加粗黑体字 第一次没考虑到 错了两个点 叶子节点需要额外特判
#include <bits/stdc++.h>
#define int long long 
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;
const int N = 100010;
int arr[N];
int n;
int dep = 1,sum = 0,Max = -1,a,ans;
signed main(){
	
	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i = 1; i <= n; i++){
		cin>>a;
		sum+=a;
		if(i == (1<<dep)-1){//判断当前位置是否是该dep的最后一个节点?结算:go on 
			if(sum>Max){
				Max = sum;
				ans = dep;
			}
		dep++;	
		sum = 0;
		}
	}
	if(sum>Max){//叶子节点特判
		Max = sum;
		ans = dep;
	}
	
	cout<<ans;
	return 0;
}

P9231 [蓝桥杯 2023 省 A] 平方差

题目

  • 思路 找规律
  • 参考题解
#include <bits/stdc++.h>
#define int long long 
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;
const int N = 100010;
int arr[N];
int n;
int f(int x) {//小于等于x的奇数个数 
	if (!x) return 0;
	return (x + 1) / 2;
}
int g(int x) {//小于等于x的4的倍数个数 
	return x / 4;
}
signed main(){
	
	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int l, r; cin >> l >> r;
	cout << f(r) - f(l - 1) + g(r) - g(l - 1);
	return 0;
}

P9230 [蓝桥杯 2023 省 A] 填空问题

题目

  • 思路
  • problem A 填空题 本地暴力枚举
  • 把数字转成字符串去处理
  • 答案为 4430091
#include <bits/stdc++.h>
#define int long long 
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;
const int N = 1e8;
bool check(string s){
	int ans1 = 0 ,ans2 = 0;
	for(int i = 0; i < s.size();i++){
		if(i<s.size()/2)
			ans1 += s[i]-'0';
		else
			ans2 += s[i]-'0';
	}
	return ans1 == ans2;
}
signed main(){
	
	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	string s;
	int ans = 0;
	for(int i = 1 ; i<= N;i++){
		s= to_string(i);
		if(s.size()%2 == 1)continue;//奇数
		if(check(s)) {
			ans++;
		}
		
	}
	cout<<ans;
	return 0;
}
  • problem B DFS 本地暴搜
  • 答案为 4165637
#include <bits/stdc++.h>
#define int long long 
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;
const int N = 1e8;
int arr[N];
int ans;
void dfs(int score,int cnt){
	if(cnt>30||score == 100)
		return;
	if(cnt == 30 && score == 70)
		ans++;
	dfs(score+10,cnt+1);
	dfs(0,cnt+1);
}


signed main(){
	
	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	//表示0分 0题
	dfs(0,0); 
	cout<<ans;
	return 0;
}

P8649 [蓝桥杯 2017 省 B] k 倍区间

题目

题解参考

  • 思路 看到”连续子序列求和”这一要求时,我们果断选择前缀和解答
#include <bits/stdc++.h>
#define int long long 
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;
const int N = 100010;
int arr[N],sum[N];
int n,k;
map<int,int> mp;

signed main(){
	
	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>k;
	int ans = 0;
	mp[0] = 1;
	for(int i = 1; i<=n;i++){
		cin>>arr[i];
		sum[i] = (sum[i-1]+ arr[i])%k;//记录前缀和模k的值
		mp[sum[i]]++;
	}
	for(int i = 0; i< n;i++){
		ans+=(mp[i]*(mp[i]-1))/2;
	}
	cout<<ans;
	return 0;
}
  • 自己的理解
  • 解释:1要和其他1组一起 满足

                0可以单独算也可以组在一起 满足

#include <bits/stdc++.h>
#define int long long 
#define endl '\n'
#define INF 0x3f3f3f3f
using namespace std;
const int N = 100010;
int arr[N],sum[N];
int n,k;
map<int,int> mp;

signed main(){
	
	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>k;
	int ans = 0;
	for(int i = 1; i<=n;i++){
		cin>>arr[i];
		sum[i] = (sum[i-1]+ arr[i])%k;//记录前缀和模k的值
		mp[sum[i]]++;
	}
	for(auto i :mp){
		if(i.first == 0)
			ans+=i.second*(i.second+1)/2;
		else
			ans+=i.second*(i.second-1)/2;
	}
	cout<<ans;
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1553191.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

金三银四面试题(一):JVM类加载与垃圾回收

面试过程中最经典的一题&#xff1a; 请你讲讲在JVM中类的加载过程以及垃圾回收&#xff1f; 加载过程 当Java虚拟机&#xff08;JVM&#xff09;启动时&#xff0c;它会通过类加载器&#xff08;ClassLoader&#xff09;加载Java类到内存中。类加载是Java程序运行的重要组成…

灰色预测模型以及matlab软件使用

1&#xff0c;灰色系统简介 著名学者邓聚龙教授于20世纪70年代末、80年代初提出&#xff1a; “ The诞生标志:邓教授第一篇灰色系统论文Control Problems of Grey Systems”&#xff0c;发表于北荷兰出版公司期刊 System & Control Letter,1982, No.5. 1.1 灰色系统&…

C语言数据输出和输入介绍

在C语言中&#xff0c;数据的输出和输入是程序与用户或外部环境进行交互的重要方式之一。通过数据的输出&#xff0c;程序可以向用户展示信息或结果&#xff1b;通过数据的输入&#xff0c;程序可以获取用户提供的数据或参数。本文将深入介绍C语言中数据输出和输入的相关知识&a…

定时器的原理和应用

#include<reg51.h> unsigned char s[]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; unsigned char count0,num0; void inittimer() {TMOD0x01;//0000 0001TH0(65536-50000)/256; //定时50ms50000us 2562^8 初值向右边移动8位TL0(65536-50000)%256;ET01;//开启定…

Stable Diffusion WebUI 生成参数:脚本(Script)——提示词矩阵、从文本框或文件载入提示词、X/Y/Z图表

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 大家好,我是水滴~~ 在本篇文章中,我们将深入探讨 Stable Diffusion WebUI 的另一个引人注目的生成参数——脚本(Script)。我们将逐一细说提示词矩阵、从文本框或文件导入提示词,…

Linux学习:进程(3)与 环境变量

目录 1. 进程的优先级1.1 什么是进程的优先级1.2 优先级的具体表示与查看方式 2. 进程的切换与调度2.1 切换2.2 调度 3. 环境变量3.1 main参数/命令行参数3.2 什么是环境变量3.3 环境变量的使用与特性3.5 本地变量与环境变量的脚本配置文件 1. 进程的优先级 在计算机运行的过程…

前端基础知识html

一.基础标签 1.<h1>-<h6>:定义标题&#xff0c;h最大&#xff0c;h最小 2.<font>&#xff1a;定义文本的字体&#xff0c;尺寸&#xff0c;颜色 3.<b>&#xff1a;定义粗体文本 4.<i>&#xff1a;定义斜体文本 5.<u>&#xff1a;定义文本下…

SPDZ基础使用手册(深度学习视角)

基本类型 深度学习中最常使用的便是秘密定点数sfix&#xff0c;有关定点数的高级运算协议请参阅Paper: Secure Computation With Fixed-Point Numbers. 容器类型 SPDZ的深度学习框架主要基于TensorFlow实现&#xff0c;其中使用的容器是张量Tensor&#xff0c;在库中的定义如下…

如何提bug?

很多公司都有提bug的标准&#xff0c;对于新人刚介入测试行业时&#xff0c;提bug的时候&#xff0c;描述的清晰与否就很重要&#xff0c;那一个很明朗清晰的bug应该包含那些呢&#xff1f; bug包含的要素有那些&#xff1f;&#xff08;以jira工具为例&#xff09; 1、项目名…

Parade Series - SVG Resource

iconfont https://www.iconfont.cn/?spma313x.search_index.i3.2.74e53a819tkkcG音符 <div class"form-group"><a href"Javascript:reload();" class"btn btn-icon btn-outline-light btn-block" style";"><svg t&q…

docker logs 查找日志常用命令

docker logs 是什么 docker logs 是 Docker 命令行工具提供的一个命令&#xff0c;用于查看容器的日志输出。它可以显示容器在运行过程中生成的标准输出&#xff08;stdout&#xff09;和标准错误输出&#xff08;stderr&#xff09;&#xff0c;帮助用户诊断容器的行为和排查…

Spring boot 发送文本邮件 和 html模板邮件

Spring boot 发送文本邮件 和 html模板邮件 提示&#xff1a;这里使用 spring-boot-starter-mail 发送文本邮件 和 html模板邮件 文章目录 Spring boot 发送文本邮件 和 html模板邮件一、开启QQ邮箱里的POP3/SMTP服务①&#xff1a;开启步骤 二、简单配置①&#xff1a;引入依赖…

【Linux 驱动基础】Linux platform平台设备驱动

# 前置知识 总线驱动模型简介&#xff1a; 总线是处理器与一个或者多个设备之间的通道&#xff0c;在设备模型中&#xff0c;所有的设备都是通过总线相连&#xff0c;当然也包括虚拟的 platform 平台总线。 总线驱动模型中有三要素&#xff1a; 1. 总线 /*** struct bus_ty…

RTSP应用:实现视频流的实时推送

在实现实时视频流推送的项目中&#xff0c;RTSP&#xff08;Real Time Streaming Protocol&#xff09;协议扮演着核心角色。本文将指导你通过安装FFmpeg软件&#xff0c;下载并编译live555&#xff0c;以及配置ffmpeg进行视频流推送&#xff0c;来实现一个基本的RTSP流媒体服务…

05-JavaScript对象

1. 对象 1.1 对象的相关概念 什么是对象&#xff1f; 在 JavaScript 中&#xff0c;对象是一组无序的相关属性和方法的集合&#xff0c;所有的事物都是对象&#xff0c;例如字符串、数值、数组、函数等。 对象是由属性和方法组成的。 属性&#xff1a;事物的特征&#xff0c;…

Fantasy Forest Environment

此包包含120多个预制件,您需要创建风格化的森林环境:从树木、灌木丛到岩石和蘑菇。演示场景有夏季、秋季和冬季变体! 下载:​​Unity资源商店链接资源下载链接 效果图:

Java八股文(JVM)

Java八股文のJVM JVM JVM 什么是Java虚拟机&#xff08;JVM&#xff09;&#xff1f; Java虚拟机是一个运行Java字节码的虚拟机。 它负责将Java程序翻译成机器代码并执行。 JVM的主要组成部分是什么&#xff1f; JVM包括以下组件&#xff1a; ● 类加载器&#xff08;ClassLoa…

Linux应用实战之网络服务器(三)CSS介绍

0、前言 准备做一个Linux网络服务器应用实战&#xff0c;通过网页和运行在Linux下的服务器程序通信&#xff0c;这是第三篇&#xff0c;介绍一下CSS&#xff0c;优化上一篇文章中制作的HTML页面。 1、CSS常用语法 CSS&#xff08;层叠样式表&#xff09;是用于描述HTML或XML…

数据库原理与应用(SQL Server)笔记 关系数据库

目录 一、关系数据库的基本概念&#xff08;一&#xff09;关系数据库的定义&#xff08;二&#xff09;基本表、视图&#xff08;三&#xff09;元组、属性、域&#xff08;四&#xff09;候选码、主码、外码 二、关系模型三、关系的完整性&#xff08;一&#xff09;实体完整…

Android Studio控制台输出中文乱码问题

控制台乱码现象 安卓在调试阶段&#xff0c;需要查看app运行时的输出信息、出错提示信息。 乱码&#xff0c;会极大的阻碍开发者前进的信心&#xff0c;不能及时的根据提示信息定位问题&#xff0c;因此我们需要查看没有乱码的打印信息。 解决步骤&#xff1a; step1: 找到st…