当前位置: 首页 > news >正文

2026年3月14日GESP五级现场直击

hi !这里是箫竺,时隔n月,我终于更新啦!

这次五级出的是真仓促,光凭选择题与判断题用一摸一样的体面代码就可以看出来,那这么简单的五级,还有那个小伙伴没过呢?

(让我康康!)

那么本期blog,就让我为您拆解202603五级的编程T1和T2吧

目录

T1 有限不循环小数

题目大意

上思路

实现

T2 什么名我忘记了

题目大意

思路

实现

后记


前期叠甲

本期内容仅为个人做法,讲究快速和不准确,读者们如果有更好的想法可以提在评论区

那让我们开始吧

T1 有限不循环小数

第一题体面不能说很有意思,只能说不输数学课本

题目大意

令 $1/a$ 为有限的、不循环的小数,称其为终止数

现给出$ l,r$,问本区间内有多少个$终止数$

上思路

首先,什么是终止数?

就是说像$1/2$、 $1/4$ 这样可以被“除完全”的小数,称终止数

那我们用中学时期学过的特殊化来找规律

问 1~11之间有多少个终止数,没错,5个

分别为2 ,4 ,5 ,8 ,10

那他们有什么共同点

根据唯一分解定理,他们可以如下分解:

2 → 2 4 → 2 * 2 5 → 5 8 → 2 * 2 * 2 10 → 2 * 5

读者们,看出来了吗,他们都含有2 和 5,那我们就可以挨个分解,若含有杂数,就判作非终止数

思路有了,那怎么实现呢?

实现

首先,暴力方法

我们可以直接对每个数进行拆分,像这样:

vector<int> init(int n){ vector <int> p; if(n % 2 == 0){ p.push_back(2); while(n % 2 == 0){ n /= 2; } } for(int i = 3;i*i <= n;i+=2){ if(n % i == 0){ p.push_back(i); while(n % i == 0){ n /= i; } } } if(n >= 2) p.push_back(n); return p; }

接着对每个数的质因子进行判断,这道题就做粗来了

AC代码

#include<iostream> #include<algorithm> #include<vector> #include<cmath> #define int long long using namespace std; int l,r,ans; vector<int> init(int n){ vector <int> p; if(n % 2 == 0){ p.push_back(2); while(n % 2 == 0){ n /= 2; } } for(int i = 3;i*i <= n;i+=2){ if(n % i == 0){ p.push_back(i); while(n % i == 0){ n /= i; } } } if(n >= 2) p.push_back(n); return p; } signed main(){ cin >> l >> r; for(int i = l;i <= r;i++){ vector <int> p = init(i);bool flag = true; for(int j = 0;j < p.size();j++){ if(p[j] != 2 && p[j] != 5) flag = false; } if(flag){ ans++; } } cout << ans; return 0; }

但这也太长了吧,那我们可以对其进行精简。

其实长的重点其实是判断和分解身首分家,那我可以进行合并,像这样

bool init(int n){ if(n % 2 == 0){ while(n % 2 == 0){ n /= 2; } } for(int i = 3;i*i <= n;i+=2){ if(n % i == 0 && i != 5){ return false; } } if(n >= 2 && n != 5) return false; return true; }

是不是短了很多呢,那AC代码也会很短

像这样

#include<iostream> #include<algorithm> #include<vector> #include<cmath> #define int long long using namespace std; int l,r,ans; bool init(int n){ if(n % 2 == 0){ while(n % 2 == 0){ n /= 2; } } for(int i = 3;i*i <= n;i+=2){ if(n % i == 0 && i != 5){ return false; } } if(n >= 2 && n != 5) return false; return true; } signed main(){ cin >> l >> r; for(int i = l;i <= r;i++){ if(init(i)) ans++; } cout << ans; return 0; }

T2 什么名我忘记了

这个题面太直白了,不像CCF的实力啊

题目大意

现有a,b数组,保证数组内个数不相等,问a b 数组出现的相同数字有多少

(不知道读者大大们看没看懂,但箫竺只能背到这了)

思路

其实思路很好想,暴力进行合并就好了,但这里箫竺需要提醒一下各位。

进行暴力枚举真的过不了,究其原因是因为不存在的数字要遍历一遍B数组,找到了的数字还要继续遍历,才这么多的,解决方法代码见

实现

我们先将A,B数组排个序,因为题目中并未体现位置的重要性,所以我们sort排一下就好

接着对暴力代码进行一点优化

首先排过序后,a数组内找到过的数字,肯定比下一个要找的数字小,也对应B数组内的下一个数:

