【蓝桥杯14天冲刺课题单】Day 1

 1. 题目链接:19937 艺术与篮球

该题目的难点主要在20240413这个日期需要结束程序跳出循环。最开始将该输出ans的位置放在了for循环之外,此时的日期已经循环完了2024年所有的日期,则最后会统计多而导致结果错误。

AC代码:

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int day_1[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};//用数组预处理每月的天数
int day_2[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int sum_num[10]={13,1,2,3,5,4,4,2,2,2};//预处理每一个数字的文字笔画
bool check_year(int year) //判断闰年,便于选择月份
{if((year%4 == 0 && year%100!=0)||(year%400 == 0)) return 1;else return 0;	
}
int main()
{int ans=0,result=0,m,d,sum=0;for(int y=2000;y<=2024;y++){if(check_year(y) == 1) {for(m=1;m<=12;m++){for(d=1;d<=day_1[m];d++){sum=0;result=(y*10000)+(m*100)+d;while(result){sum += sum_num[result%10];result=result/10;}if(sum > 50) ans++;if ((y == 2024) && (m >= 4) && (d >= 13)) {cout<<ans;return 0;}//就是这一段输出的位置需要注意}}}else if(check_year(y) == 0) {for(m=1;m<=12;m++){for(d=1;d<=day_2[m];d++){sum=0;result=(y*10000)+(m*100)+d;while(result){sum += sum_num[result%10];result=result/10;	}if(sum > 50) ans++;	if ((y == 2024) && (m >= 4) && (d >= 13)) {cout<<ans;return 0;}//已知2024是闰年,此处可以不需要这个输出}}}}
} 

这个方法有重复的代码,需要简化。


 2.题目链接: 3491 幸运数

该题目为填空题,可以直接进行输出。

最开始的算法是将每一个数字进行拆分,算出位数,再进行判断是否为偶数位。接着判断该数的左右两边的和是否相等,最后进行个数统计。这里因为数字是从后往前分离的,且是偶数位,则可以先统计后面的,到一半的长度时停止,再换另一个计数器统计前一半。但测评结果是TLE。那么不能使用直接分离的方法。

TLE的枚举代码:

#include <iostream>
#include <cstdio>
#include <cmath>
#pragma GCC optimize(2)
using namespace std;
int check_number(int num)
{int ans=0;while(num){num=num/10;ans++;}if(ans%2 == 0) return ans;else return 0;
}
int main() 
{int result=0;for(int i=10;i<=100000000;++i){int sum_1=0,sum_2=0,half;int number=i;if(check_number(i) != 0){half=check_number(i)/2;for(int j=1;j<=half;j++){sum_1 += number%10;number /=10;}for(int j=1;j<=half;j++){sum_2 += number%10;number /=10;}if(sum_1 == sum_2) result++;}else continue;}cout<<result;return 0;
}

 根据蓝桥杯的官方题解,可以将数字转换成字符串,则可以用字符串相关的函数直接得出结果数字的长度,进而判断数字是否为偶数位。这个方法直接将时间复杂度从O(n)降到了O(1)。

#include<bits/stdc++.h>
using namespace std;
int main()
{int ans = 0;for (int i = 1; i <= 100000000; ++i) {string s = to_string(i); //直接转换成字符串,便于统计数字长度,时间复杂度为O(1);int n = (int)s.size();if (n % 2) continue;int l = 0, r = 0;for (int j = 0; j < n; ++j) {if (j < n / 2) l += s[j] - '0';//字符转换为数字else r += s[j] - '0';}if (l == r) ans++;}cout << ans << '\n';//4430091return 0;
}

3. 题目链接:1600 平方差

根据条件,最大的数字不超过2021,则可以将1到2021的所有可能性枚举出来。

同时因为a^2-b^2 =(a + b)(a-b),用sum数组进行统计,只要满足1到2021之间这个条件的数字就存入数组,不用管是否为1个拆分方式;最后遍历数组,存了数字的数组就计数器加1。因为是开的全局数组可以不用memset数组为0。 

#include <iostream>
#include <cstdio>
using namespace std; 
const int maxn=1e7;
int sum[maxn];
int main()
{int result,ans=0;for(int i=1;i<=2021;i++){for(int j=0;j<i;j++){result=(i+j)*(i-j);if(result>=1&&result<=2021) sum[result]++;}}for(int i=1;i<=2021;i++){if(sum[i]!=0){ans++;}}cout<<ans;return 0;
}

!!一开始无思路的题

4. 题目链接:19732 小球反弹

首先根据题目, 将小球的运动方向拆解为x轴方向上的运动和y轴方向的运动。设小球在x轴方向的运动距离d_x = 15t,y轴方向上的运动距离为d_y = 17t。根据勾股定理,小球每秒移动的距离d =\sqrt{d_x^2+d_y^2}

当小球 A 回到起点时,说明其在水平方向上的移动距离是长方形长度L_x = 343720的偶数倍,在垂直方向上的移动距离是长方形宽度L_y = 233333的偶数倍。因为小球碰壁反弹的路径与原来的路径相同,那么相同的路径走了偶数倍。

假设从开始到结束,小球总共花费了t 秒,那么有:

d_x = 15td_y = 17t

同时需要满足: \frac{d_x}{L_x} = 2k_1,(k_1 \in N^*)\frac{d_y}{L_y} = 2k_2,(k_2 \in N^*)

由此,对 t 进行枚举,直至找到满足 15t 整除 343720且17t 整除 233333,\frac{d_x}{L_x}和 \frac{d_y}{L_y}均为偶数的 t。

最终求得答案为 1100325199.77

需要注意的是,所求答案需要保留两位小数,则距离的数据类型需要用double。

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
#define ll long long int
bool check(ll a,ll b)
{if((a % b == 0)&&((a/b)%2 == 0)) return 1;else return 0;
}
int main()
{ll x=343720,y=233333;ll lx,ly;double dis;ll t;for(ll i=1;;i++){t=i;lx=15*t;ly=17*t;if(check(lx,x) && check(ly,y)) break;}dis=sqrt(15*t*15*t+17*t*17*t);printf("%.2lf",dis);return 0;
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Masked Attention 在 LLM 训练中的作用与原理

在大语言模型&#xff08;LLM&#xff09;训练过程中&#xff0c;Masked Attention&#xff08;掩码注意力&#xff09; 是一个关键机制&#xff0c;它决定了 模型如何在训练时只利用过去的信息&#xff0c;而不会看到未来的 token。这篇文章将帮助你理解 Masked Attention 的作…

Arduino、ESP32驱动GUVA-S12SD UV紫外线传感器(光照传感器篇)

目录 1、传感器特性 2、控制器和传感器连线图 3、驱动程序 UV紫外线传感器是一个测试紫外线总量的最佳传感器,它不需要使用波长滤波器,只对紫外线敏感。 Arduino UV紫外线传感器,直接输出对应紫外线指数(UV INDEX)的线性电压,输出电压范围大约0~1100mV(对应UV INDEX值…

基于微波光子信道的图像传输系统matlab仿真,调制方式采用OFDM+QPSK,LDPC编译码以及LS信道估计

目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1 OFDMQPSK原理 2.2 微波光子信道简介 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下&#xff08;完整代码运行后无水印&#xff09;&#xff1a; 仿真操作步骤可参考程序配套的操作视…

【黑马点评】Redis解决集群的session共享问题

由于不同的tomcat服务器之间的session是不共享的&#xff0c;当请求如果在不同tomcat服务器之间切换就会导致数据丢失的问题。 使用redis可以解决session数据共享的问题 redis是tomcat以外的存储&#xff0c;存在redis中的数据&#xff0c;任何一台tomcat都能看得见&#xff0…

淘宝客户端动态化页面搭建

在手机淘宝等高频更新的业务场景中&#xff0c;UI页面的动态化和快速交付成为技术团队面临的重要挑战。本文围绕“客户端动态化页面搭建”这一主题&#xff0c;深入探讨了如何通过抽象框架设计解决高动态化页面的快速构建问题。文章详细介绍了框架的核心模块&#xff08;如Data…

无人机,雷达定点飞行时,位置发散,位置很飘,原因分析

参考&#xff1a; 无人车传感器 IMU与GPS数据融合进行定位机制_gps imu 组合定位原始数-CSDN博客 我的无人机使用雷达定位&#xff0c;位置模式很飘 雷达的更新频率也是10HZ&#xff0c; 而px飞控的频率是100HZ&#xff0c;没有对两者之间的频率差异做出处理 所以才导致无人…

Postman 版本信息速查:快速定位版本号

保持 Postman 更新至最新版本是非常重要的&#xff0c;因为这能让我们享受到最新的功能&#xff0c;同时也保证了软件的安全性。所以&#xff0c;如何快速查看你的 Postman 版本信息呢&#xff1f; 如何查看 Postman 的版本信息教程

Object结构

Object结构 参考博客

数据分析概述

数据分析&#xff1a;用适当的分析方法和挖掘方法对收集来的数据进行研究总结&#xff0c;提取有用的信息&#xff0c;形成结论并支持决策的过程。 一.数据分析的分类 1.业务描述性分析。以数据为分析对象&#xff0c;以探索数据内的有用信息为主要途径&#xff0c;以解决业务…

ubuntu下终端打不开的排查思路和解决方法

问题现象描述&#xff1a;ubuntu开机后系统桌面显示正常&#xff0c;其他图形化的app也都能打开无异常&#xff0c;唯独只有terminal终端打不开&#xff0c;无论是鼠标点击终端软件&#xff0c;还是ctrlaltt&#xff0c;还是altF2后输入gnome-terminal后按回车&#xff0c;这三…

第一天 Linux驱动程序简介

目录 一、驱动的作用 二、裸机驱动 VS linux驱动 1、裸机驱动 2、linux驱动 三、linux驱动位于哪里&#xff1f; 四、应用编程 VS 内核编程 1、共同点 2、不同点 五、linux驱动分类 1、字符设备 2、块设备 3、网络设备 六、Linux驱动学习难点与误区 1、学习难点 …

探索抓包利器ProxyPin,实现手机APP请求抓包,支持https请求

以下是ProxyPin的简单介绍&#xff1a; - ProxyPin是一个开源免费HTTP(S)流量捕获神器&#xff0c;支持 Windows、Mac、Android、IOS、Linux 全平台系统- 可以使用它来拦截、检查并重写HTTP(S)流量&#xff0c;支持捕获各种应用的网络请求。ProxyPin基于Flutter开发&#xff0…

Windows中安装git工具

下载好git安装包 点击next 选择安装目录 根据需要去勾选 点击next 点击next PATH环境选择第二个【Git...software】即可&#xff0c;再点击【Next】。 第一种配置是“仅从Git Bash使用Git”。这是最安全的选择&#xff0c;因为您的PATH根本不会被修改。您只能使用 Git Bash 的…

Banner区域

div下 justify-content:space-between 左侧测导航left 在这里插入图片描述 在这里插入图片描述

STM32 IIC通信

目录 IIC简介硬件电路连接I2C时序基本单元IIC完整数据帧MPU6050封装硬件IIC内部电路 IIC简介 IIC&#xff08;Inter-Integrated Circuit&#xff09;是 IIC Bus 简称&#xff0c;中文叫集成电路总线。它是一种串行通信总线&#xff0c;使用多主从架构&#xff0c;由飞利浦公司…

蓝桥杯嵌入式学习笔记

用博客来记录一下参加蓝桥杯嵌入式第十六届省赛的学习经历 工具环境准备cubemx配置外部高速时钟使能设置串口时钟配置项目配置 keil配置烧录方式注意代码规范头文件配置 模块ledcubemx配置keil代码实现点亮一只灯实现具体操作的灯&#xff0c;以及点亮还是熄灭 按键cubemx配置k…

体育比分网站开发避坑指南:如何选择靠谱的数据服务商?(10年行业经验总结,避免踩坑!)

作为一家专业的体育比分数据服务商&#xff0c;我们接触过大量客户&#xff0c;发现很多人在开发体育比分网站或接入数据API时&#xff0c;由于选择不靠谱的服务商&#xff0c;导致项目延期、数据延迟、售后无响应、隐性收费等问题&#xff0c;最终影响运营效果&#xff0c;甚至…

VLAN综合实验二

一.实验拓扑&#xff1a; 二.实验需求&#xff1a; 1.内网Ip地址使用172.16.0.0/分配 2.sw1和SW2之间互为备份 3.VRRP/STP/VLAN/Eth-trunk均使用 4.所有Pc均通过DHCP获取IP地址 5.ISP只能配置IP地址 6.所有…

ABAP FPM

1.效果 2.查询条件的feed class SE11创建feed class数据的结构 ZCL_FPM_FIFO_SEARCH GET_DEFINITION方法代码 METHOD if_fpm_guibb_search~get_definition.eo_field_catalog_attr ? cl_abap_structdescr>describe_by_name( ZSS_FIFO_DATA ).ENDMETHOD. PROCESS_EVENT代码…

某大麦手机端-抢票

引言 仅供学习研究&#xff0c;欢迎交流 抢票难&#xff0c;难于上青天&#xff01;无论是演唱会、话剧还是体育赛事&#xff0c;大麦网的票总是秒光。作为一名技术爱好者&#xff0c;你是否想过用技术手段提高抢票成功率&#xff1f;本文将为你揭秘大麦手机端抢票的核心技术…