题目大意:有n( n<1e5 )只队伍参加程序竞赛,然后给m个信息,每个信息告诉你第p

个队伍过了一题,并且告诉你罚时是多少,让你输入每个信息之后,第一个队伍的

排名。

思路:一眼看过去就像数据结构题,我们可以用足够大的数表示过了一题然后减去罚时,

这样就可以用一个数值来确定排名,然后我们用将所有出现过的分数抽离出来,排序去重

用这些数离散化用树状数组维护各个分数队伍数的前缀和,这样就能快速计算排名。

 #include<bits/stdc++.h>
#define ll long long
using namespace std;
const double g=10.0,eps=1e-;
const int N=+,maxn=,inf=0x3f3f3f3f;
int te[N],pe[N],cnt;
ll pen[N],has[N];
ll sum[N];
void update(int i,ll v)
{
while(i<cnt)
{
printf("%d %d**\n",i,cnt);
sum[i]+=v;
i+=i&(-i);
}
}
ll query(int i)
{
ll ans=;
while(i>)
{
ans+=sum[i];
i-=i&(-i);
}
return ans;
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
cnt=;
has[cnt++]=;
for(int i=;i<m;i++)
{
scanf("%d%d",&te[i],&pe[i]);
pen[te[i]]+=1e10-pe[i];
has[cnt++]=pen[te[i]];
}
sort(has+,has+cnt);
cnt=unique(has+,has+cnt)-has;
memset(pen,,sizeof pen);
update(,n);
for(int i=;i<m;i++)
{
int p=lower_bound(has+,has+cnt,pen[te[i]])-has;
update(p,-);
pen[te[i]]+=1e10-pe[i];
p=lower_bound(has+,has+cnt,pen[te[i]])-has;
update(p,);
p=lower_bound(has+,has+cnt,pen[])-has;
int res=query(cnt-)-query(p);
printf("%d\n",res+);
}
return ;
}
/******************** ********************/

Nordic Collegiate Programming Contest NCPC 2017-Problem G Galactic Collegiate Programming Contest的更多相关文章

  1. Codeforces Gym101572 G.Galactic Collegiate Programming Contest (2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017))

    Problem G Galactic Collegiate Programming Contest 这个题题意读了一会,就是几个队参加比赛,根据实时的信息,问你1号队的实时排名(题数和罚时相同的时候并 ...

  2. 模拟赛小结:2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017)

    比赛链接:传送门 本场我们队过的题感觉算法都挺简单的,不知道为啥做的时候感觉没有很顺利. 封榜后7题,罚时1015.第一次模拟赛金,虽然是北欧的区域赛,但还是有点开心的. Problem B Best ...

  3. Codeforces Gym101572 B.Best Relay Team (2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017))

    2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017) 今日份的训练,题目难度4颗星,心态被打崩了,会的算法太少了,知 ...

  4. 2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017)

    A. Airport Coffee 设$f_i$表示考虑前$i$个咖啡厅,且在$i$处买咖啡的最小时间,通过单调队列优化转移. 时间复杂度$O(n)$. #include<cstdio> ...

  5. 2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017) Solution

    A - Airport Coffee 留坑. B - Best Relay Team 枚举首棒 #include <bits/stdc++.h> using namespace std; ...

  6. G - Galactic Collegiate Programming Contest Kattis - gcpc (set使用)

    题目链接: G - Galactic Collegiate Programming Contest Kattis - gcpc 题目大意:当前有n个人,一共有m次提交记录,每一次的提交包括两个数,st ...

  7. Codeforces Gym101572 J.Judging Moose (2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017))

     Problem J Judging Moose 这个题是这里面最简单的一个题... 代码: 1 //J 2 #include <stdio.h> 3 #include <math. ...

  8. 【离散化树状数组】Nordic Collegiate Programming Contest G.Galactic Collegiate Programming Contest

    #include<bits/stdc++.h> using namespace std; typedef long long ll; int n,m; ; struct node { in ...

  9. 【折半枚举】Ural Championship April 30, 2017 Problem G. Glasses with solutions

    题意:有n杯盐溶液,给定每杯里面盐的质量以及盐溶液的质量.问你有多少种方案选择一个子集,使得集合里面的盐溶液倒到一个被子里面以后,浓度为A/B. 折半枚举,暴力搜索分界线一侧的答案数,跨越分界线的答案 ...

随机推荐

  1. Quartz.net创建windows服务

    序言 安装服务 sc create XXService binpath= "XXService.exe" start= auto sc description XXService ...

  2. 二、主目录 Makefile 分析(1)

    2.1 uboot 版本号 uboot 的版本号分三个级别: VERSION:主版本号 PATCHLEVEL:次版本号,为补丁级别 SUBLEVEL:再次版本号 EXTRAVERSION:附加版本信息 ...

  3. 20155237 2016-2017-2 《Java程序设计》第8周学习总结

    20155237 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 NIO与NIO2 认识NIO Channel: 衔接数据节点(与IO中的流对比) isOpe ...

  4. asp.net mvc简单分页实例

    @{ ViewBag.Title = "Index"; } @{ int pageIndex = (int)ViewBag.CurrentPage; int pageCount = ...

  5. comfirm和prompt的区别

    comfirm和prompt的区别. <html> <title>测试页面</title> <head> </head> <body& ...

  6. mysql 案例 ~查询导致的tmp临时文件问题

    一 简介:之前遇到一个tmp分区暴涨的问题,后来经过大神的指点,遂分析写下 二 分类: 1  select语句出现 using temporay tmp 下出现 #sql_631a_1.MYD #sq ...

  7. android彻底关闭应用程序方法

    Android SDK > 7(Android2.1)之后,即Android2.2及以后版本彻底关闭应用的方法,目前试验只有一下方法有效: Intent startMain = new Inte ...

  8. 【vue报错】——listen EADDRINUSE :::8080 解决方案

    题原因: 此项错误表示 8080 端口被占用 解决方案一: 打开cmd输入:netstat -ano|findstr "8080"查看所有端口信息,并通过findstr “8080 ...

  9. 用Quartz 2D画小黄人

    第一步: 先创建一个OneView类,并在storyboard里边拖拽一个UIview,将这个UIview的类改成OneView.如图所示: 第二步: 在新创建的Oneview里,补齐下列代码: // ...

  10. yum安装包另存

    yum install --downloadonly --downloaddir=/tmp <package-name> 1.yum已安装的列表 yum list installed