数据结构(脑洞题,BIT):COGS 2394. 比赛
比赛
时间限制: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. 比赛的更多相关文章
- 图论(KM算法,脑洞题):HNOI 2014 画框(frame)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABPoAAANFCAIAAABtIwXVAAAgAElEQVR4nOydeVxTV/r/n9ertaJEC4
- Python小白的数学建模课-A1.2021年数维杯C题(运动会优化比赛模式探索)探讨
Python小白的数学建模课 A1-2021年数维杯C题(运动会优化比赛模式探索)探讨. 运动会优化比赛模式问题,是公平分配问题 『Python小白的数学建模课 @ Youcans』带你从数模小白成为 ...
- 数据结构(主席树):COGS 2211. 谈笑风生
2211. 谈笑风生 ★★★★ 输入文件:laugh.in 输出文件:laugh.out 简单对比时间限制:3 s 内存限制:512 MB [问题描述] 设T 为一棵有根树,我们做如下 ...
- Poj3484-Showstopper(二分脑洞题)
Description Data-mining huge data sets can be a painful and long lasting process if we are not aware ...
- [LOJ 6270]数据结构板子题
Description 有n个区间,第i个区间是[li,ri],它的长度是ri−li. 有q个询问,每个询问给定L,R,K,询问被[L,R]包含的且长度不小于K的区间数量. 你想,像这种板子题,你随手 ...
- 2019/4/22 拓扑排序的高效写法. 模板题HDU1285:确定比赛名次
传送门 Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现 ...
- 字符串数据结构模板/题单(后缀数组,后缀自动机,LCP,后缀平衡树,回文自动机)
模板 后缀数组 #include<bits/stdc++.h> #define R register int using namespace std; const int N=1e6+9; ...
- LOJ #6270. 数据结构板子题 (离线+树状数组)
题意 有 \(n\) 个区间,第 \(i\) 个区间是 \([l_i,r_i]\) ,它的长度是 \(r_i-l_i\) . 有 \(q\) 个询问,每个询问给定 \(L,R,K\) ,询问被 \([ ...
- UVA 5986 - Wizarding Duel 超级脑洞题
给出n个人,每个人两两比赛一场,一共有C(n,2)场比赛,现在给出一个榜,问其是否合法.不合法的话,就改成合法,输出最小需要改的变化. 分数一定是C(n,2)的了, 不和法的情况,比如0,0,2,是不 ...
随机推荐
- 启动hadoop时候报错:localhost: ssh: Could not resolve hostname localhost: Temporary failure in name resolution”
这个错误是由于配置文件没有配置好.解决方案如下: 1 打开profile文件 vim /etc/profile 2 在文件最后加入的内容应该如下(高亮的两句一般是大家缺少的): export JAVA ...
- vs在winform中不给力哈-错误不提示
我的操作系统是windows Server 2008 x64,运行winform的时候,对Dictionary累加值.运行的时候,项目一闪而过,于是我在Project的Properties上选择运行的 ...
- asp.net发布和更新网站
我们一般使用ftp软件来更新网站,而更新之前的一个步骤就是发布项目.以下将讲解asp.net mvc如何发布网站. 打开项目 右键点击项目,选择“发布” 第一次发布前,需要配置一下发布配置文件:点击” ...
- 06MySQL数据库入门
1.数据库的概念 数据库是保存数据的仓库,可以方便的把数据放进去,并且把数据根据各种需求取出来. 数据库管理系统(Database Management System,DBMS)是对数据库进行管理(增 ...
- Invalid project description overlaps the location of another project [android]
解决办法: 1.将工程放到其他目录下,然后执行Android工程的导入,导入时可以选择“Copy projects into workspace”: 2.不用Android工程导入,而用普通的工程导入 ...
- SGU 156. Strange Graph(欧拉路)
时间限制:0.25s 空间限制:6M 题目描述 让我们想象一个无向图G=<V,E>.如果边(u,v)在边集E中,那么我们就说两个顶点u和v是邻接点.在这种情况下,我们也说u是v的一个邻接点 ...
- Windows7 IIS7 无法启动计算机上的服务W3SVC如何修复
错误提示 启动iis7管理服务器提示:无法启动计算机上的服务W3SVC 启动Windows Process Activation Service服务,报错:6801 指定资源管理器中的事务支持未启动或 ...
- C# winform 右下角弹窗
[DllImport("user32")] private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, in ...
- ecshop数据库操作类
ECShop v2.7.2没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现. 好处:实现非常轻量,只有一个文件,27Kb,大大减小了分发包的文件大小. 当网站需要做me ...
- iOS工程适配64-bit经验分享
终究还是来了.Apple下发了支持64位的最后通牒: As we announced in October, beginning February 1, 2015 new iOS apps submi ...