牛客网 牛客练习赛4 A.Laptop-二维偏序+离散化+树状数组
链接:https://ac.nowcoder.com/acm/contest/16/A
来源:牛客网
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld
题目描述
但是重点在于,他非常适合ACM!并在最近的区域赛中获得了不错的成绩。
拿到奖金后FST决定买一台新笔记本,但是FST发现,在价格能承受的范围内,笔记本的内存和速度是不可兼得的。
可是,有一些笔记本是被另外一些“完虐”的,也就是内存和速度都不高于另外某一个笔记本,现在FST想统计一下有多少笔记本被“完虐”。
输入描述:
第一行一个正整数n,
表示笔记本的数量。接下来n行,每行两个正整数M
i
,S
i
表示这款笔记本的内存和速度。
n≤10
5
,M
i
,S
i
≤10
9
输出描述:
一行,一个正整数,表示被完虐的笔记本数。
备注:
M
i
和S
i
都是越大越优。
数据保证M
i
互不相同,S
i
也互不相同。
二维偏序,一种思想,按照某一位进行排序,从而减少一维,然后对剩下的维度进行操作。
这道题题意就是找有多少笔记本的s和w性能都比一个别的笔记本小。
通过对s进行离散化然后排序,再对w进行树状数组的维护就可以了。
代码:
//A-二维偏序+树状数组
/*
二维偏序,就是一个思想,可以用树状数组实现。
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+; int w[maxn],sum[maxn];
int n; struct node{
int x,y;
}a[maxn]; bool cmp(node a,node b)
{
return a.x<b.x;
} int lowbit(int x)
{
return x&(-x);
} int query(int n)
{
int ans=;
for(int i=n;i>;i-=lowbit(i)){
ans+=sum[i];
}
return ans;
} void add(int x)
{
for(int i=x;i<=n;i+=lowbit(i)){
sum[i]++;
}
} int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d%d",&a[i].x,&a[i].y);
w[i]=a[i].y;
}
sort(w+,w++n);
int d=unique(w+,w++n)-(w+);
for(int i=;i<=n;i++){
a[i].y=lower_bound(w+,w++d,a[i].y)-w;
}
sort(a+,a++n,cmp);
int ans=;
for(int i=n;i>;i--){
int cnt=query(a[i].y);
if(n-i-cnt!=) ans++;//n-i是找比当前i大的,然后再减去cnt是比当前i小的,最后就是都比当前的大的
add(a[i].y);
}
printf("%d\n",ans);
}
牛客网 牛客练习赛4 A.Laptop-二维偏序+离散化+树状数组的更多相关文章
- 牛客练习赛38 D 题 出题人的手环 (离散化+树状数组求逆序对+前缀和)
		
链接:https://ac.nowcoder.com/acm/contest/358/D来源:牛客网 出题人的手环 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他 ...
 - 牛客练习赛33 D	tokitsukaze and Inverse Number  (树状数组求逆序对,结论)
		
链接:https://ac.nowcoder.com/acm/contest/308/D 来源:牛客网 tokitsukaze and Inverse Number 时间限制:C/C++ 1秒,其他语 ...
 - 牛客小白月赛12 F 华华开始学信息学 (分块+树状数组)
		
链接:https://ac.nowcoder.com/acm/contest/392/F来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语言65536K ...
 - 「BZOJ1669」D	饥饿的牛 [Usaco2006 Oct] Hungry Cows 牛客假日团队赛5   (LIS,离散化树状数组)
		
链接:https://ac.nowcoder.com/acm/contest/984/D 来源:牛客网 饥饿的牛 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言 ...
 - 出题人的手环(牛客练习赛38D 离散化+树状数组)
		
题目链接(https://ac.nowcoder.com/acm/contest/358/D) 题目描述 出题人的妹子送了出题人一个手环,这个手环上有 n 个珠子,每个珠子上有一个数. 有一天,出题人 ...
 - 2019南京网赛 The beautiful values of the palace(思维,树状数组
		
https://nanti.jisuanke.com/t/41298 题意:给一个n * n的螺旋矩阵,n保证是奇数,取一些点使其.获得价值,价值为数位和,然后再给q次查询,求矩阵中的价值总和 思路: ...
 - Different Integers 牛客网暑期ACM多校训练营(第一场) J 离线+线状数组或者主席树
		
Given a sequence of integers a1, a2, ..., an and q pairs of integers (l 1, r1), (l2, r2), ..., (lq, ...
 - 2018牛客网暑期ACM多校训练营(第二场)J Farm(树状数组)
		
题意 n*m的农场有若干种不同种类作物,如果作物接受了不同种类的肥料就会枯萎.现在进行t次施肥,每次对一个矩形区域施某种类的肥料.问最后枯萎的作物是多少. 分析 作者:xseventh链接:https ...
 - 牛客练习赛47 E	DongDong数颜色 (树状数组维护区间元素种类数)
		
链接:https://ac.nowcoder.com/acm/contest/904/E 来源:牛客网 DongDong数颜色 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 5242 ...
 
随机推荐
- Oracle 加解密教程
			
参考Oracle官方文档 在Oracle使用dbms_crypto包进行加解密 首先,授权当前用户使用加解密包 在sql中运行:connect sqlplus as sysdbagrant execu ...
 - Kafka Streams的Data Types and Serialization
			
Avro <repositories> <repository> <id>confluent</id> <url>http://packag ...
 - 基于Dapper的开源LINQ扩展,且支持分库分表自动生成实体二
			
LnskyDB LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼. 文档地址: https://lining ...
 - Java可视化计算器
			
利用java中的AWT和SWING包来做可视化界面. 首先来简单了解一下这两个包: AWT和Swing都是Java中用来做可视化界面的.AWT(Abstract Window Toolkit):抽象窗 ...
 - xml文件操作帮助类
			
xml文件的节点值获取和节点值设置 /// <summary> /// 保存单个点节点的值 /// </summary> /// <param name="Up ...
 - Golang 是否有必要内存对齐?
			
原文:https://ms2008.github.io/2019/08/01/golang-memory-alignment/ 内存模型 Posted by ms2008 on August 1, 2 ...
 - C#视频拍照、视频录制项目示例
			
1.AForge 2.WPFMediaKit 3.ffmpeg
 - English--虚拟语气和条件状语从句
			
English|虚拟语气和条件状语从句 虚拟语气在英语中,还是有一定地位的,毕竟大家都做着我有一百万的梦~~~ 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任 ...
 - python基础--py2与py3编码
			
python2 与 python3的编码和解码 注意:小心,容易弄混 目录: 1.python2d 的encode & decode 2.python3的encode & decode ...
 - js计算得来的属性
			
计算得来的属性 如果需要使用表达式来创建属性键,那么需要使用方括号.否则属性名称不会进行计算: var obj = { 'b'+'ar': 'foo' }; // SyntaxError: missi ...