洛谷P1816 忠诚 题解
洛谷P1816 忠诚 题解
题目描述
老管家是一个聪明能干的人。他为财主工作了整整10年,财主为了让自已账目更加清楚。要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意。但是由于一些人的挑拨,财主还是对管家产生了怀疑。于是他决定用一种特别的方法来判断管家的忠诚,他把每次的账目按1,2,3…编号,然后不定时的问管家问题,问题是这样的:在a到b号账中最少的一笔是多少?为了让管家没时间作假他总是一次问多个问题。
输入输出格式
输入格式:
输入中第一行有两个数m,n表示有m(m<=100000)笔账,n表示有n个问题,n<=100000。
第二行为m个数,分别是账目的钱数
后面n行分别是n个问题,每行有2个数字说明开始结束的账目编号。
输出格式:
输出文件中为每个问题的答案。具体查看样例。
输入输出样例
10 3 1 2 3 4 5 6 7 8 9 10 2 7 3 9 1 10
2 3 1
解析:
一看题目求区间最小值,哈,那必然是线段树维护区间最小值。
依靠线段树来求区间最小值,线段树板子上进行稍微改动。
将区间求和改为区间求最小值,然后进行询问,就完了。。
1 #include <bits/stdc++.h> 2 #define Max 500009 3 #include <deque> 4 int a[Max],n,m; 5 struct Tree 6 { 7 int l,r,min; 8 }t[Max]; 9 void build(int x,int l,int r) 10 { 11 t[x].l=l;t[x].r=r; 12 if(l==r) { 13 t[x].min=a[l]; 14 return; 15 } 16 int mid=(l+r)/2; 17 build(x*2,l,mid);build(x*2+1,mid+1,r); 18 t[x].min=std::min(t[x*2].min,t[x*2+1].min); 19 } 20 int query(int x,int l,int r) 21 { 22 int ans=0x7fffffff; 23 if(l <= t[x].l && t[x].r <= r) return t[x].min; 24 int mid=(t[x].l+t[x].r) / 2; 25 if(l <= mid) ans = std::min(ans,query(x*2,l,r)); 26 if(r > mid) ans = std::min(ans,query(x*2+1,l,r)); 27 return ans; 28 } 29 int main() 30 { 31 scanf("%d%d",&n,&m);int l,r; 32 for(int i = 1 ; i <= n ; ++ i) scanf("%d",&a[i]); 33 build(1,1,n); 34 for(int i = 1 ; i <= m ; ++ i) { 35 scanf("%d%d",&l,&r); 36 printf("%d ",query(1,l,r)); 37 } 38 return 0; 39 }
AC代码
转载于:https://www.cnblogs.com/handsomegodzilla/p/11240242.html
洛谷P1816 忠诚 题解相关推荐
- 洛谷 P1816 忠诚题解
题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了 ...
- 洛谷 P1816 忠诚
题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了 ...
- 【洛谷P1816 忠诚】线段树
题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了 ...
- 洛谷 P1816 忠诚 ST函数
题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了 ...
- 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)
题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...
- 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)
题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...
- 洛谷P2108学英语题解
来我的博客里拥有更好的阅读体验:https://yyxi.ml/2020/07/23/luogu-p2108-xueyingyu/ 洛谷P2108学英语题解(c++) 题目描述 代码.思路 踩过的坑 ...
- 洛谷 P1077 摆花 题解
洛谷 P1077 摆花 题解 洛谷 P1077 题目 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共mmm盆.通过调查顾客的喜好,小明列出了顾客最喜欢的nnn种花,从1到nnn标号.为 ...
- 修改数组(洛谷P7285题题解,C++语言描述)
题目要求 P7285题目链接 分析 这题虽然是红题,但是因为很有趣且是 Special Judge ,所以写篇题解. 乍一看,这题好麻烦啊,要综合考虑xxx和yyy,达到x−yx-yx−y的最优化. ...
最新文章
- kail安装和vmtools安装
- 后台开发必读书籍--算法导论
- mac远程桌面Microsoft Remote Desktop for Mac的安装与使用
- android studio查看字节码,使用Android studio查看Kotlin的字节码教程
- python的numpy库的基本用法_python numpy库np.percentile用法说明
- Arduino学习笔记07
- 如何让代码更易于维护_如何轻松地使您的网站更易于访问
- ADOCE打包到WinCE NK.bin镜像中
- POJ 1789(最小生成树)
- iOS 两种不同的图片无限轮播
- Android轻松实现语音识别
- Java UTC时间与本地时间互相转换
- Day_03——MySQL数据库查询语句练习
- java生成圆形二维码logo
- 一个包含学生信息的顺序表
- 深入理解SR-IOV和IO虚拟化
- 个人工作总结与业绩报告
- 加密流量分类-论文6:Learning to Classify A Flow-Based Relation Network for Encrypted Traffic Classification
- 什么是API网关, API 网关的作用
- 安川机器人程序还原_安川机器人使用说明书.pdf
热门文章
- C++自学笔记_文本查询程序_《C++ Primer》
- Use DynamicXElement to create xml
- Perl 变量(1)--纯变量
- AJAX ControlToolkit学习日志-ResizableControlExtender(23)
- SSH暴力破解IP大曝光
- 一篇文章讲清楚人工智能、机器学习和深度学习的区别和联系
- 阿里云学生计划领取攻略
- mfc作为服务端,android作为客服端进行socket通讯,android在wifi下手机与电脑的socket通信...
- ConcurrentHashMap 和 Hashtable 的区别
- java.io.file()_Java IO(一):IO和File