第十二届蓝桥杯省赛CC++ 研究生组

十二届省赛题

第十二届蓝桥杯省赛C&C++ 研究生组-卡片
第十二届蓝桥杯省赛C&C++ 研究生组-直线
第十二届蓝桥杯省赛C&C++ 研究生组-货物摆放
第十二届蓝桥杯省赛C&C++ 研究生组-路径
第十二届蓝桥杯省赛C&C++ 研究生组-时间显示
第十二届蓝桥杯省赛C&C++ 研究生组-砝码称重
第十二届蓝桥杯省赛C&C++ 研究生组-异或数列
第十二届蓝桥杯省赛C&C++ 研究生组-双向排序

三年小小结

水过了最新三年的题目,小小复盘一下~

简单模拟

  1. 卡片(填空):从1开始计算每位所用卡片,当某个数字的卡片不足时,则找到能拼到的最大数。注意最后的这个数是拼不出来的第一个数,所以答案记得减一。作为填空题,枚举即可解决,该题目进一步思考的话,一定是卡片1消耗量最大,可转化为1出现2021次的数字

  2. 直线(填空):判断给定范围内的点能组成多少条不同直线,表面考算法,其实是考数学公式~注意分母不为0,直接把平行于y轴的单算即可,记得后续加上。
    在这里插入图片描述

  3. 时间显示:常见的时间处理类问题,小小注意下小时是24小时制。需要显示的时间是时(0-23)分(0-59)秒(0-59),给的输入是从00-00-00开始的毫秒数,则该先除的先除该求余的求余。给的年份就是迷惑性信息了,木用,忽略即可。

  4. 裁纸刀(填空):先裁四下去掉边缘,再把行分开(行数-1),再把列分开((列数-1)*行数)。甚至都没啥小坑,温柔

  5. 灭鼠先锋(填空):手动可以直接模拟~ 再优化一点点的话,对于一行空内容的话,谁先手谁必输,问题等价于谁后把第一行填满,谁就一定能保证自己赢。问题分解的思想很有效,简单分割也许就能大幅简化问题

  6. 与或异或(填空):电路图看起来挺唬人的,但枚举就能解决的纸🐅。本质上就是按照a[i][j] = a[i-1][j] op a[i-1][j+1],其中op可选&、^、|其一,统计结果为1的组合个数。

  7. 翻转:翻转规则为出现010或101就可以把中间的值翻转,借助翻转的情况下是否能把两个串变相同,如果是输出最小翻转次数。虽然题设中有“翻转操作可无限重复”,但其实一次翻转即可,翻完了其实也就不能出现不同了,属于干扰信息。以s串1010101为例,翻转第一次1000101,翻转第二次1000111,搞定。

excel

  1. 工作时长(填空):本质上要求的是两个时间段之差的和。用excel先排序;再选择时间格式[h]:mm:ss,注意小时的选择,以处理超出24小时的情况;计算两个时间段的差,关于求出整列的上下行间的时间差,先手算两个单元格,后续直接下拉即可自动计算;求和

数学问题

质因数

很稳定,每年都考了一个,或直接或加了点马甲

  1. 货物摆放(填空):整数分解问题。n较大直接暴力枚举不可行,考虑当时质因数模块学过整数范围内一定能用十个质因数表示,类推n的约数也不会太多,转化为先求出n的约数(别漏了1和n),再计算相乘为n的组合个数
  2. 质因数个数:给出整数n的质因数个数
sqr = sqrt(1.0*n);
num = 0;
for(int i = 2; i <= sqr; i++){if(n % i == 0){num++;while(n % i == 0) n /= i;}
}
if(n > 1) num++;//别漏了最后这个顽固分子~
  1. 公因数匹配:找到首次出现或同时出现但最短的区间,满足头尾元素有大于1的公因数。直接暴力的话两层的105超时,有了之前的经验,也考虑下先分解看看。分解每个数的所有质因数,如果没出现过,则记录首次出现的位置;如果已经出现过,判断是否需要更新最左位置。判断该数满足的区间是否早于或短于已有的区间,若是则更新。
