我的算法修炼之路--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

【JAVA探索之路】简单聊聊Kafka

【JAVA探索之路】简单聊聊Kafka

目录 一、Kafka核心概念与架构 核心概念解析 集群架构一览 二、Kafka核心特性与工作原理 顺序I/O与零拷贝 生产者可靠性保证 精确一次语义 三、Kafka关键API与生态系统 四、Kafka运维管理 五、Kafka典型应用场景 一、Kafka核心概念与架构 要掌握 Kafka,必须从理解其精心设计的基本模型开始。 核心概念解析 * 消息与批次:Kafka 的基本数据单元称为“记录”,包含键、值和时间戳。为提高效率,多条记录会组合成“批次”进行传输。 * 主题与分区:消息按“主题”进行分类,类似于数据库的表。每个主题可被分割为多个“分区”,这是 Kafka 实现并行处理和横向扩展的基石。消息在分区内按追加顺序存储,并分配一个单调递增的偏移量,从而保证了消息的顺序性。 * 生产与消费:生产者将消息发布到指定主题的特定分区;消费者则以“拉”

By Ne0inhk
Java Map常用方法和实现类深度详解

Java Map常用方法和实现类深度详解

文章目录 * 前言 * 第一章 Map接口概述 * 1.1 Map的继承体系 * 1.2 Map的核心特性 * 1.3 存储结构的理解 * 第二章 HashMap:最常用的Map实现 * 2.1 底层数据结构演进 * 2.2 核心源码深度解析 * 2.2.1 重要成员变量 * 2.2.2 设计哲学解读 * 2.3 put方法执行流程 * 2.4 扩容机制(resize) * 2.5 线程安全问题 * 第三章 LinkedHashMap:保持插入顺序 * 3.1 数据结构特点 * 3.2 两种排序模式 * 3.

By Ne0inhk
全球顶级AI大模型最新排名出炉!Gemini 3.1 Pro与GPT-5.4智能并列第一,中国 GLM-5强势杀入前 5,DeepSeek V3.2 成性价比之王!

全球顶级AI大模型最新排名出炉!Gemini 3.1 Pro与GPT-5.4智能并列第一,中国 GLM-5强势杀入前 5,DeepSeek V3.2 成性价比之王!

你好,我是杰哥 刚刚,权威 AI 评测平台Artificial Analysis 发布了全球最新大模型三维排名:智能指数(Intelligence)、**输出速度(Output Tokens per Second)**和 价格(USD per 1M Tokens)。 这次排名亮点满满: * 中美模型继续霸榜智能顶端,Gemini 3.1 Pro Preview 和 GPT-5.4(xhigh)并列57分第一! * 中国模型表现亮眼:GLM-5 智能第5(50分),DeepSeek V3.2虽然智能中等,但价格+速度综合性价比极高,继续展现“中国力量”! GLM-5 是由中国领先的 AI 公司智谱AI(Zhipu AI)

By Ne0inhk
80+提示词 震撼发布|Seedance 2.0 提示词完全指南:从新手到“AI导演“

80+提示词 震撼发布|Seedance 2.0 提示词完全指南:从新手到“AI导演“

编者按 这两天,X.com、微博、小红书被一款名叫 Seedance 2.0 的 AI 视频生成模型刷屏。从 Tom Cruise 和 Brad Pitt 的"对打",到《复仇者联盟》的重制版,再到"水獭版"《老友记》……这些一度被认为需要好莱坞团队耗时数月才能完成的视频,如今只需一句提示词就能秒生成。 作为字节跳动推出的新一代多模态视频生成工具,Seedance 2.0 正式宣告:AI 视频创作时代已至,人人都可能成为"导演"。 今天,我们为你汇总了全网最实用的 Seedance 2.0 提示词和使用技巧,让你快速从入门到精通。

By Ne0inhk