P1816 忠诚 倍增

2023-12-02 03:30
文章标签 倍增 忠诚 p1816

本文主要是介绍P1816 忠诚 倍增,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

链接:https://www.luogu.org/problem/show?pid=1816
题目描述老管家是一个聪明能干的人。他为财主工作了整整10年,财主为了让自已账目更加清楚。要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意。但是由于一些人的挑拨,财主还是对管家产生了怀疑。于是他决定用一种特别的方法来判断管家的忠诚,他把每次的账目按1,23…编号,然后不定时的问管家问题,问题是这样的:在a到b号账中最少的一笔是多少?为了让管家没时间作假他总是一次问多个问题。输入输出格式输入格式:
输入中第一行有两个数m,n表示有m(m<=100000)笔账,n表示有n个问题,n<=100000。第二行为m个数,分别是账目的钱数后面n行分别是n个问题,每行有2个数字说明开始结束的账目编号。输出格式:
输出文件中为每个问题的答案。具体查看样例。输入输出样例输入样例#110 3
1 2 3 4 5 6 7 8 9 10
2 7
3 9
1 10
输出样例#12 3 1
题干

  可以维护一个数组las[i][j]表示从i开始,长为2^j  一段区间的最小值。(时间复杂度为nlogn)

  询问时,把区间分成两段(可以重叠)以便于长度为2^x

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
#include<vector>
#include<math.h>
using namespace std;
int m[100009][20];
int kk[20];
int N,M,t;
int main()
{scanf("%d%d",&M,&N);for(int i=1;i<=M;i++)scanf("%d",&m[i][0]);for(int i=1;i<=20;i++,t*=2)    for(int j=1;j+(1<<i)-1<=M;j++)m[j][i]=min(m[j][i-1],m[j+(1<<(i-1))][i-1]);    for(int i=1,x,y;i<=N;i++){scanf("%d%d",&x,&y);int t=log(y-x+1)/log(2);printf("%d ",min(m[x][t],m[y-(1<<t)+1][t]));}return 0;
}
代码

 

转载于:https://www.cnblogs.com/CLGYPYJ/p/7375886.html

这篇关于P1816 忠诚 倍增的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/443794

相关文章

如何限制与管控员工上网行为?四个方法让员工效率倍增!【企业员工上网行为管理】

在信息化时代,员工的上网行为直接影响着工作效率和企业的安全性。不当的网络使用,如浏览与工作无关的网站、下载不安全的文件,可能导致工作效率低下,甚至引发安全风险。因此,许多企业正在积极寻找有效的措施来管控员工的上网行为,以确保工作效率的提升。 以下是四个常见且有效的员工上网行为管理方法,帮助企业实现更高效的网络管理。 方法一:配置网络防火墙进行访问限制 最基础的员工上网行为管理方法是通过配置防

双轨直销模式:团队互助与业绩倍增的商业策略

双轨直销模式因其操作简单、业绩压力较小、管理方便以及初期爆发力强等特点,受到许多直销公司的喜爱,并促进了多家大型企业的成长。 一、双轨直销模式简介 双轨直销是一种独特的组织架构,其核心在于每个销售代表仅需构建两个独立的销售线,分别用A和B来表示。随着销售网络的不断扩展,形成一个庞大的销售网络体系。 当第三位销售代表C加入时,他或她必须选择加入A或B的销售线,而不是创建新的线。这种机制

BZOJ 3732: Network(最小生成树+倍增)

题目链接 题意:给出一个图,每个询问的格式是:A B,表示询问从A点走到B点的所有路径中,最长的边最小值是多少 很明显最终查询的边一定是在最小生成树里面的,先跑出最小生成树,然后,可以树链剖分,也可以使用倍增来计算 #include<bits/stdc++.h>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))#define

关于倍增思想的几点总结

倍增思想的概念: 每次通过倍增加速状态转移、预处理或查询(很多时候能把时间复杂度降到O(logN)) 倍增的注意事项: 在理解倍增之前,个人建议先对二进制有一定的理解有时候要注意一下预处理的过程,不要出问题 倍增思想的例题(难度从低到高): P2886 [USACO07NOV]牛继电器Cow Relays P1081 开车旅行(省选 NOI-) 倍增思想的适用范围(个人整理):

打造信任和忠诚:增加和改善客户评价的10种方法

客户推荐和产品评价可以成为您最强大的销售工具之一。超过70%的消费者表示他们在购买前会查看产品评价,近63%的消费者表示他们更有可能从有产品评级和评价的网站购买。社会认可可以安抚犹豫的购物者,提供额外的背景信息,并通过确保买家对购买满意来减少退货。 想要在您的业务中建立信任,创造有意义的社会认可并培养品牌忠诚度吗?以下是10个帮助您提升产品评价和客户推荐的建议。 1.将评价放在显眼位置 考虑

PKU Campus 2011 B A Problem about Tree lca倍增

B:A Problem about Tree 总时间限制:  1000ms  内存限制:  65536kB 描述 Given a tree with Nvertices and N- 1 edges, you are to answer Qqueries on "which vertex isY's parent if we choose Xas the ro

NOIP2012 开车旅行 (倍增)

题意:一行N个城市,有各自不同的海拔,定义两个城市之间的距离为海拔之差的绝对值,小a和小b轮流开车,开车方向从左往右,小a总是开到第二近的城市,小b开到最近的城市(如有两个城市和当前城市海拔之差相等,海拔低的更近)。当其中任一人无法按照自己的方案前进或前进后总路程超过一个上限,旅行结束。一,给定一个路程上限x0,求从哪个城市出发A和B路程比值最小,这里规定任意数比零等于无穷大,比值相等输出海拔最高

蓝桥杯软件赛Java研究生组/A组)第二章基础算法-第三节:倍增

文章目录 一:概述二:典型题目(1)题目一(快速幂)(2)题目二(ST表求区间最值)(3)题目三(最近公共祖先) 一:概述 倍增算法:是一种优化算法,通常应用在某些需要高效计算指数幂的场景。它基于分治的思想,通过反复求平方来实现快速计算指数幂的目的。通常应用在最近公共祖先问题、二分查找等等 二:典型题目 (1)题目一(快速幂) 倍增算法最经典的应用就是快速幂,快速幂算法是

【noip】开车旅行 平衡树 倍增 treap tree

noip2012年day1最后一题 感觉2012年的都好难写 疫情控制也是。。 描述 小A和小B决定利用假期外出旅行,他们将想去的城市从1到N编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市i 的海拔高度为Hi,城市i 和城市j 之间的距离d[i,j]恰好是这两个城市海拔高度之差的绝对值,即d[i,j] = |Hi - Hj|。 旅行过程中,小A和小B轮

揭秘APP广告变现:自建平台收益倍增秘诀

在数字广告领域,应用(APP)广告变现项目是实现收益的重要途径。随着移动互联网的蓬勃发展,自建平台进行广告投放和收益优化成为了众多开发者和企业关注的焦点。为了确保最大化收益,我们不仅需要对广告市场有深刻的了解,还需要掌握精细化运营的策略。 广告变现,简而言之,是指通过在APP中展示商业广告从而获得收入的过程。这一模式的有效性建立在两个基础之上:一是用户群体的规模和活跃度,二是精准的广告匹配技术。