A:2 3 4

B:1 2 3 5 7

我们找了2,找到后,3(A内的)一定在B数组内2 的下标 的后面(抱歉,这是我能想到的最容易理解的说法了),所以我们设一个BIT存这样的下标,找到了就break

接着我们优化非存在数字的遍历

排序后,A内的某数一定不会出现在B内的大于此数字的数字后面,所以如果下一个数字比目标数字大但还没有找到相同数字,我们就跳出循环

由此AC代码诞生:

#include<iostream> #include<algorithm> #include<cmath> #define int long long using namespace std; int n,m; int a[100001],b[100001]; signed main(){ cin >> n >> m; for(int i =1;i <= n;i++){ cin >> a[i]; } for(int i = 1;i <= m;i++){ cin >> b[i]; } sort(a+1,a+1+n);sort(b+1,b+1+m); int ans = 0,bit = 1; for(int i = 1;i <= n;i++){ for(int j = bit;j <= m;j++){ if(a[i] == b[j]){ ans++; bit = j; break; } if(b[i+1] > a[i]){ break; } } } cout << ans; return 0; }

后记

我认为,这次五级很简单,出题过于仓促。

在这里祝大家逢考必过

(如果有看不懂的内容请私信博主)

http://www.jsqmd.com/news/483523/

相关文章:

  • Flutter 三方库 translations_code_gen 鸿蒙适配指南 - 实现强类型国际化资产自动化编译、在 OpenHarmony 上打造编译时安全的多语言工作流实战
  • Simulink中的Boost电路模块搭建与多种闭环控制策略:传递函数验证、参数整定与伯德图分析
  • 探索 M00292:多算法雷达一维恒虚警检测 CFAR 可视化系统
  • 57c1-2四轮轮毂电机驱动汽车的DYC直接横摆力矩稳定性控制,上层控制器DYC产生横摆力矩Mz
  • Qwen2.5-72B-GPTQ-Int4效果惊艳:128K长文档关键信息定位与问答
  • 亚像素以及实现原理、方法
  • PMSM传统滑模观测器+PLL仿真模型,加上了相位补偿观测波形与实际波形基本重合。 以下图一为...
  • Flutter 三方库 aws_sqs_api 鸿蒙适配指南 - 实现分布式消息异步解耦、在 OpenHarmony 上打造高可用云端队列控制中枢实战
  • 【AOP】Spring Framework核心:AOP:静态代理 vs 动态代理(JDK动态代理 vs CGLIB)、AOP核心概念、应用场景
  • 探索 FPGA 电机控制源码:Verilog + Nios II 架构的奇妙之旅
  • REX-UniNLU网络安全应用:恶意文本智能检测系统
  • 从对象头到内存屏障,搞懂Java锁的底层原理
  • 直流调速系统Simulink仿真:包含参数设置代码、Simulink仿真模型及撰写文档
  • RP2040+CircuitPython打造可交互惊喜盒子硬件平台
  • Factory Io超大型仿真场景:全方位模拟工业生产流程
  • AIGlasses OS Pro辅助C语言学习:通过视觉分析理解指针与内存操作
  • springboot在自定义RPC框架中的使用
  • ROS系统中基于强化学习算法的移动机器人路径规划策略研究:应用DQN、DDPG、SAC及TD3算法
  • DS_store文件泄露漏洞全流程演示(在kali系统中报错时搭建虚拟环境演示以及其他方法)
  • AIGlasses_for_navigation数据存储方案:MySQL安装配置与轨迹管理
  • 洞察2026:宁夏GEO优化市场格局与头部服务商评测 - 2026年企业推荐榜
  • 国产MCU实时姿态与功耗监测系统设计
  • GRU时间序列回归预测模型:基于Matlab的详细注释代码实现
  • comsol岩层开挖作用下瓦斯渗透运移模型,考虑应力作用下的渗透率变化,流固耦合物理场,使用p...
  • 基于MSPM0G3507的嵌入式PID闭环控制教学平台
  • MATLAB统一潮流控制器仿真模型:基于模块化多电平MMC的UPFC在高压输电线路的应用
  • Dell笔记本车载电源适配器:20V/90W升压+1-Wire协议认证设计
  • 2026年初实力盘点:五家可靠卷帘门热门厂家深度解析 - 2026年企业推荐榜
  • 【2026年小米春招 - 3月14日 -第一题- 农田网格】(题目+思路+JavaC++Python解析+在线测试)
  • 开箱即用:万物识别镜像Gradio界面快速体验教程