我的算法修炼之路--6 ——模幂、构造、背包、贪心、剪枝、堆维护六题精析

我的算法修炼之路--6 ——模幂、构造、背包、贪心、剪枝、堆维护六题精析


在这里插入图片描述
💗博主介绍:计算机专业的一枚大学生 来自重庆 @燃于AC之乐✌专注于C++技术栈,算法,竞赛领域,技术学习和项目实战✌💗
💗根据博主的学习进度更新(可能不及时)
💗后续更新主要内容:C语言,数据结构,C++、linux(系统编程和网络编程)、MySQL、Redis、QT、Python、Git、爬虫、数据可视化、小程序、AI大模型接入,C++实战项目与学习分享。
👇🏻 精彩专栏 推荐订阅👇🏻
点击进入🌌作者专栏🌌:
算法画解
C++
🌟算法相关题目点击即可进入实操🌟
感兴趣的可以先收藏起来,请多多支持,还有大家有相关问题都可以给我留言咨询,希望希望共同交流心得,一起进步,你我陪伴,学习路上不孤单!

文章目录

前言

这些题目摘录于洛谷,好题,典型的题,考察各类算法运用,可用于蓝桥杯及各类算法比赛备战,算法题目练习,提高算法能力,补充知识,提升思维。
锻炼解题思路,从学会算法模板后,会分析,用到具体的题目上。
对应题目点链接即可做。

本期涉及算法: 数学(可取模的快速幂),构造(图),01背包(问题转化),贪心算法,dfs暴搜+剪枝,模拟+小根堆维护最小值

在这里插入图片描述

题目清单

1.转圈游戏

在这里插入图片描述

题目:P1965 [NOIP 2013 提高组] 转圈游戏


在这里插入图片描述

解法:数学 + 快速幂

n个数一圈(循环),计算(x + m * 10^k)% n的值即为移动后的位置。

由于 0 < k < 10^9, 就是10(109),非常的大,需要用到可以取模的快速幂,一边乘一边取模。用long long来存。

代码:

#include<iostream>usingnamespace std;typedeflonglong LL; LL n, m, k, x; LL qpow(LL a, LL b, LL p){  LL ret =1;while(b){ if(b &1) ret = ret * a % p; b >>=1; a = a * a % p;}return ret;}intmain(){  cin >> n >> m >> k >> x; cout <<(x + m *qpow(10, k, n))% n << endl;return0;}

2.System Administrator(系统管理员)

题目:CF22C System Administrator

在这里插入图片描述

解法:构造

要满足题目要求:去掉一个点后,图不连通,那么就构造一个点v左边连一个点,右边连n - 2个点。因为这道题目的边有限,且要用完,这种方式连的边最多,且满足题目要求。

重要的性质:

n个点如果至少要连n - 1条边, 所以m < n - 1时,连通图就不存在。所以 m > n - 1;

当有一个顶点与v相连,并且与其他顶点都不相连时,最大的边数可由以下方法来求:对于一个无向图,n个顶点,最多有n(n - 1) / 2条边。(结论),因为每一个点可以和剩下的n-1个点连一条边,那么就是n(n - 1), 且因为两个点只有一条无向边,会多算一次就/2。综上,可以算满足题目要求的情况:一个点连左边一个点,边数1,这个点加上右边一共n - 1个点边数(n - 1) * (n - 2) / 2 + 1。所以 m < (n - 1) * (n - 2) / 2 + 1。

综上所述,n - 1 < m < (n - 1) * (n - 2) / 2 + 1,可以用于判断m是否合法。

如果m在范围内,那么图存在,一定能构造出来,可以先在v的左边放置一个顶点w,在另一边放剩余的n-2个点,将所有的点(除了v本身),连在v上,然后将它们(除了w)相互连接起来。

代码:

#include<iostream>usingnamespace std;typedeflonglong LL; LL n, m, v;intmain(){  cin >> n >> m >> v;if(m< n -1|| m >(n -1)*(n -2)/2+1){  cout <<-1<< e

Read more

使用 VS Code 将项目代码上传到 Gitee 的完整指南

使用 VS Code 将项目代码上传到 Gitee 的完整指南