#include<stdio.h>
#include<math.h>
const int maxn = 1e6 + 10;
int p[maxn] = {0};
int main(){int n, x, l, ansL, ansR = 0, sqr;scanf("%d", &n);ansL = n + 1;for(int i = 1; i <= n; i++){l = n + 1;scanf("%d", &x);sqr = sqrt(1.0 * x);for(int j = 2; j <= sqr; j++){if(x % j == 0){if(!p[j]) p[j] = i;else if(p[j] < l) l = p[j];while(x % j == 0) x /= j;}}if(x > 1){if(!p[x]) p[x] = i;else if(p[x] < l) l = p[x];}if(l < ansL || (ansL == l && ansR > i)){ansL = l;ansR = i;}}printf("%d %d", ansL, ansR);return 0;
} 

说都说了,顺带复习下最小公约数&最大公倍数

int gcd(int a, int b){//辗转相除法求最大公约数,时间复杂度O(logn) if(!b) return a;return gcd(b, a % b);
}最小公倍数为a * b / gcd(a, b) 
  1. 数的拆分:给出整数n,将其拆分为x2* y3(大于2和偶数次幂可以转化为底数先升幂再把幂次调到2,奇数次幂同理,例如x4=x2的平方,y5=y2的平方 *y)的形式则可拆分返回yes,否则返回no。n最大为10e18,开五次方大约是4000,则我们对4000以内的质数打表,分解后的约数就不会太大了。判断是否能够融入我们要求的模式,即能否转化为平方或立方,能则该数可以拆分,否则是个单蹦不能拆分。

进制转换

  1. 异或数列:十进制转二进制。各方初始值为0,给定数列,选数异或,每个数只能选用一次。显然,谁先抢到最高位的“唯一”(1个或奇数的单蹦1)一个1则必胜。问题转化为寻找:
    • 最高位的唯一的一个1
    • 最高位的偶数个1
      • 总的零的数量为偶数个,先手拿到单蹦1则必胜
      • 总的零的数量为奇数个,后手拿到单蹦1则必胜

否则为平局
2.

阶乘特点

  1. 阶乘的和:直接算的话肯定超时,而且仔细想来只是求最大的m,并不需要真的算出和,只是能进行比较即可,算出来也是多余工作。回到问题本身阶乘m!,我们有多个ai!,对于多个阶乘有(m+1)m! = (m+1)!,我们对ai进行排序,顺带统计每个数的出现次数,要有序且有映射关系考虑用map;自底到高统计每位是否能进位,第一个不能进位前的数就是我们要找的m

求余

  1. GCD:考查辗转相除法和求余的简化。思维更简单的解法,观察知最大公约数是abs(a-b),从1开始依次枚举即可,能骗些分数。进一步思考的话,回到问题本身,
    • 找使得gcd(a+k,b+k)最大的k,根据辗转相除算法知,gcd(a+k,b+k)=gcd(b+k,b-a)
    • gcd(b+k,b-a) = b-a(假设已经处理好,能保证b >= a)
    • 转化为找到满足(b+k)%(b-a) == 0的最小值
    • 记g = b- a,则(b+k)%g = (b % g + k % g) % g == 0
      b % g <g, k % g < g,则g - b % g = k
      在这里插入图片描述
#include<iostream>
#include<algorithm>
using namespace std;
int main(){long long a, b, g;scanf("%lld%lld", &a, &b);if(a > b) swap(a, b);g = b - a;printf("%lld", g - b % g);return 0;
} 

观察规律

  1. 全排列的价值:观察给出的样例知,对于1~n, 前后两两价值相加的和都相等,为(n-1)*n/2;那再看可以组数,也就是排列数n!/2(除2是因为两两一组相加才为定值)
    在这里插入图片描述

动态规划

  1. 砝码称重:很经典的一个问题。我们能称出来的最大重量是所有砝码重量之和,最小的可能重量是1,其中题设告诉我们砝码总重范围也是一种暗示了。
    利用dp的话,我们依次计算有1~n个砝码能称出来的重量,首先前i个砝码能称出来的重量,也一定能用前i+1个砝码称出来。对于前i个砝码的判断,之前称不出来的重量m,考虑
    • 第i个砝码重量w[i] == m
    • 已经可以称出来m + w[i]
    • 已经可以称出来abs(m - w[i])
      • m > w[i],能称出来m-w[i],则再加个w[i]
      • w[i] < m,能称出来w[i]-m,则在对面来个w[i]

