UVA 11020 Efficient Solutions+multiset的應用
題目連結:點選進入
首先來講,很容易看到我們其實只要維護優勢人群的集合;如果加入一個新的人,我們首先看一下優勢人群中是否有人會讓這個人失去優勢,如果沒有,則將這個人插入集合中,但要注意到這個人的插入可能會讓其它的人失去優勢。所以要求這個集合要能支援快速查詢和修改操作;而multiset恰好能能滿足這個需要。
程式碼如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<set>
using namespace std;
struct Point
{
int a,b;
///Set中的元素按x進行排序
bool operator <(const Point& rhs) const
{
return a<rhs.a||(a==rhs.a&&b<rhs.b);
}
};
multiset<Point>S;
multiset<Point>::iterator it;
int main()
{
//freopen("in.txt","r",stdin);
int T;
scanf("%d",&T);
for(int Case=1;Case<=T;Case++)
{
if(Case!=1)
printf("\n");
printf("Case #%d:\n",Case);
int n,a,b;
scanf("%d",&n);
S.clear();
while(n--)
{
scanf("%d%d",&a,&b);
Point P=(Point){a,b};
it = S.lower_bound(P); ///在紅黑樹中查詢第一個小於P的元素
if(it==S.begin()|| (--it)->b >=b ) ///如果P也具有優勢
{
S.insert(P);
it = S.upper_bound(P); ///it以後的元素都會被影響
while(it!=S.end()&&it->b >=b) S.erase(it++); ///刪除掉失去優勢的人
}
printf("%d\n",S.size());
}
}
return 0;
}
相關文章
- UVA 673 括號的匹配——經典棧的應用
- UVA 11020 multiset、lower_bound、 upper_bound STL裡面的排序二叉樹排序二叉樹
- UVA 11991 STL中map、vector的應用
- uva 11997 priority_queue 應用舉例(超省時間!!!)
- uva 11995 棧,佇列,優先佇列,等基本資料結構的應用與理解佇列資料結構
- 讀《Efficient C++》疑惑 (轉)C++
- Memory-Efficient Adaptive OptimizationAPT
- SAP Enables Fast and Efficient Development with New IoTASTdev
- UVA 1401 Remember the Word(用Trie加速動態規劃)REM動態規劃
- solution-uva1594
- UVA 536 二叉樹的遍歷二叉樹
- Uva232 Crossword AnswersROS
- Uva 1590 IP Networks
- UVA 1593(Alignment of Code)
- UVA11624-Fire!
- UVA557 Burger 題解
- Deep Hashing Network for Efficient Similarity RetrievalMILA
- SEA-RAFT: Simple, Efficient, Accurate RAFT for Optical FlowRaft
- Unlearn What You Want to Forget Efficient Unlearning for LLMs
- Efficient DevSecOps Workflows with a Little Help from AIdevAI
- Uva 10410 Tree ReconstructionStruct
- UVA - 11178 Morley's TheoremREM
- UVa340 - Master-Mind HintsAST
- uva11292-Dragon of LoowaterGo
- uva10935卡片遊戲遊戲
- UVa 1225 - Digit CountingGit
- 計數排序+uva11462排序
- SAP BTP MTA 應用的應用場景
- 棧的應用
- DirectSound的應用
- 包的應用
- set 的應用
- QlikView的應用View
- PCMCIA的應用
- Decorator 的應用
- 反射的應用反射
- 2.3 應用程式容器中的應用程式概述
- UVA 10498 Happiness!(線性規劃)APP