Wannafly模拟赛4 A Laptop (RMQ)
来源:互联网 发布:银行软件开发必备知识 编辑:程序博客网 时间:2024/05/18 00:34
题目链接:https://www.nowcoder.com/acm/contest/16/A
时间限制:1秒 空间限制:131072K
题目描述
FST是一名可怜的小朋友,他很强,但是经常fst,所以rating一直低迷。
但是重点在于,他非常适合ACM!并在最近的区域赛中获得了不错的成绩。
拿到奖金后FST决定买一台新笔记本,但是FST发现,在价格能承受的范围内,笔记本的内存和速度是不可兼得的。
可是,有一些笔记本是被另外一些“完虐”的,也就是内存和速度都不高于另外某一个笔记本,现在FST想统计一下有多少笔记本被“完虐”。
但是重点在于,他非常适合ACM!并在最近的区域赛中获得了不错的成绩。
拿到奖金后FST决定买一台新笔记本,但是FST发现,在价格能承受的范围内,笔记本的内存和速度是不可兼得的。
可是,有一些笔记本是被另外一些“完虐”的,也就是内存和速度都不高于另外某一个笔记本,现在FST想统计一下有多少笔记本被“完虐”。
输入描述:
第一行一个正整数n,表示笔记本的数量。接下来n行,每行两个正整数Mi,Si表示这款笔记本的内存和速度。n≤105,Mi,Si≤109
输出描述:
一行,一个正整数,表示被完虐的笔记本数。
示例1
输入
4100 700200 50050 100300 400
输出
1
备注:
Mi和Si都是越大越优。数据保证Mi互不相同,Si也互不相同。
解析:题目要求只要有一个m,s都大于该机器就行,思路是先任意对s或者m排下序,然后用rmq维护一下另外一维即可
代码:
#include<bits/stdc++.h>using namespace std; struct node{ int m, s;}p[100005]; int dp[100005][21]; bool cmp(node a, node b){ return a.m < b.m;} void RMQ(int n){ for(int j = 1; j != 20; j++) { for(int i = 1; i <= n; i++) { if(i + (1<<j) - 1 <= n) dp[i][j] = max(dp[i][j - 1], dp[i + (1<<j>>1)][j - 1]); } }} int main(){ int n; scanf("%d", &n); for(int i = 1; i <= n; i++) { scanf("%d%d", &p[i].m, &p[i].s); } sort(p+1, p+n+1, cmp); for(int i = 1; i <= n; i++) { dp[i][0] = p[i].s; } RMQ(n); int ans = 0; for(int i = 1; i <= n; i++) { int l = i, r = n; int k = (int)(log(1.0 * r - l + 1) / log(2.0)); int res = max(dp[l][k], dp[r - (1<<k) + 1][k]); if(res > p[i].s) ans++; } printf("%d\n", ans); return 0;}
阅读全文
0 0
- Wannafly模拟赛4 A Laptop (RMQ)
- Wannafly模拟赛4 A Laptop (前缀数组)
- Wannafly模拟赛4:A-Laptop(后缀)
- Wannafly模拟赛4 A 题 Laptop 【二维偏序问题 + 树状数组维护】
- wannafly 4 laptop
- Wannafly模拟赛4
- Wannafly模拟赛2: A. Contest(Cdq分治)
- Wannafly模拟赛2 A题
- Wannafly模拟赛5 A split 二分
- Wannafly模拟赛5 A Split
- Wannafly模拟赛5 A Split 【贪心】
- Wannafly模拟赛5 A题
- Wannafly模拟赛4 题解
- Wannafly模拟赛4 CSum(线段树)
- Wannafly模拟赛4 C Sum(树状数组)
- Wannafly模拟赛4 B Distance
- Wannafly模拟赛4 B Distance
- Wannafly模拟赛4 B题
- 高软实验五
- SSL/TLS安全之——中间人攻击(MITM)浅析
- sql_add_drop_set.html
- 轻量级的利用Annotation方式实现Android SQLite的框架
- 数组,方法,ref和out关键字,字符串的常用方法 strin与StringBuilder
- Wannafly模拟赛4 A Laptop (RMQ)
- AlarmManager-闹钟服务
- Linux(CentOS6.5)安装MySQL5.5
- 中文乱码问题解决方案
- 支付宝支付总结
- linux实验--添加硬盘
- 定时脚本任务列子(crontab)
- SSH和SSM
- UVA