bzoj 1824 JSOI2010 下棋問題

2022-04-30 07:57:06 字數 800 閱讀 4987

考慮每次新放乙個棋子會產生多少新的矩形,以及減掉多少舊的矩形。

用第$i$個點的座標把座標軸分成4個象限。

顯然第一問的答案用四個單調棧就能解決。

而且第二問每個矩形的兩個端點一定在1,3或2,4象限的單調棧裡。

列舉第一象限裡的乙個點,剩下三個象限裡維護3個指標,就能找出來第3象限裡能和當前點組成矩形的點。

二四象限同理。

#include#define n 5005

#define ll long long

using namespace std;

int n;

struct node

a[n];

ll ans1,ans2,now;

int p[n];

bool cmp(int x,int y)

if(op==4)if(!top[4]||a[t].y>a[q4[top[4]]].y)q4[++top[4]]=t;}}

int ans=top[1]+top[2]+top[3]+top[4];

int p1=top[2],p2=0,p3=top[3]+1,p4=top[3];

for(int i=1;i<=top[1];i++)

p1=top[1]+1,p2=0,p3=top[4]+1,p4=top[4];

for(int i=1;i<=top[2];i++)

return ans;

}int main()

printf("%lld %lld\n",ans1,ans2);

return 0;

}

小店購物 JSOI2008 BZOJ 2260

grant是乙個個體戶老闆,他經營的小店因為其豐富的優惠方案深受附近居民的青睞,生意紅火。小店的優惠方案十分簡單有趣。grant規定 在一次消費過程中,如果您在本店購買了精製油的話,您購買香皂時就可以享受2.00元 塊的 如果您在本店購買了香皂的話,您購買可樂時就可以享受1.50元 聽的 諸如此類的...

BZOJ 4327 JSOI2012 玄武密碼

字尾自動機裸題。藉著這道裸題總結一下字尾自動機的查詢問題。1.查字首 查詢時不跳parent,遇到空節點就跳出。2.查子串 查詢時跳parent,記錄最大ans.3.查次數 lct維護right陣列 4.查不同的串的數目 在建樹時維護,乙個點對答案的貢獻為this max len this pare...

JSOI2009 bzoj1449 球隊收益

description input output 乙個整數表示聯盟裡所有球隊收益之和的最小值。首先假設全輸,然後給每場比賽分配乙個贏家,每個隊伍每多贏一場多獲得的收益作為費用。但是有乙個問題,如何保證每次走的是對應的邊?也就是,如何保證贏第一場的時候增加的收益是贏一場減贏零場,而不是贏兩場減贏一場?...