在现代软件开发流程中,版本控制是不可或缺的一环。 Gitee(码云)作为国内领先的代码托管平台,为开发者提供了稳定、快速的 Git 服务。 本文将详细介绍如何使用 Visual Studio Code(VS Code)将本地项目代码上传至 Gitee 仓库,涵盖从环境配置、初始化仓库到推送代码的完整流程。 一、准备工作 1. 安装必要工具 * Git:确保你的系统已安装 Git。 可通过终端运行 git --version  或 git -v 验证是否安装成功。 * VS Code:下载并安装 Visual Studio Code。 * Gitee 账号:前往 Gitee 官网 注册账号(如尚未注册)。 2. 安装 VS

By Ne0inhk
最新Spring Security实战教程(十五)快速集成 GitHub 与 Gitee 的社交登录

最新Spring Security实战教程(十五)快速集成 GitHub 与 Gitee 的社交登录

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》专栏19年编写主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战 🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解 🌛《开源项目》本专栏主要介绍目前热门的开源项目,带大家快速了解并轻松上手使用 ✨《开发技巧》本专栏包含了各种系统的设计原理以及注意事项,并分享一些日常开发的功能小技巧 💕《Jenkins实战》专栏主要介绍Jenkins+Docker的实战教程,让你快速掌握项目CI/CD,是2024年最新的实战教程 🌞《Spring Boot》专栏主要介绍我们日常工作项目中经常应用到的功能以及技巧,代码样例完整 🌞《Spring Security》专栏中我们将逐步深入Spring Security的各个技术细节,带你从入门到精通,全面掌握这一安全技术 如果文章能够给大家带来一定的帮助!欢迎关注、评

By Ne0inhk

【2026最新收集】github国内镜像站,高速访问

一、最新可用GitHub镜像站汇总 以下镜像站经实测验证,按“直接访问型”“文件加速型”“知名项目专属型”分类,标注实时可用性,方便按需选择。 1. 直接访问型镜像站(可浏览仓库、查看代码) 此类镜像站完全复刻GitHub界面,支持搜索、浏览仓库、查看代码文件,操作逻辑与官网一致,适合日常代码查阅。 镜像站序号访问方式镜像站链接当前状态备注1直接访问https://bgithub.xyz✅ 可用界面简洁,响应速度快,支持仓库搜索2直接访问https://gitclone.com✅ 可用附带Git Clone加速命令,适合开发者使用3直接访问https://github.ur1.fun✅ 可用加载速度快,支持Markdown文档渲染 推荐场景:需在线浏览仓库结构、查看代码细节、复制代码片段时,优先选择bgithub.xyz或kkgithub.com,加载速度和稳定性最优。 2. 文件加速型镜像站(专用于下载Release、压缩包) 此类镜像站主打文件下载加速,无需浏览完整仓库,

By Ne0inhk
【AI大模型前沿】蚂蚁开源Ring-lite:边缘计算新选择,2.75B激活参数、小模型大智慧

【AI大模型前沿】蚂蚁开源Ring-lite:边缘计算新选择,2.75B激活参数、小模型大智慧

系列篇章💥 No.文章1【AI大模型前沿】深度剖析瑞智病理大模型 RuiPath:如何革新癌症病理诊断技术2【AI大模型前沿】清华大学 CLAMP-3:多模态技术引领音乐检索新潮流3【AI大模型前沿】浙大携手阿里推出HealthGPT:医学视觉语言大模型助力智能医疗新突破4【AI大模型前沿】阿里 QwQ-32B:320 亿参数推理大模型,性能比肩 DeepSeek-R1,免费开源5【AI大模型前沿】TRELLIS:微软、清华、中科大联合推出的高质量3D生成模型6【AI大模型前沿】Migician:清华、北大、华科联手打造的多图像定位大模型,一键解决安防监控与自动驾驶难题7【AI大模型前沿】DeepSeek-V3-0324:AI 模型的全面升级与技术突破8【AI大模型前沿】BioMedGPT-R1:清华联合水木分子打造的多模态生物医药大模型,开启智能研发新纪元9【AI大模型前沿】DiffRhythm:西北工业大学打造的10秒铸就完整歌曲的AI歌曲生成模型10【AI大模型前沿】R1-Omni:阿里开源全模态情感识别与强化学习的创新结合11【AI大模型前沿】Qwen2.5-Omni:

By Ne0inhk