p4364 [九省联考2018]IIIDX
分析
我们先考虑如果所有数都不相同我们应该怎么办
我们可以直接贪心的在每个点放可行的最大权值
但是题目要求可以有相同的数
我们可以考虑每次让当前节点可发且尽量大的同时给兄弟节点留的数尽量大
我们用线段树维护每个点比它大的点还剩几个
对于每个点要给它的子树预留足够的点即可
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<ctime>
#include<vector>
#include<set>
#include<map>
#include<stack>
using namespace std;
int n,fa[],siz[],d[],col[];
int a[],ans[],cnt[];
double f;
inline bool cmp(const int x,const int y){return x>y;}
inline void build(int le,int ri,int wh){
if(le==ri){
d[wh]=le;
return;
}
int mid=(le+ri)>>;
build(le,mid,wh<<);
build(mid+,ri,wh<<|);
d[wh]=min(d[wh<<],d[wh<<|]);
}
inline void update(int le,int ri,int wh,int x,int y,int k){
if(le>=x&&ri<=y){
d[wh]+=k;
col[wh]+=k;
return;
}
int mid=(le+ri)>>;
if(col[wh]!=){
d[wh<<]+=col[wh];
d[wh<<|]+=col[wh];
col[wh<<]+=col[wh];
col[wh<<|]+=col[wh];
col[wh]=;
}
if(mid>=x)update(le,mid,wh<<,x,y,k);
if(mid<y)update(mid+,ri,wh<<|,x,y,k);
d[wh]=min(d[wh<<],d[wh<<|]);
}
inline int q(int le,int ri,int wh,int k){
if(le==ri)return d[wh]>=k?le:le+;
int mid=(le+ri)>>;
if(col[wh]!=){
d[wh<<]+=col[wh];
d[wh<<|]+=col[wh];
col[wh<<]+=col[wh];
col[wh<<|]+=col[wh];
col[wh]=;
}
if(d[wh<<|]>=k)return q(le,mid,wh<<,k);
else return q(mid+,ri,wh<<|,k);
}
int main(){
int i,j,k;
scanf("%d",&n);
cin>>f;
for(i=;i<=n;i++)scanf("%d",&a[i]);
for(i=;i<=n;i++)fa[i]=i/f,siz[i]=;
sort(a+,a+n+,cmp);
for(i=n;i>;i--)siz[fa[i]]+=siz[i];
for(i=n-;i>;i--)cnt[i]=(a[i]==a[i+]?cnt[i+]+:);
build(,n,);
for(i=;i<=n;i++){
if(fa[i]&&fa[i]!=fa[i-])update(,n,,ans[fa[i]],n,siz[fa[i]]-);
int x=q(,n,,siz[i]);
x+=cnt[x];
++cnt[x];
ans[i]=x;
update(,n,,x,n,-siz[i]);
}
for(i=;i<=n;i++)printf("%d ",a[ans[i]]);
return ;
}
p4364 [九省联考2018]IIIDX的更多相关文章
- [luogu] P4364 [九省联考2018]IIIDX(贪心)
P4364 [九省联考2018]IIIDX 题目背景 Osu 听过没?那是Konano 最喜欢的一款音乐游戏,而他的梦想就是有一天自己也能做个独特酷炫的音乐游戏.现在,他在世界知名游戏公司KONMAI ...
- 洛谷P4364 [九省联考2018]IIIDX 【线段树】
题目 [题目背景] Osu听过没?那是Konano最喜欢的一款音乐游戏,而他的梦想就是有一天自己也能做个独特酷炫的音乐游戏.现在 ,他在世界知名游戏公司KONMAI内工作,离他的梦想也越来越近了.这款 ...
- [luogu]P4364 [九省联考2018]IIIDX
题目背景 Osu 听过没?那是Konano 最喜欢的一款音乐游戏,而他的梦想就是有一天自己也能做个独特酷炫的音乐游戏.现在,他在世界知名游戏公司KONMAI 内工作,离他的梦想也越来越近了. 这款音乐 ...
- 洛谷P4364 [九省联考2018]IIIDX(线段树)
传送门 题解看得……很……迷? 因为取完一个数后,它的子树中只能取权值小于等于它的数.我们先把权值从大到小排序,然后记$a_i$为他左边(包括自己)所有取完他还能取的数的个数.那么当取完一个点$x$的 ...
- 洛谷 4364 [九省联考2018]IIIDX——“预留”的思路
题目:https://www.luogu.org/problemnew/show/P4364 原来想了一个错误的思路,就是这样: solve( cr , l , r ) 表示 cr 为根的子树填 [ ...
- [BZOJ5249][九省联考2018]IIIDX(线段树)
5249: [2018多省省队联测]IIIDX Time Limit: 40 Sec Memory Limit: 512 MBSubmit: 32 Solved: 17[Submit][Statu ...
- BZOJ5249:[九省联考2018]IIIDX——题解
https://www.luogu.org/problemnew/show/P4364#sub https://www.lydsy.com/JudgeOnline/problem.php?id=524 ...
- [九省联考2018]IIIDX
题目描述 这一天,Konano接到了一个任务,他需要给正在制作中的游戏<IIIDX>安排曲目的解锁顺序.游戏内共有n首曲目 ,每首曲目都会有一个难度d,游戏内第i首曲目会在玩家Pass第t ...
- BZOJ.5249.[九省联考2018]iiidx(贪心 线段树)
BZOJ LOJ 洛谷 \(d_i\)不同就不用说了,建出树来\(DFS\)一遍. 对于\(d_i\)不同的情况: Solution 1: xxy tql! 考虑如何把这些数依次填到树里. 首先对于已 ...
随机推荐
- 数组与指针的区别,以及在STL中传递数组/指针
数组和指针在作为实参传入T[] 或T*的形参时没有区别 void f(int pi[]) { cout << sizeof(pi) << endl; } int a[5] = ...
- MongoDB在windows平台分片集群部署
本文转载自:https://www.cnblogs.com/hx764208769/p/4260177.html 前言-为什么我要使用mongodb 最近我公司要开发一个日志系统,这个日志系统包括很多 ...
- Zookeeper--安装及命令
Zookeeper--单机模式安装 及命令 下载地址: http://zookeeper.apache.org/releases.html tar -zxvf zookeeper-3.4.10.tar ...
- POJ 2566 Bound Found(尺取法,前缀和)
Bound Found Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5207 Accepted: 1667 Spe ...
- Java-Runoob-面向对象:Java 继承-u1
ylbtech-Java-Runoob-面向对象:Java 继承 1.返回顶部 1. Java 继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类 ...
- 杂项-DB:内存数据库
ylbtech-杂项-DB:内存数据库 内存数据库,顾名思义就是将数据放在内存中直接操作的数据库.相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的 ...
- bytes数据类型和字符串的编码解码,三元运算,进制互换
三元运算 如果这个条件成立就存这个值,如果那个条件成立就存那个值. 进制 bytes类型,字节数据类型也就是二进制类型,这个是python3专有数据类型,在python2里跟字符串是一个类型,也就是p ...
- 017:磁盘I/0介绍和测试
一. 磁盘 1. 磁盘的访问模式 顺序访问 顺序的访问磁盘上的块: 一般经过测试后,得到该值的单位是MB/s,表示为磁盘带宽,普通硬盘在 50~ 100 MB/s 随机访问 随机的访问磁盘上的块 也可 ...
- 禁用绑定在Repeater的控件
实例一: 前台: <asp:Repeater ID="rp_bf" runat="server" onitemdatabound="rp_bf_ ...
- canvas之太阳系效果
星球 变量名 公转周期 光色 暗色 水星 Mercury 87.70 #a69697 #5c3e40 金星 Venus 224.701.70 #c4bbac #1f1315 地球 Earth 365. ...