最后统计用n个砝码所能称出的重量个数即可

int dp[N][maxn] = {0};
count = 0;
for(int i = 1; i <= n; i++){for(int j = 1; j <= sum; j++){dp[i - 1][j] = 1;if(!dp[i][j]){if(w[i] == j || a[i - 1][j + w[i]] || a[i - 1][abs(j - w[i])]) dp[i][j] = 1;}}
}for(int i = 1; i <= sum; i++)count += dp[n][i];

莫队算法

  1. 重复的数:很直给的一个莫队情况,大致思想是首先只适用于可离线的情况,对元素进行分块,对查询区间排序(同块则按照右边界排序,不同块按照块号排序);处理查询

m叉树

  1. 子树的大小:
    • 对于m叉树的第i个结点,第一个结点号为(i - 1) * m + 2
    • 满m叉树时,第i个结点的最右孩子为i*m + 1(这个1是根节点)
    • 总结点数为n的完全m叉树,最后一个分支节点的最右孩子为n

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

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

相关文章

AI PPT生成工具 V1.0.0

AI PPT是一款高效快速的PPT生成工具&#xff0c;能够一键生成符合相关主题的PPT文件&#xff0c;大大提高工作效率。生成的PPT内容专业、细致、实用。 软件特点 免费无广告&#xff0c;简单易用&#xff0c;快速高效&#xff0c;提高工作效率 一键生成相关主题的标题、大纲、…

TCP | TCP协议格式 | 三次握手

1.TCP协议 为什么需要 TCP 协议 &#xff1f;TCP 工作在哪一层&#xff1f; IP网络层是不可靠的&#xff0c;TCP工作在传输层&#xff0c;保证数据传输的可靠性。 TCP全称为 “传输控制协议&#xff08;Transmission Control Protocol”&#xff09;。 TCP 是面向连接的、可靠…

YOLOV9训练自己的数据集

1.代码下载地址GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information 2.准备自己的数据集 这里数据集我以SAR数据集为例 具体的下载链接如下所示&#xff1a; 链接&#xff1a;https:/…

备战蓝桥杯Day34 - 每日一题

题目描述 解题思路 1.输入数据n&#xff0c;并将字符串类型转换成整数类型 2.求出输入n是2的几次幂&#xff08;调用math库中的求对数的方法&#xff09;&#xff0c;在下面的循环中要用到 3.定义sum和&#xff0c;将抽取到的牌的总数加起来存储 4.count 0 # 记录 2 的第几…

算法打卡day20|二叉树篇09|Leetcode 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

算法题 Leetcode 669. 修剪二叉搜索树 题目链接:669. 修剪二叉搜索树 大佬视频讲解&#xff1a;修剪二叉搜索树视频讲解 个人思路 把这道题想复杂了&#xff0c;还想着如何去重构树 解法 递归法 依旧递归三步走 1.确定递归函数的参数以及返回值 这题递归需要返回值&#…

探索人工智能基础:从概念到应用【文末送书-42】

文章目录 人工智能概念人工智能基础【文末送书-42】 人工智能概念 人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;作为当今科技领域的热门话题&#xff0c;已经深刻地影响着我们的生活和工作。但是&#xff0c;要理解人工智能&#xff0c;我们首先需…

【OpenSSH】Windows系统使用OpenSSH搭建SFTP服务器

【OpenSSH】Windows系统使用OpenSSH搭建SFTP服务器 文章目录 【OpenSSH】Windows系统使用OpenSSH搭建SFTP服务器一、环境说明二、安装配置步骤1.下载完成后&#xff0c;传至服务器或者本机并解压至C:/Program Files/目录下2.打开PowerShell终端3.进入到包含ssh可执行exe文件的文…

物联网和工业物联网的区别——青创智通

工业物联网解决方案-工业IOT-青创智通 物联网&#xff08;IoT&#xff09;和工业物联网&#xff08;IIoT&#xff09;作为现代科技的重要分支&#xff0c;正在逐渐渗透到我们的日常生活和工业生产中。它们的应用范围广泛&#xff0c;涵盖了从智能家居到自动化工厂的多个领域。…

类于对象(上)--- 类的定义、访问限定符、计算类和对象的大小、this指针

