這些圓一定是在同一水平面上的,由於他們沒有相交,因此我們發現他們每個人與外界關係可以分為,1.存在並圈圈 2.存在圈圈並被割,因此我們把所有的圓都加1,把被割的在加1,就可以啦,因此我們開乙個線段樹,維護一段區間有沒有被全部覆蓋
#include #include#include
#include
#include
#define r register
#define maxn 300000
using
namespace
std;
typedef unsigned
long
ui;struct
oo[maxn+10
];int
n;int comp(const o a,const
o b)
struct
seg_tree
*root;
inline seg_tree *new(ui l,ui r)
bool query(seg_tree *p,ui l,ui r)
if(p->midreturn
ans;
}void ins(seg_tree *p,ui l,ui r)
if(l<=p->mid)
if(p->midif(p->ch[0]&&p->ch[1])p->cover=p->ch[0]->cover&p->ch[1]->cover;
}inline
void
init()
sort(o+1,o+n+1
,comp);
root=new(1
,4000000010ll);
}inline
void
work()
printf("%d
",ans);
}int
main()
noip模擬題 天神下凡(貪心)
vijos某次模擬賽原題。處理出每個圓的一級祖先就行了。其實沒有那麼麻煩,貪心即可出解。我們將每個圓轉換成線段後按左端點小右端點大的方法排序 然後維護乙個棧 對於每乙個圓i 如果棧頂右端點比圓i的右端點小,則出棧,直到棧空 否則i的一級祖先就是棧頂,並且加入i到棧。證明 因為左端點排序,所以問題轉換...
noip模擬賽 密碼
表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...
NOIP模擬賽 老師
題目描述 一座有n層的教學樓裡有一些學生,第i 0 i n 層有studentsi個學生。你被給定了乙個數k,如果第i層有x個學生,那麼這一層需要 x k 個老師。你可以調整每個學生的樓層,但是每個學生至多只能調整一層,就是說第i層的學生只能去第i 1層 如果有的話 第i層 第i 1層 如果i 1 ...