蓝桥杯:真题讲解2(C++版)附带解析

news2024/11/17 13:28:19

星系炸弹

来自:2015年六届省赛大学B组真题(共6道题)

分析:这题涉及到平年和闰年的知识,如果我们要解这题,首先要知道每月有多少天,其实也就是看2月份的天数,其它月份的天数都是一样的,只有2月有点不同。

平年的2月有28天,闰年2月有29天,搞定如何判断平年和闰年,这题也就好解了。

闰年满足的条件:

  • 能被4整除且不能被100整除
  • 或者能被400整除

 不是闰年就是平年。

代码演示:

bool is_run(int year)
{
	if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return true;
	else return false;
}

接下来我们模拟题意即可:

#include <bits/stdc++.h>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
  int y=2014,m=11,d=9;
  for(int i=0;i<1000;i++){
  	if((y%4==0&&y%100!=0) || (y%400==0)) mon[2]=29;
  	else mon[2]=28;
  	d++;
  	if(d>mon[m]){
  		d=1;
  		m++;
	  }
	  if(m>12){
	  	y++;
	  	m=1;  
		//这里不用写d=1,上面已经判断过了。 
	  }
  }
  printf("%04d-%02d-%02d",y,m,d);
  return 0;
}

移动距离

来自:2015年六届省赛大学B组真题(共6道题)

分析:实际上就是求两点间的距离

距离公式:点(x1,y1)到(x2,y2)的距离:|x1-x2|+|y1-y2|

解决方案:

我们还有一个问题,就是数列的排序是按照蛇形来排序的,那我们怎么处理有反向的数列呢,我们经过短暂的思考,立马给出了解决方案,先按照正常的方式来求,到了最后,我们发现当(x%2)==1 的时候,数的顺序是反的,然后我们就能调整了。

代码:

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

int w, m, n;
int main() {
	scanf("%d%d%d", &w, &m, &n);

	m --;
	n --;//将两个数都进行减1操作
	int x1 = m / w, y1 = m % w;//求得正常排序下的,当前数的坐标
	int x2 = n / w, y2 = n % w;

	if (x1 % 2 ==1) y1 = w - y1 - 1;//标记反向数列的纵坐标
	if (x2 % 2 ==1) y2 = w - y2 - 1;//标记反向数列的纵坐标

	cout << abs(x1 - x2) + abs(y1 - y2) << endl;//曼哈顿距离公式

	return  0;
}

煤球数目

来自:2016年七届省赛大学B组真题(共6道题)

分析:找规律即可,第零层到第一层+1,第一层到第二层+2,第二层到第三层加+3,第三层到第四层+4,以此类推。

代码:

#include <iostream>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int sum=0,d=0;

  for(int i=1;i<=100;i++){
    d+=i;    //累积d的值,因为它的规律是+2 、 +3 、+4。
    sum+=d;
  }
  cout << sum;
  return 0;
}

生日蜡烛

分析:直接2层for循环暴力即可。

代码:

#include <iostream>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int i;
  for (i = 0; i < 100; i++) {   //i<100就行了,搞个大概就ok。
    int sum = 0;
    for (int j = i; j < 100; j++) {
      sum += j;
      if (sum == 236) break;
    }
    if (sum == 236) break;
  }
  cout << i;
  return 0;
}

四平方和

来自:2016年七届省赛大学B组真题(共6道题)

先用暴力求解,代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
  // 请在此输入您的代码
  long long N;
  cin >> N;

  for(int i=0;i<=N;i++){
    for(int j=0;j<=N;j++){
      for(int k=0;k<=N;k++){
        for(int m=0;m<=N;m++){
          if(i*i+j*j+k*k+m*m == N){
            int a[4]={0};
            a[0]=i;
            a[1]=j;
            a[2]=k;
            a[3]=m;
            sort(a,a+4);   
            cout << a[0] << " " << a[1] << " " << a[2] << " " << a[3];
            return 0;
          }
        }
      }
    }
  }
  return 0;
}

运行后只能过62.5%的测试数据,下面改进一下代码:

