思路

先判断一个点能不能插入,能插入的话删除所有因为它而没有优势的点

注意

写

    S.erase(it);
it++;

会RE

要写

    S.erase(it++);

代码

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <set>
using namespace std;
multiset<pair<int,int> > S;
int n;
int main(){
// freopen("test.in","r",stdin);
// freopen("test.out","w",stdout);
int T,cnt=0;
scanf("%d",&T);
while(T--){
cnt++;
scanf("%d",&n);
S.clear();
printf("Case #%d:\n",cnt);
for(int i=1;i<=n;i++){
int x,y;
scanf("%d %d",&x,&y);
auto it = S.lower_bound(make_pair(x,y));
if(it==S.begin()){
S.insert(make_pair(x,y));
for(auto it2=S.upper_bound(make_pair(x,y));it2!=S.end();){
// printf("it1 %d,%d\n",(*it2).first,(*it2).second);
if((*it2).second>=y)
S.erase(it2++);
else
break;
}
}
else{
it--;
if((*it).second>y){
S.insert(make_pair(x,y));
for(auto it2=S.upper_bound(make_pair(x,y));it2!=S.end();){
// printf("it2 %d,%d\n",(*it2).first,(*it2).second);
if((*it2).second>=y)
S.erase(it2++);
else
break;
}
}
}
printf("%d\n",S.size());
}
if(T)
printf("\n");
}
return 0;
}

UVA11020 Efficient Solutions的更多相关文章

  1. UVA 11020 - Efficient Solutions(set)

    UVA 11020 - Efficient Solutions 题目链接 题意:每个人有两个属性值(x, y).对于每个人(x,y)而言,当有还有一个人(x', y'),假设他们的属性值满足x' &l ...

  2. UVA_11020 Efficient Solutions 【平衡二叉搜索树set用法】

    一.题面 UVA11020 二.分析 最近脑子有点不好使吧,这题还想了很久. 对于给定的两个值要满足题面中的条件,那么我们可以把这两个值转化到平面中的坐标去理解. 首先,需要考虑的是维护的所有点其实是 ...

  3. STL(multiset) UVA 11020 Efficient Solutions

    题目传送门 题意:训练指南P228 分析:照着书上的做法,把点插入后把它后面不占优势的点删除,S.size ()就是优势的人数,时间复杂度O (nlogn) #include <bits/std ...

  4. UVa 11020 Efficient Solutions(平衡二叉树/multiset )

    题意:有n个人,每个人有x.y两个属性,每次输入一个人(x,y).如果当前不存在一个人(x`,y`)的属性满足x`<=x,y`<y或者x`<x,y`<=y,就说这个人是有优势的 ...

  5. uva 11020 - Efficient Solutions ——平衡BST

    链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&am ...

  6. uva 11020 Efficient Solutions

    题意:给你n个人,有两个属性x.y,如果不存在另外一个人x2,y2满足 x2<=x,y2<y 或者 x2<x,y2<=y,那么就称这个人是有优势的,每次给你一个人得信息,问你当 ...

  7. UVA - 11020 Efficient Solutions(Multiset)

    本题利用multiset解决.根据题意,如果我们用P(x,y)表示一个人,因为人可以相同,所以用multiset.我们会发现,如果所有人群都是有优势的,那么这些点呈现一个递减的趋势.如果刚刚插入一个人 ...

  8. UVa 11020 Efficient Solutions (BST)

    题意:给按顺序给定 n 个人群,用x和y来描述,如果有没有任何一个x' < x y' <= y 或 x '<= x y' <= y,那么这个群体就是优势群体, 让你求出每放入一 ...

  9. UVA 110020 Efficient Solutions (STL)

    把一个人看出一个二维的点,优势的点就是就原点为左下角,这个点为右上角的矩形,包含除了右上角以外边界,其他任意地方不存在点. 那么所有有优势的点将会形成一条下凹的曲线. 因为可能有重点,用multise ...

随机推荐

  1. Windows命令行设置dns

    管理员运行cmd 1.dns配置成192.168.1.200 netsh interface ip set dns name="以太网" source=static addr=19 ...

  2. match 和 lastIndex 字符串检测差异

    match .replace .search 这写不能识别特殊字符 indexOf .indexof 能识别特殊字符 str.lastIndexOf('a') > -1 // 通过lastInd ...

  3. FPC全制造组装的流程介绍(转载)

    [维文信FPC]FPC又称柔性电路板,FPC的PCBA组装焊接流程与硬性电路板的组装有很大的不同,因为FPC板子的硬度不够,较柔软,如果不使用专用载板,就无法完成固定和传输,也就无法完成印刷.贴片.过 ...

  4. VMware虚拟机共享宿主机硬盘步骤

    1.打开设置 2. 进去设置后,选择选项选项卡,启用文件夹共享,添加文件夹即可 注:虚拟机安装完成后我先装了 VMwareTools,然后进行的共享操作,貌似不安装时无法启用第三步,即 总是启用 按钮 ...

  5. Oracle SQL Loader

    C:/Documents and Settings/WWJD>sqlldr SQL :: Copyright (c) , , Oracle. All rights reserved. 用法: S ...

  6. vue移动端适配

    https://www.w3cplus.com/mobile/vw-layout-in-vue.html

  7. React 学习过程中常见的错误

    1,  react报错Module not found: Error: Can't resolve     解决:  一般是加载文件的路径写错了:      

  8. PHPexcel(2)

    //导出 public function export(){ $xlsData = Db('ent_apply')->select(); Vendor('PHPExcel.PHPExcel'); ...

  9. 指定时间生成cron表达式

    public class CronUtils { private static final SimpleDateFormat sdf = new SimpleDateFormat("ss m ...

  10. Original Autel MaxiSys Pro MS908P support 2 Year Free Update Online

    You can get 2 Year Free Update Online once you place an order on Autel MS908P. Software Version: Eve ...