我的算法修炼之路--8——预处理、滑窗优化、前缀和哈希同余,线性dp,图+并查集与逆向图

我的算法修炼之路--8——预处理、滑窗优化、前缀和哈希同余,线性dp,图+并查集与逆向图


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

文章目录

前言

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

本期涉及算法:模拟 + 优化,图的性质 + 并查集,暴力枚举 + 预处理 + 滑动窗口(优化),线性dp,前缀和 + 哈希表 + 同余,正难则反-反图

题目清单

1.寻宝

题目:P1076 [NOIP 2012 普及组] 寻宝

在这里插入图片描述


在这里插入图片描述

解法:模拟 + 优化
根据题意模拟爬楼过程:

在这里插入图片描述

但是每层楼都去找那个房间的话,时间复杂度大,可以优化,用一个cnt[i]数组存:表示第i层楼有楼梯的房间数,用要找的第s个%cnt[i], 注意如果取模后=0,就是找第cnt[i]个符合要求的房间。

代码:

#include<iostream>usingnamespace std;typedeflonglong LL;constint N =1e4+10, M =110, MOD =20123; LL n, m;bool st[N][N];//标记楼梯信息 LL s[N][M];//维护指示牌信息 LL cnt[N];//用于优化,存第 i 楼有楼梯的房间个数intmain(){  cin >> n >> m;for(int i =1; i <= n; i++){ for(int j =0; j < m; j++)//注意:房间编号从0开始{ int a, b; cin >> a >> b;if(a){  st[i][j]=true; cnt[i]++;} s[i][j]= b;}}int pos =0; cin >> pos; LL ret =0;for(int i =1; i <= n; i++){  ret =(ret + s[i][pos])% MOD;//优化 LL step = s[i][pos]% cnt[i];if(!step) step = cnt[i];//注意 while(1){ if(st[i][pos]) step--;if(step ==0)break; pos++;if(pos == m) pos =0;//走了一圈 }} cout << ret << endl;return0;}

2.村村通

题目:P1536 村村通

在这里插入图片描述

解法:图的性质 + 并查集

这道题要将已经连接好的部分城镇和未连接的城镇都连通(可以是间接连接),连接的边数 = 连通块的个数 - 1。那么,就用并查集维护连通的点。 输入多组数据按ctrl + z结束。

#include<iostream>usingnamespace std;constint N =1010;int n, m;int fa[N

Read more

【Java 开发日记】我们来说一下 MySQL 的慢查询日志

【Java 开发日记】我们来说一下 MySQL 的慢查询日志

目录 一、什么是慢查询日志 二、核心作用 三、配置参数详解 四、开启和配置 1. 临时开启(重启失效) 2. 永久开启(修改配置文件) 五、慢查询日志格式分析 典型日志条目: 关键字段解释: 六、慢查询分析工具 1. mysqldumpslow(MySQL 自带) 2. pt-query-digest(Percona Toolkit) 3. mysqlslow(第三方工具) 七、慢查询日志表模式 启用表模式存储: 表结构: 八、最佳实践和优化建议 1. 阈值设置建议 2. 日志轮转配置 3. 定期分析计划 九、性能监控和告警 1. 监控慢查询数量 2. 慢查询告警脚本

By Ne0inhk
【Docker系列八】使用 Docker run 命令部署 Nginx

【Docker系列八】使用 Docker run 命令部署 Nginx

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂 非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨ 博客目录 * 一、

By Ne0inhk