#include <bits/stdc++.h>
using namespace std;
int main() {
	long long n,a,b,c,d;

	cin>>n;
	long long s=sqrt(n)+1;  //习惯上+1,不加也是正确的,每个正整数到不了一半。

	for(a=0; a<=s; a++) { //注意以下每个for循环前边初值继承上一循环体的值,保证从小到大的顺序
		for(b=a; b<=s; b++) {
			for(c=b; c<=s; c++) {
				for(d=c; d<=s; d++) {
					if(a*a + b*b + c*c + d*d == n) {
						cout<<a<<" "<<b<<" "<<c<<" "<<d;
						return 0;
					}
				}
			}
		}
	}
	return 0;
}


交换瓶子

来自:2016年七届省赛大学B组真题(共6道题)

代码(注释中标明了代码含义):

#include <iostream>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int a[10010];
  int n,res=0;
  cin >> n;
  for(int i = 1; i<=n;i++){
    cin >> a[i];
  }
  for(int i = 1;i <=n;i++){
    while(a[i]!=i){
      swap(a[i],a[a[i]]);           //瓶子是有序排放的,所以下标为1的位置就应该放1号
      res++;
    }
  }
  cout << res;
  return 0;
}

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

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

相关文章

【开源】JAVA+Vue.js实现校园电商物流云平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快递公司模块2.4 物流订单模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 商品表3.2.2 快递公司表3.2.3 物流订单表 四、系统展示五、核心代码5.1 查询商品5.2 查询快递公司5.3 查…

多人协作记账账本小程序开源版开发

多人协作记账账本小程序开源版开发 支持多人协作的记账本小程序&#xff0c;可用于家庭&#xff0c;团队&#xff0c;组织以及个人的日常收支情况记录&#xff0c;支持周月年度统计 便捷记账 便捷的记账方式&#xff0c;支持多种记账类型&#xff0c;快捷切换账本等 多账本 支…

如何使用ChatGPT创建一份优质简历

目录 第一步&#xff1a;明确目标和重点 第二步&#xff1a;与ChatGPT建立对话 第三步&#xff1a;整理生成的内容 第四步&#xff1a;注重行文风格 第五步&#xff1a;强调成就和量化结果 第六步&#xff1a;个性化和定制 第七步&#xff1a;反复修改和完善 总结 在现…

MATLAB:数组与矩阵

2.1 数组运算 数组运算时MATLAB计算的基础。由于MATLAB面向对象的特性&#xff0c;这种数值数组称为MATLAN最重要的一种内建数据类型&#xff0c;而数组运算就是定义这种数据结果的方法。 2.1.1 数组的创建和操作 在MATLAB中一般使用方括号“[]”、逗号“,”、空格和分号“;…

Frp 内网穿透服务器基于Docker+Nginx搭建 保姆间级别最细教程

Frp 内网穿透服务器基于DockerNginx搭建 前言介绍 ​ 原先使用的内网穿透服务&#xff0c;natapp、花生壳等三方内网穿透服务&#xff0c;特点方便&#xff0c;但是条数少&#xff0c;有带宽限制&#xff0c;还要实名认证。过于麻烦&#xff0c;自己准备搭建Frp个人穿透服务器…

计算机网络实验八 利用 Java /C++开发网络聊天应用程序

一、实验目的和要求 1)基本掌握利用 Java 开发环境调试应用程序的方法。 2)理解基于套接字开发网络应用程序的过程,深入理解客户/服务器方式工作原理。 3)掌握基于Java和C++开发网络通信程序的方法。 二、实验环境 1)运行 Windows 2008 Server/XP/7 操作系统的 PC 2 台…

python统计分析——线性模型的预测和评估

参考资料&#xff1a;用python动手学统计学 1、导入库 # 导入库 # 导入数据处理的库 import numpy as np import pandas as pd import scipy as sp from scipy import stats # 导入绘图的库 from matplotlib import pyplot as plt import seaborn as sns sns.set() # 导入估计…

更简单地介绍 CUDA

这篇文章是对 CUDA 的超级简单介绍&#xff0c;CUDA 是 NVIDIA 流行的并行计算平台和编程模型。我之前在2013年写过一篇文章《CUDA简单介绍》&#xff0c;多年来一直很受欢迎。但 CUDA 编程变得更加容易&#xff0c;GPU 也变得更快&#xff0c;所以是时候进行更新&#xff08;甚…

