比赛

时间限制:1 s  
内存限制:256 MB

【题目描述】

n(n≤100000)个人编号为0到n-1,每人都有一个能力值,大小在0到n-1之间,各不相同,他们之间有c场比赛,每场比赛指定一个区间
[l,r],当前第l个到第r个中能力值最大的获胜,其他的都被淘汰,不再出现在候选之列,现在你是n个人中的一个,也要参加这比赛,但你可以选择已经排
好的n-1人之间的n个位置中的一个进行插入,使得自己赢的场数最多,输出最小的位置。

【输入格式】

第一行三个数n c k,k是你的能力值。

接下来n-1行表示前n-1个人的能力值。

最后c行表示比赛,保证比赛合法。

【输出格式】

一行即答案。

【样例输入】

5 3 3

1

0

2

4

1 3

0 1

0 1

【样例输出】

1

  这道题,发现对于一个比赛,求出其实际上对应的人分别是哪些,假想每个人自己一个人比赛一次,再考虑对于比赛建树,一个A节点是另一个节点B的子节点仅当A的最强者参加了比赛B,维护胜利者的能力值。假设要参加某场比赛,那么发现这场比赛中最后一个人被挤出去了,所以对于树中节点不统计最后那个人的信息,但在整合子树时考虑。

 #include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int maxn=;
int bit[maxn],N,fa[maxn];
int a[maxn],Max[maxn];
int ID[maxn],dp[maxn];
int L[maxn],R[maxn];
int n,c,k; void Add(int x,int d){
while(x<=N){
bit[x]+=d;
x+=x&(-x);
}
} int Pos(int k){
int p=;
for(int i=N;i;i>>=)
if(bit[p+(i>>)]<k)
k-=bit[p+=i>>];
return p+;
} int main(){
freopen("competition.in","r",stdin);
freopen("competition.out","w",stdout);
scanf("%d%d%d",&n,&c,&k);
for(N=;N<=n;N<<=);
for(int i=;i<n;i++){
scanf("%d",&a[i]);
Add(i,);ID[i]=i;
L[i]=R[i]=i;
}Add(n+,);
for(int i=,l,r;i<=c;i++){
scanf("%d%d",&l,&r);l++,r++;
L[n+i]=Pos(l);R[n+i]=Pos(r+)-;
for(int j=l;j<=r;j++){
int x=ID[Pos(j)];fa[x]=n+i;
Max[n+i]=max(Max[n+i],Max[x]);
if(j!=r)Max[n+i]=max(Max[n+i],a[R[x]]);
}
ID[L[n+i]]=n+i;
for(int j=r;j>l;j--)
Add(Pos(j),-);
} for(int i=c;i>=;i--)
dp[n+i]=Max[n+i]<k?dp[fa[n+i]]+:; int M=,p=;
for(int i=;i<=n;i++)
if(dp[fa[i]]>M)
M=dp[fa[i]],p=i;
printf("%d\n",p-);
return ;
}

数据结构(脑洞题,BIT):COGS 2394. 比赛的更多相关文章

  1. 图论(KM算法,脑洞题):HNOI 2014 画框(frame)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABPoAAANFCAIAAABtIwXVAAAgAElEQVR4nOydeVxTV/r/n9ertaJEC4

  2. Python小白的数学建模课-A1.2021年数维杯C题(运动会优化比赛模式探索)探讨

    Python小白的数学建模课 A1-2021年数维杯C题(运动会优化比赛模式探索)探讨. 运动会优化比赛模式问题,是公平分配问题 『Python小白的数学建模课 @ Youcans』带你从数模小白成为 ...

  3. 数据结构(主席树):COGS 2211. 谈笑风生

    2211. 谈笑风生 ★★★★   输入文件:laugh.in   输出文件:laugh.out   简单对比时间限制:3 s   内存限制:512 MB [问题描述] 设T 为一棵有根树,我们做如下 ...

  4. Poj3484-Showstopper(二分脑洞题)

    Description Data-mining huge data sets can be a painful and long lasting process if we are not aware ...

  5. [LOJ 6270]数据结构板子题

    Description 有n个区间,第i个区间是[li,ri],它的长度是ri−li. 有q个询问,每个询问给定L,R,K,询问被[L,R]包含的且长度不小于K的区间数量. 你想,像这种板子题,你随手 ...

  6. 2019/4/22 拓扑排序的高效写法. 模板题HDU1285:确定比赛名次

    传送门 Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现 ...

  7. 字符串数据结构模板/题单(后缀数组,后缀自动机,LCP,后缀平衡树,回文自动机)

    模板 后缀数组 #include<bits/stdc++.h> #define R register int using namespace std; const int N=1e6+9; ...

  8. LOJ #6270. 数据结构板子题 (离线+树状数组)

    题意 有 \(n\) 个区间,第 \(i\) 个区间是 \([l_i,r_i]\) ,它的长度是 \(r_i-l_i\) . 有 \(q\) 个询问,每个询问给定 \(L,R,K\) ,询问被 \([ ...

  9. UVA 5986 - Wizarding Duel 超级脑洞题

    给出n个人,每个人两两比赛一场,一共有C(n,2)场比赛,现在给出一个榜,问其是否合法.不合法的话,就改成合法,输出最小需要改的变化. 分数一定是C(n,2)的了, 不和法的情况,比如0,0,2,是不 ...

随机推荐

  1. SQL语句优化(分享)

    一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...

  2. 【css面试题】三个DIV要求水平对齐,左右两个DIV宽度固定为100px,中间那个DIV充满剩余的宽度(至少2种方法)

    这是我在一家公司面试时遇到的问题,当时没有答上来!! 所以看到的小伙伴一定要注意了!! 变化浏览器宽度可看到效果: 左 右 中 然后我们来看看代码: 第一种方法:(浮动) <style type ...

  3. 各种语言HMAC SHA256实现

    语言包含: Javascript ,PHP,Java,Groovy,C#,Objective C,Go,Ruby,Python,Perl,Dart,Swift,Rust,Powershell. Jav ...

  4. U3D 背景音效和事件触发音效

    首先,想要在一个游戏添加背景音乐其实很简单,就是利用一个组件 就能够实现音频的播放,不过要实现通过某一个事件,来进行声音的播放,比如跳跃啊什么的: public AudioClip jumpclips ...

  5. For and While loop choice.

    /* Difference between 'for' and 'while'. We can transform everything between 'for' and 'while'. if t ...

  6. 一些硬件厂商的MAC号

    http://standards.ieee.org/develop/regauth/oui/oui.txt https://svn.nmap.org/nmap/nmap-mac-prefixes

  7. WHU 1572 Cyy and Fzz (AC自动机 dp )

    题意: 给出n个串,求任意长度为m的字符串包含串的个数的期望.(n<=8,m<=14,给定串的长度不超过12). Solution: 首先可以想到应该用概率DP,我们需要至少3维,dp[i ...

  8. 如果数据为null,则转成数据库可识别的DBNULL.Value

    // <summary> /// 如果数据为null,则转成数据库可识别的DBNULL.Value /// </summary> /// <param name=&quo ...

  9. javascript 函数声明问题

    (function(){ //运行正常 test1(); function test1() { console.log('123'); }; })() (function(){ //出错,test2未 ...

  10. Bootstrap_Javascript_提示框

    一. 结构分析 在Bootstrap框架中的提示框,结构非常简单,常常使用的是按钮<button>标签或者链接<a>标签来制作.不管是使用按钮还是链接来制作提示框,他们都有一个 ...