题目1 : 打折机票(hihocoder 20挑战赛)
来源:互联网 发布:淘宝卖家体检中心网址 编辑:程序博客网 时间:2024/04/30 11:28
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
- 样例输入
7 61 12 14 34 44 56 97 91 71 26 73 34 45 5
- 样例输出
919None5None
描述
因为思念新宿的"小姐姐"们,岛娘计划6月份再去一趟东京,不过这次看来她需要自掏腰包。经过了几天的夜战,岛娘终于在体力耗尽之前,用Python抓下了所有6月份,上海至东京的全部共n 张机票。现在请你帮助债台高筑的岛娘筛选出符合时间区间要求的,最贵的机票。
输入
输入数据的第一行包含两个整数 n, m(1 ≤ n, m ≤ 105),分别表示机票的总数,和询问的总数。接下来的n 行,每行两个整数 t, v (1 ≤ t, v ≤ 105),表示每张机票出发的时间和价格。 接下来的m 行,每行两个整数 a, b (1 ≤ a ≤ b ≤ 105),表示每个询问所要求的时间区间。
输出
对于每组询问,输出一行表示最贵的价格。如果没有符合要求的机票,输出一行"None"。
分析:很明显的线段树区间求最值,区别:存在间断点特殊处理一下
/*7 61 12 14 34 44 56 97 91 71 26 73 34 45 5919None5None*/#include <cstdio>#include <cstring>#include <vector>#include <iostream>#include <algorithm>#define INF -0xfconst int maxn=1000005;using namespace std;struct node{ int id; int price;};int segTree[maxn];int a[maxn];void Build(int node, int b, int e){ if (b == e) segTree[node] = a[b]; else { Build(2*node, b, (b+e)/2); Build(2*node+1, (b+e)/2+1, e); if (segTree[2 * node] >= segTree[2 * node + 1]) segTree[node] = segTree[2 * node]; else segTree[node] = segTree[2 * node + 1]; }}int Query(int node,int b,int e,int left,int right){ if (b>=left && e<=right) return segTree[node]; int m=(b+e)/2; int sum=0; if(left<=m)sum=max(sum,Query(node<<1,b,m,left,right)); if(right>m)sum=max(sum,Query(node<<1|1,m+1,e,left,right)); return sum;}int main(){ int n,m; scanf("%d%d",&n,&m); int a1,a2; for (int i=1;i<=n;i++) a[i]=INF; for (int i=1;i<=n;i++) { scanf("%d%d",&a1,&a2); if (a[a1] == INF) a[a1]=a2; else a[a1]=max(a[a1],a2); } Build(1,1,n); for (int i=1;i<=m;i++) { scanf("%d%d",&a1,&a2); int ans=Query(1,1,n,a1,a2); if (ans == 0) printf("None\n");//特判 else printf("%d\n",ans); } return 0;}
0 0
- 题目1 : 打折机票(hihocoder 20挑战赛)
- 题目1 : 打折机票(hihoCoder挑战赛20)
- hihoCoder 挑战赛20 打折机票(线段树/RMQ)
- hihocoder #1299 : 打折机票 线段树
- hihoCoder挑战赛14 题目1 : 不等式
- hihoCoder挑战赛14 题目1 : 不等式 枚举?
- 题目2 : 展胜地的鲤鱼旗 (hihoCoder挑战赛20)
- hihoCoder挑战赛20
- hihoCoder挑战赛20 题解
- hihocoder挑战赛20小记
- WikiOI 2235 机票打折
- wikioi p2235 机票打折
- CODEVS 2235 机票打折
- WIKIOI--2235机票打折
- 2235 机票打折
- hihocode #1299 打折机票
- 2235 机票打折
- hihoCoder挑战赛14 题目2:赛车 LCA
- 【设计模式C++】单例模式
- 【《OpenCV3编程入门》内容简介&勘误&配套源代码下载
- 第1章 概述
- angularJS学习小结——filter
- 程序员必读的三十本经典巨作
- 题目1 : 打折机票(hihocoder 20挑战赛)
- Swift 集成Alamofire/Kingfisher/MJRefresh/MBProgressHUD的小项目
- linuxmint安装拼音输入法
- 查找并调用PowerShell历史记录中的命令行
- 世上最长情的事唯有陪伴
- 【C++】Digest of 《effective C++》--1
- 第11周阅读程序写出执行结果1(3)
- 任何事都始于当初的选择
- FZU-2231 平行四边形数 From 福州大学第十三届程序设计竞赛