【Java程序设计】【C00290】基于Springboot的网上书城管理系统(有论文)

基于Springboot的网上书城管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的网上书城管理系统 本系统分为系统功能模块、管理员功能模块以及用户功能模块。 系统功能模块&#xff1a;在系统首页可以查看首…

Atcoder ABC340 A-D题解

比赛链接:ABC340 话不多说&#xff0c;看题。 Problem A: 签到。 #include <bits/stdc.h> using namespace std; int main(){int a,b,d;cin>>a>>b>>d;for(int ia;i<b;id)cout<<i<<endl;return 0; } Problem B: 还是签到题。一个v…

潇洒郎:2024 IDEA、Pycharm获取最新激活码获取方式

IDEA获取最新激活码 https://idea.javatiku.cn/ 手机打开&#xff0c;看到验证码&#xff0c;30分钟有效&#xff0c;输入验证码 获取到最新激活码

挑战杯 基于大数据的社交平台数据爬虫舆情分析可视化系统

文章目录 0 前言1 课题背景2 实现效果**实现功能****可视化统计****web模块界面展示**3 LDA模型 4 情感分析方法**预处理**特征提取特征选择分类器选择实验 5 部分核心代码6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于大数据…

使用Python制作进度条有多少种方法?看这一篇文章就够了!

前言 偶然间刷到一个视频&#xff0c;说到&#xff1a;当程序正在运算时&#xff0c;会有一个较长时间的空白期&#xff0c;谁也不知道程序运行的进度如何&#xff0c;不如给他加个进度条。 于是我今个就搜寻一下&#xff0c;Python版的进度条都可以怎么写&#xff01; 送书…

展望2024生物发酵领域-振华仪表

参展企业介绍 杭州振华仪表有限公司(简称“振华仪表”)是集电磁流量计研发、生产、销售、服务于一体的国家高新技术企业、省“专精特新”企业&#xff0c;主导起草了《电磁流量计检定规程(JJG 1033—2007)》、《智能变送器性能评定方法》等4项国家标准。 振华仪表于1985年成功…

[已解决]npm淘宝镜像最新官方指引(2023.08.31)

最新的配置淘宝镜像的淘宝官方提供的方法 npm config set registry https://registry.npmmirror.com原来的 registry.npm.taobao.org 已替换为 registry.npmmirror.com &#xff0c;当点击 registry.npm.taobao.org 会默认跳转到 registry.npmmirror.com 如果你想将npm的下载…

小保司的理赔是否有保障?

《小保司的理赔是否有保障&#xff1f;》 预计6-7分钟读完 连续日更&#xff1a;第7天 作者&#xff1a;罗师兄 微信号&#xff1a;luoyun515 同一个人&#xff0c;同样的重疾险责任&#xff0c; 同样的保额&#xff0c;同样的缴费方式&#xff0c; 不同的保司保费可以相…

一文看懂大模型 Sora 技术推演

sora 一出&#xff0c;引起社会各界广泛关注。中美AI的差距进一步扩大&#xff0c;中美人才培养体系的差距等等言论&#xff0c;甚嚣尘上。 其实文生视频领域&#xff0c;华人学者和产业界的参与度还是非常高的。 那么 Sora 到底是谁做的&#xff0c;怎么做的&#xff0c;本篇…

2024年 最新python调用ChatGPT实战教程

2024年 最新python调用ChatGPT实战教程 文章目录 2024年 最新python调用ChatGPT实战教程一、前言二、具体分析1、简版程序2、多轮对话3、流式输出4、返回消耗的token 一、前言 这个之前经常用到&#xff0c;简单记录一下,注意目前chatgpt 更新了&#xff0c;这个是最新版的&am…

加载arcgis切片服务网络请求有大量404错误

需求&#xff1a; 前端访问arcgis切片服务时&#xff0c;在网络请求中出现大量404&#xff08;Not Found&#xff09;错误&#xff0c;切片时设置了感兴趣区域&#xff0c;在感兴趣范围内请求切片时能够正常返回切片。 问题分析&#xff1a; 设置感兴趣区域切片的目的是减少站…

Linux——简单的Shell程序

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、Shell程序思路二、Shell代码展示 一、Shell程序思路 用下图的时间轴来表示事件的发生次序…