知识点系列——基本算法

news/2025/3/13 0:11:16/文章来源:https://www.cnblogs.com/mayin/p/18768968

2.2 尺取法

HDU-2029 Palindromes _easy version

  • 回文数。
void solve() {cin>>s;string t=s;reverse(ALL(t));if(s==t) cout<<"yes"<<endl;else cout<<"no"<<endl;
}

HDU - 5358 First One

  • 因为题目有 $\log$,然后又是双重循环,肯定得优化,因为存在 $\log$,那么又得考虑每一位了。这道题有个特殊的地方就是,我们可以令 $k=(\log_2{S(i,j)}+1),我们可以枚举 $k$ 的值,尺取法选择区间 $[l,r]$ 满足的 $k$,然后固定 $i$ 找 $j$ 满足的区间 $[l,r]$,则在区间中的 $(i+j)=i(r-l+1)+(r-l+1)(l+r)/2$,最后再乘 $k$。
int n,w[N],s[N];void solve() {cin>>n;FOR(i,1,n){cin>>w[i];s[i]=s[i-1]+w[i];}int ans=0;FOR(k,1,34){int L=(1ll<<(k-1)),R=(1ll<<k)-1;if(k==1)L=0;int r=1,l=1;FOR(i,1,n){l=max(l,i);while(l<=n&&s[l]-s[i-1]<L)l++;r=max(r,l);while(r<=n&&s[r]-s[i-1]>=L&&s[r]-s[i-1]<=R)r++;if(l<r){ans+=((r-l)*i+(r-l)*(l+r-1)/2)*k;}}}cout<<ans<<endl;
}

580B-Kefa and Company

  • 题意:给定一些人的钱和贡献,选取一些人让他们的钱之差不超过d,使贡献最大。
  • 思路:先按工资升序排序,然后套上尺取就行了,时间复杂度 $O(n\log n)$。
int n,m;
struct E{int a,b;bool operator<(const E &x) const {return a < x.a;}
}w[N];
int s[N];void solve() {cin>>n>>m;FOR(i,1,n){cin>>w[i].a>>w[i].b;}sort(w+1,w+n+1);FOR(i,1,n){s[i]=s[i-1]+w[i].b;}int ans=0;int r=0;FOR(l,1,n){while(r<=n&&w[r].a-w[l].a<m){ans=max(ans,s[r]-s[l-1]);r++;}}cout<<ans<<endl;
}

……


总结一下尺取法:尺取法的本质就是给定 $l$ ,然后去找满足条件的 $r$。应用:见到有单调性、有限制的区间问题,很自然地就会想到用尺取去做。


2.3 二分法

洛谷 - P1462 通往奥格瑞玛的道路

洛谷 - P1824 进击的奶牛

洛谷 - P1419 寻找段落

洛谷 - P1083 借教室

洛谷 - P2678 跳石头

洛谷 - P1314 聪明的质监员

洛谷 - P1868 饥饿的奶牛

洛谷 - P1493 分梨子

HDU - 6231 K-th Number

三分法

洛谷-P3382 三分

HDU-3400 Line belt

洛谷-P3745 期末考试

洛谷-P1883 三分 | 函数

2.5 倍增法与ST算法

洛谷-P4155 国旗计划

洛谷-P2880 Balanced Lineup G

HDU-5443 The Water Problem

HDU-6107 Typesetting

洛谷-P3865 ST 表 && RMQ 问题

洛谷-P2251 质量检测

洛谷-P1816 忠诚

洛谷-P1198 最大数

2.6 前缀和与差分

HDU-1556 Color the ball

HDU-6273 Master of GCD

2.7 离散化

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

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

相关文章

Laravel11 从0开发 Swoole-Reverb 扩展包(七) - 发布laravel-swoole-reverb

开篇 这一篇,我做了过度,因为正好也完成第一个版本的laravel swoole reverb服务。因此,先做个🧐,我们后面还会继续分享整个实现流程。 关于laravel-swoole-reverb laravel-swoole-reverb是一个将 Swoole 与 Laravel Reverb 集成的包,采用php8.2版本编写,可用于高性能的…

TinyWebServer全解

项目地址 原理合集 把链接都放在这里,可以一次看个爽 epoll main 首先是main函数: #include "config.h"int main(int argc, char *argv[]) {//需要修改的数据库信息,登录名,密码,库名string user = "ct";string passwd = "123456";string data…

推送数据解决

自动批量提交的介绍 在线URL链接自动批量提交工具介绍链接提交工具是网站主动向百度搜索推送数据的工具,本工具可缩短爬虫发现网站链接时间,网站时效性内容建议使用链接提交工具,实时向搜索推送数据。本工具可加快爬虫抓取速度,无法解决网站内容是否收录问题URL链接自动批量…

常用的base.css文件

一、常用的base.css文件(也是比较简略的,但按需增加)body,ul,li,ol,dl,dd,h1,h2,h3,h4,h5,h6,input,p{ margin:0;} ul,ol { padding:0;} img { border:none;} .clear{zoom:1;} .clear:after{display:block; content:"";clear:both; visibility:hidden; height:0;}…

Easysearch 磁盘水位线注意事项

Easyearch 为了防止索引将磁盘空间完全占满,使用磁盘水位线进行磁盘空间控制。具体来说有三条磁盘水位线:low、high、flood。 低水位线 通过参数 cluster.routing.allocation.disk.watermark.low 进行设置,默认值 85%。也可设置成一个具体值,比如:400mb,代表须保留 400mb…

最好的百度提交每日自动提交工具【免费】

原文链接 JavaGuide最好的百度提交每日自动提交工具【免费】github https://github.com/nogeek-cn/baidu-seo-auto-push-dailygitee https://gitee.com/nogeek-cn/baidu-seo-auto-push-daily本工具比别的工具好的地方【免费:你只需要在你的网站中添加我的网站友链,我就可以帮…

定义了一个实现了toDo()抽象方法

定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。 结构 策略模式的主要角色…

《AI帮你赢:人人都能用的AI方法论》 PDF免费下载

本书强调“把 AI作为方法”(AI即 Artifcial Intelligence,人工智能)这一核心理念,旨在引导读者掌握与 AI对话的关键技巧,并将AI融入工作和生活真正体验 AI带给人类的高效与便捷。 本书适合对 AI有研究兴趣、有使用需求、有产品研发需求或有投资意向的读者阅读。读者可扫描文…

20241417 2024-2025-2 《Python程序设计》实验一报告

20241417 2024-2025-2 《Python程序设计》实验一报告 课程:《Python程序设计》 班级: 2414 姓名: 罗若元 学号:20241417 实验教师:王志强 实验日期:2025年3月12日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能;(编写书中的程序…

高性能计算-探究GPU延迟隐藏(26)

1. 延迟隐藏作用:可以最大化线程束的使用效率,提高计算性能 2. 延迟隐藏概念 (1)指令延迟是指令发出到完成之间的时钟周期间隔; (2)指令可以分为两种:算数指令和访存指令。 3. 算数指令延迟隐藏实现 (1)假如一个算数指令的指令延迟是 4 个时钟周期 (2)查询cuda文档…

毒王正传:初出江湖

忽见江湖风云变, 协议如雪落满天。 十方少侠争破译, 哪知此物带瘟烟。楔子混沌起微澜忽见江湖风云变,协议如雪落满天。十方少侠争破译,哪知此物带瘟烟。话说那日产品大殿突发英雄帖:"今有通天协议问世,三日接入者赏鸡腿三筐!"众客户端少侠摩拳擦掌,却不知正堕…