算法竞赛进阶指南——基本算法(倍增)

ST表

可以求区间最大、最小、gcd、lcm,符合 f(a, a) = a都可以
求区间最值,一个区间划分成两段
f[i][j]: 从i开始,长度为2^j的区间最值

#include<iostream>
#include<cmath>
using namespace std;
const int N = 1e6 + 10;
int n, k, a[N];
int f[N][50];//预处理 
void pre(){for(int i = 1; i <= n; i++) f[i][0] = a[i];//以2为底,n的对数 int t = log(n) / log(2);for(int j = 1; j <= t; j++)for(int i = 1; i <= n - (1 << j) + 1; i++)f[i][j] = min(f[i][j - 1], f[i + (1 << (j - 1))][j - 1]);
}int query(int l, int r){int k = log(r - l + 1) / log(2);return min(f[l][k], f[r - (1 << k) + 1][k]);
}int main(){scanf("%d", &n);for(int i = 1; i <= n; i++) scanf("%d", &a[i]);scanf("%d", &k);pre();for(int i = 1; i <= n; i++){int l = max(1, i - k), r = min(n, i + k);printf("%d ", query(l, r));}return 0;
}

天才ACM

在这里插入图片描述

#pragma GCC optimize(3, "Ofast", "inline")
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 5e5 + 10;
int k, n, m;
int a[N], b[N];
long long t;long long f(int l, int r){int z = 0;for(int i = l; i < r; i++) b[z++] = a[i];sort(b, b + z);long long res = 0;for(int i = 0, j = z - 1; i < m && i < j; i++, j--)res += (long long)(b[j] - b[i]) * (b[j] - b[i]);return res;
}int main(){scanf("%d", &k);while(k--){scanf("%d %d %lld", &n, &m, &t);for(int i = 0; i < n; i++) scanf("%d", &a[i]);int st = 0, ed = 0, ans = 0;while(ed < n){int len = 1;while(len){//[st, ed)if(ed + len <= n && f(st, ed + len) <= t){ed += len;len *= 2;}else len /= 2;}st = ed;ans++;}printf("%d\n", ans);}return 0;
}

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

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

相关文章

mxxWechatBot流程与原理

大家伙&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 免责声明&#xff1a;该工具仅供学习使用&#xff0c;禁止使用该工具从事违法活动&#xff0c;否则永久拉黑封禁账号&#xff01;&#xff01;&#xff01;本人不对任何工具的使用负责&am…

容器化的基础概念:不可变基础设施解释:将服务器视为乐高积木,而非橡皮泥。

不可变基础设施解释&#xff1a;将服务器视为乐高积木&#xff0c;而非橡皮泥。 想象一下用乐高积木代替橡皮泥进行搭建。使用橡皮泥时&#xff0c;您可以直接塑形和改变它。而使用乐高积木&#xff0c;您需要逐个零件搭建特定结构&#xff0c;并在需要时整体替换它们。这就是…

现实与梦的关系

现实与梦之间存在着复杂而有趣的关系。从心理学的角度来看&#xff0c;梦通常被认为是我们大脑在休息时处理和组织日常经历的方式。梦可能反映我们的情绪、欲望、恐惧和未解决的问题&#xff0c;它们可以是我们日常生活的延续&#xff0c;也可以是完全不同的场景和情境。 在现…

【FPGA Verilog】各种加法器Verilog

1bit半加器adder设计实例 module adder(cout,sum,a,b); output cout; output sum; input a,b; wire cout,sum; assign {cout,sum}ab; endmodule 解释说明 &#xff08;1&#xff09;assign {cout,sum}ab 是连续性赋值 对于线网wire进行赋值&#xff0c;必须以assign或者dea…

【Linux】学习-基础IO拓展篇

Linux基础IO拓展篇—详解文件系统 理解文件系统 在Linux基础IO篇中&#xff0c;我们站在用户的视角对文件进行了理解&#xff0c;主要是针对被打开的文件&#xff0c;那么有没有没有被打开的文件呢&#xff1f;当然有&#xff01;今天我们换个视角&#xff0c;来站在系统的角…

95.网游逆向分析与插件开发-游戏窗口化助手-窗口化助手显示与大小调整

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;地图数据获取的逆向分析与C代码还原 码云地址&#xff08;游戏窗口化助手 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号&#xff1a;e85c0fc8b85895c8c…

备战蓝桥杯---数学基础3

本专题主要围绕同余来讲&#xff1a; 下面介绍一下基本概念与定理&#xff1a; 下面给出解这方程的一个例子&#xff1a; 下面是用代码实现扩展欧几里得算法&#xff1a; #include<bits/stdc.h> using namespace std; int gcd(int a,int b,int &x,int &y){if(b…

【MySQL】MySQL函数学习和总结

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-Ny0xnYjfHqF7s3aS {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

Springboot+vue的社区智慧养老监护管理平台设计与实现(有报告),Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的社区智慧养老监护管理平台设计与实现&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的社区智慧养老监护管理平台设…

JavaScript学习之旅10------掌握jQuery:实用应用案例深度解析

目录 写在开头1. jQuery基础知识回顾1.1. 选择器1.2. 事件1.3. 效果1.4. DOM操作1.5. AJAX 2. 实用应用案例分析2.1. 动态内容加载2.2. 表单验证2.3. 图像滑动门效果2.4. 创建动态导航菜单 3. 高级技巧与最佳实践3.1. 优化jQuery代码的性能3.2. jQuery插件的使用和自定义3.3. j…

OpenAI推出ChatGPT已经过去一年多了,AI 取代了内容创作者吗

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【论文写作】不会吧!不会吧!不会还在手敲目录吧?可以自动生成目录你不造嘛

引言 评阅一篇数学建模论文时&#xff0c;逻辑鲜明的行文结构能让评委老师眼前一亮&#xff0c;而最能快速展现文章结构的莫过于目录了。 但是手工添加目录不仅费时费力&#xff0c;而且容易出错&#xff0c;典型的出力不讨好。但其实在 WPS 和 Word 软件中本身就有自动生成目…

OnlyOffice-8.0版本深度测评

OnlyOffice 是一套全面的开源办公协作软件&#xff0c;不断演进的 OnlyOffice 8.0 版本为用户带来了一系列引人瞩目的新特性和功能改进。OnlyOffice 8.0 版本在功能丰富性、安全性和用户友好性上都有显著提升&#xff0c;为用户提供了更为强大、便捷和安全的文档处理和协作环境…

2024-02-11 服务器开发-VPS-记录

摘要&#xff1a; 2024-02-11 服务器-VPS-记录 vps Best SSD KVM VPS in 9 different locations in EU and US, OpenVZ 7 VPS, Direct Admin and LiteSpeed web hosting, Dedicated Servers - Hosteons.com Premium Ryzen KVM VPS on NVME Drives | Multiple Locations Los An…

CentOS在VMWare中扩容

1.相关概念 物理卷&#xff1a;简称PV&#xff0c;逻辑卷管理中处于最底层&#xff0c;它可以是实际物理硬盘上的分区&#xff0c;也可以是整个物理硬盘&#xff0c;一块硬盘&#xff0c;或多块硬盘&#xff0c;如/dev/sdb。 卷组&#xff1a;简称VG&#xff0c;建立在物理卷之…

配置VMware实现从服务器到虚拟机的一键启动脚本

正文共&#xff1a;1666 字 15 图&#xff0c;预估阅读时间&#xff1a;2 分钟 首先祝大家新年快乐&#xff01;略备薄礼&#xff0c;18000个红包封面来讨个开年好彩头&#xff01; 虽然之前将服务器放到了公网&#xff08;成本增加了100块&#xff0c;内网服务器上公网解决方案…

JavaScript 实现类似SQL 左联接式的对象数组合并

在 JavaScript 中&#xff0c;你可以使用对象合并&#xff08;Object merging&#xff09;来模拟数据库的左联接操作。左联接操作会将两个对象的特定属性进行合并&#xff0c;类似于 SQL 中的 LEFT JOIN 操作。 假设你有两个对象&#xff0c;每个对象代表一个表&#xff1a; …

docker compose部署一个远程监控和管理工具

部署 1.编写配置文件 vim docker-compose.yml内容如下 version: "3.7"# networks networks:proxy:driver: bridgeipam:driver: defaultconfig:- subnet: 172.20.0.0/24api-db: nullredis: nullmesh-db: null# docker managed persistent volumes volumes:tactical_…

问山海——天涯海角——桃花渊攻击顺序

文章目录 桃花渊代码代码解读 桃花渊 规划击杀各个boss顺序。 副本持续时间为30分钟&#xff0c;每个地方的boss被打死后&#xff0c;需要一定时间才能重新刷新。 只考虑其中两种boss&#xff0c;龟将和龟龙。各有四个。 其中我从一个boss地点到达另一个boss地点移动时间为…

全面了解C语言宏的原理和应用

在C语言中&#xff0c;宏是一种强大的预处理指令&#xff0c;它允许程序员在编译之前对代码进行文本替换和处理。了解宏的原理和用法对于提高代码质量、减少编译时间以及避免潜在的错误至关重要。本文将详细解析C语言宏的原理&#xff0c;并通过实用示例帮助您更好地理解和应用…