hdu3193 降维+rmq
/*
给定n个数对(p,d),如果有这么一个数对(pi,di),其他所有的数对都不能严格小于这个数对
请求出有多少个这样的数对!
解法:对于数对(p,d),能找到在【1,p-1]之间的小于d的数对,那么数对(p,d)不符合要求,反之符合
那么开一个数组x,x[i]表示价格不超过p的最小的d的值,rmq打表后即可
*/
#include<bits/stdc++.h>
using namespace std;
#define maxn 10005
struct node{
int p,d;
bool operator<(const node & a)const{
if(p==a.p) return d<a.d;
return p<a.p;
}
}a[maxn],ans[maxn];
int dp[maxn][],x[maxn],n,tot;
void ST(){
for(int i=;i<=;i++)dp[i][]=x[i];
for(int j=;(<<j)<=maxn;j++)
for(int i=;i+(<<j)-<=maxn;i++)
dp[i][j]=min(dp[i][j-],dp[i+(<<(j-))][j-]);
}
int query(int L,int R){
int k=log2(R-L+);
return min(dp[L][k],dp[R-(<<k)+][k]);
}
int main(){
while(scanf("%d",&n)==){
for(int i=;i<;i++)
x[i]=maxn;
for(int i=;i<=n;i++){
scanf("%d%d",&a[i].p,&a[i].d);
a[i].p++;a[i].d++;
x[a[i].p]=min(x[a[i].p],a[i].d);
}
ST();tot=;
for(int i=;i<=n;i++){
if(a[i].p==) ans[tot++]=a[i];
else if(a[i].d<=query(,a[i].p-)) ans[tot++]=a[i];
}
printf("%d\n",tot);
sort(ans,ans+tot);
for(int i=;i<tot;i++) printf("%d %d\n",ans[i].p-,ans[i].d-);
}
}
hdu3193 降维+rmq的更多相关文章
- 【LightOJ 1081】Square Queries(二维RMQ降维)
Little Tommy is playing a game. The game is played on a 2D N x N grid. There is an integer in each c ...
- [数据结构]RMQ问题小结
RMQ问题小结 by Wine93 2014.1.14 1.算法简介 RMQ问题可分成以下2种 (1)静态RMQ:ST算法 一旦给定序列确定后就不在更新,只查询区间最大(小)值!这类问题可以用倍增 ...
- 【模板】RMQ(计算区间最值)
①一维RMQ (1) dp[i,j] 表示从第i个数起连续2j个数中的(最大值min.最小值max.最大公约数gcd……),通过更改下列代码中的红色函数即可实现. (2) b数组放置所需查询的数列. ...
- 奇异值分解(SVD)原理与在降维中的应用
奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域.是 ...
- 用scikit-learn进行LDA降维
在线性判别分析LDA原理总结中,我们对LDA降维的原理做了总结,这里我们就对scikit-learn中LDA的降维使用做一个总结. 1. 对scikit-learn中LDA类概述 在scikit-le ...
- scikit-learn一般实例之四:使用管道和GridSearchCV选择降维
本例构建一个管道来进行降维和预测的工作:先降维,接着通过支持向量分类器进行预测.本例将演示与在网格搜索过程进行单变量特征选择相比,怎样使用GrideSearchCV和管道来优化单一的CV跑无监督的PC ...
- 机器学习基础与实践(三)----数据降维之PCA
写在前面:本来这篇应该是上周四更新,但是上周四写了一篇深度学习的反向传播法的过程,就推迟更新了.本来想参考PRML来写,但是发现里面涉及到比较多的数学知识,写出来可能不好理解,我决定还是用最通俗的方法 ...
- BZOJ 3489: A simple rmq problem
3489: A simple rmq problem Time Limit: 40 Sec Memory Limit: 600 MBSubmit: 1594 Solved: 520[Submit] ...
- UVA 11235Frequent values(RMQ)
训练指南P198 题意:给出一个非降序排列的整数数组a1, a2…… an,你的任务是对于一系列询问(i,j),回答ai, ai+1 ……aj 中出现的次数最多的次数 这题不仅学到了rmq的应用还学到 ...
随机推荐
- python 面向对象之多态
多态是什么? 用一句话来概括下,多态就是同一操作(方法)作用于不同的对象时,可以有不同的解释,产生不同的执行结果. #!/usr/bin/env python # -*- coding: utf-8 ...
- 浅谈js的数字格式
除了正常我们常用的十进制(如5,8,12.123等),js还可以直接表示2.8.16进制 1.二进制 二进制是以0b开头 0b10; 2.八进制 八进制是以0开头 010: 3.十六进制 十六进制是以 ...
- Hadoop生态圈-CentOs7.5单机部署ClickHouse
Hadoop生态圈-CentOs7.5单机部署ClickHouse 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 到了新的公司,认识了新的同事,生产环境也得你去适应新的集群环境,我 ...
- sudo权限管理
sudo权限管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 好久没有更新关于命令的博客了,这也是这周工作,开发问了我一个问题,说caiq这个用户为什么不能用sudo权限,于是百 ...
- 带精英策略的快速非支配排序遗传算法 NSGA-II 算法
NSGAII(带精英策略的非支配排序的遗传算法),是基于遗传算法的多目标优化算法,是基于pareto最优解讨论的多目标优化,下面介绍pareto(帕累托)最优解的相关概念. Paerot支配关系 Pa ...
- python学习笔记9-单元测试unittest
Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 在说unittest之前,先说几个概念: TestC ...
- OOM之类、对象、实例、实体之辨析
一.场景再现 有一个重要的概念你需要弄明白,那就是“类(class)”和“对象(object)”的区别.我用禅语来解释一下吧: 鱼和三文鱼有什么区别? ...
- 第18月第2天 ios博客
1. github https://githuber.cn/search?language=Objective-C https://www.jianshu.com/u/815d10a4bdce htt ...
- Java 学习札记(二)TomCat安装配置
1.下载TomCat 下载地址:http://tomcat.apache.org/ 2.配置环境变量 CATALINA_HOME:F:\JAVA\apache-tomcat-6.0.18\apache ...
- 【BARTS计划】【Review_Week1】Google Docs 成为青少年们喜爱的聊天 app
BARTS计划 · Review :每周阅读并点评至少一篇英文技术文章. 附原文链接 Google Docs 本是作为协作办公工具存在的,却成了学生们现代版“传纸条”的工具.认真的说,“你永远不知道用 ...