NKOJ P2419 【单调队列】集合的第N大元素
来源:互联网 发布:网易云音乐推荐算法 编辑:程序博客网 时间:2024/05/21 22:11
题目导引:http://oi.nks.edu.cn/zh/Problem/Details/2419
问题描述
有一个集合满足下面的关系:
1)1属于该集合;
2)如果x属于该集合,则2x+1和3x+1也属于该集合;
3)集合中再无其它的元素。
请你求出集合的前n小的元素。
输入格式
一个整数N(N<=200000)
输出格式
一行,N个不同的整数,由小到大排列,用空格间隔
样例输入
5
样例输出
1 3 4 7 9
建两个队列,分别存放2*m+1与3*m+1的元素,注意维护单调递增
对于第i小元素,讲两个队列的队首元素取出进行讨论,输出较小的那个元素,
一直到第n小的数
#include <stdio.h>#define ll long long#define maxn 200000+5int n,x=1;ll a[maxn],b[maxn];int main(){int ha,hb,ta,tb;scanf("%d",&n);ha=hb=ta=tb=1;for(int i=1;i<=n;i++){printf("%d ",x);a[ta++]=x*2+1;b[tb++]=x*3+1;if(a[ha]==b[hb]){x=a[ha];++ha;++hb;} else if(a[ha]<b[hb]) x=a[ha++]; else x=b[hb++];}return 0;}
阅读全文
0 0
- NKOJ P2419 【单调队列】集合的第N大元素
- 集合的第N大元素
- NKOI 2419 集合的第N元素
- 寻找第n大的元素
- 单调队列求第k大值
- NKOJ 2151【单调队列】烽火传递 单调队列优化DP
- NKOJ 2150 【单调队列】广告印刷
- NKOJ 2150 广告印刷 单调队列
- NKOJ 3545 接近(DP+单调队列)
- 找出第n大元素
- NKOJ 2650 (SDOI 2011) 消防(树的直径+DP+单调队列/二分答案)
- 寻找一个序列中第n大的元素
- N个数中第k大的元素
- 求数组中第n大(小)的元素
- 无序n个元素中,寻找第K大的元素 O(n)
- 寻找第k小的元素或者第k大的元素 -- O(n)
- NKOJ 3768 数列操作(单调队列/栈+DP)
- NKOJ 3775 数列操作(单调队列+DP)
- [NOIP2017模拟]游戏
- Python 操作MongoDB数据库
- NOIP2016 Day2
- 一 统计学习理论前奏:大数定理的发展脉络
- bzoj3231[Sdoi2008]递归数列
- NKOJ P2419 【单调队列】集合的第N大元素
- 目录【Struts2】
- 配置redis外网可访问
- 15.3.2 FileWriter
- 抽象类与接口
- java学习第40天,队列 栈
- python正则表达式(1)
- 期望dp小结
- oracle <>