在本篇中将会介绍一个很重要和很基础的Cpp知识——类和对象。对于类和对象的篇目将会有三篇&#xff0c;本篇是基础篇&#xff0c;将会介绍类的定义、类的访问限定符符和封装、计算类和对象的大小、以及类的 this 指针。目录如下&#xff1a; 目录 1. 关于类 1.1 类的定义 2 类…

Windows Insiders WSLg Linux GUI App 支持尝鲜

2021 年 4 月 21 日&#xff0c;微软在 Developer Blogs 发布了 Windows 预览版 WSL&#xff08;Windows Linux 子系统&#xff09; 对 Linux GUI App 的支持的公告&#x1f517;&#xff0c;碰巧&#x1f600;我最近重装了波电脑&#xff0c;系统换成了 Windows Insiders&…

Python Flask框架 -- 模版渲染、模版访问对象属性、过滤器与自定义过滤器

模版渲染 使用 render_template 来渲染模板 from flask import Flask, render_templateapp Flask(__name__)app.route(/blog/<blog_id>) def blog_detail(blog_id):return render_template(blog_detail.html, blog_idblog_id, username核)if __name__ __main__:app.r…

ByteTrack多目标跟踪——YOLOX详解

文章目录 1 before train1.1 dataset1.2 model 2 train2.1 Backbone2.2 PAFPN2.3 Head2.3.1 Decoupled Head2.3.2 anchor-free2.3.3 标签分配① 初步筛选② simOTA 2.3.4 Loss计算 项目地址&#xff1a; ByteTrack ByteTrack使用的检测器是YOLOX&#xff0c;是一个目前非常流行…

C++程序变量的引用

在C中&#xff0c;变量的“引用” 就是变量的别名&#xff0c;因此引用又称为别名。由于引用不是独立的变量&#xff0c;编译系统不给它单独分配存储单元&#xff0c;因此在建立引用时只有声明&#xff0c;没有定义&#xff0c;只是声明它和原有的某一变量的关系。 一、引用变更…

企业员工培训考试系统开发方案

一、项目背景与目标 &#xff08;一&#xff09;项目背景 随着企业对员工培训的重视程度不断提高&#xff0c;传统的线下培训方式已经无法满足现代企业的需求。为了提高培训效果&#xff0c;降低培训成本&#xff0c;需要开发一款企业员工培训考试系统&#xff0c;通过在线课…

马蹄集oj赛(双周赛第二十三次)

目录 数列分割 小码哥的地毯 小码哥的三色墙 palace 高数考试 新全排列 黑白双煞 等差 数三角形 区间修改 相对马高 小码哥剪绳子 数列分割 难度:黄金 时间限制:1秒巴 占用内存:64 M 小码哥给你一个长度为n的数列&#xff0c;求将该数列分割成两个左右两个部分且两…

OceanPen Art AI绘画系统 运营教程(二)AI视频AI创作PPT

在一个崇高的目标支持下&#xff0c;不停地工作&#xff0c;即使慢&#xff0c;也一定会获得成功。 —— 爱因斯坦 演示站点&#xff1a; ai.oceanpen.art 官方论坛&#xff1a; www.jingyuai.com 登陆后台 ppt密匙设置 导航菜单配置 Key池管理 二、前端显示 体验站点…

哲♂学家带你深♂入了♂解结构体及结构体内存大小问题

目录 概要 一、结构体的声明 二、结构体变量的创建和初始化 三、结构体的特殊声明 四、结构体内存对齐 1、对齐原则 2、例一 对齐数 计算方法 3、例二 总结 概要 结构体是我们日常编程中经常要用到的一种自定义类型&#xff0c;使用起来也是十分的方便。接下来就由…

计算机二级Python题目3

题目来源&#xff1a;计算机二级Python半个月抱佛脚大法&#xff08;内呈上真题版&#xff09; - 知乎 目录 1. 基础题 1.1 基础题1 1.2 基础题2 1.3 基础题3 2. turtle绘图题 3. 大题 3.1 大题1 3.2 大题2 1. 基础题 1.1 基础题1 a,b,ceval(input()) ls[] for i in …

2核4G服务器优惠价格和性能测试,2024年

阿里云2核4G服务器租用优惠价格&#xff0c;轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图&#xff1a; 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

Jmeter测试计划

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…