稻草人 題解

2021-08-22 07:26:13 字數 1341 閱讀 5396

網上**各種各樣的都可以ac,但關於判斷橫(縱)座標相同是否構成矩形這一點各有不同。實際上,題目資料沒有橫座標標或者縱座標相同的情況,所以放心ac。

cdq分治都看得出來。反正按縱座標分為上下兩層,然後考慮上對下的貢獻。由於不能跨點,研究乙個性質放在單調佇列裡就行了。

比普通分治還是多乙個思維.提高組t1難度吧

#include

#define ll long long

using

namespace

std;

int n;

template

inline

void read(t&data)

}const

int _ = 2e5+1021;

struct poip[_],zjy[_];

ll ans=0;int n;

int ql[_],qr[_];

ll tree[_];

bool cmp(register poi a,register poi b)

inline

void modify(register

int loc,register

int zh)

inline ll query(register

int loc1,register

int loc2)

void cdq(register

int l,register

int r)

ql[++lc]=pin1;modify(p[pin1].x,1);

zjy[ppl]=p[pin1];

++pin1;++ppl;

}zjy[ppl]=p[pin2];++ppl;

ans+=query(p[qr[rc-1]].x,p[qr[rc]].x);

}while(lc)

modify(p[ql[lc]].x,-1),--lc;

while(pin1<=mid)

for(register

int i=l;i<=r;++i)p[i]=zjy[i];

}int main()

sort(p+1,p+n+1,cmp);//橫、縱座標太大了

for(register

int i=1,pre=-1,sum=0;i<=n;++i)

sort(p+1,p+n+1,cmp2);

for(register

int i=1,pre=-1,sum=0;i<=n;++i)

sort(p+1,p+n+1,cmp);

cdq(1,n);

printf("%lld\n",ans);

}

稻草人 貪心

稻草人 time limit 2000msmemory limit 32768kb64bit io format lld llu submit status practice lightoj 1389 description tom擁有乙個非常長的田地。他計畫在即將到來的生長季節種植不同型別的作物。...

稻草人筆記

看來婆婆一直是每乙個兒媳的假想敵,苦了echo。echo思家難耐,偷偷逃回家,可急壞荷西可,一封一封追妻信。我看到了他們的幸福,荷西深愛著三毛,字裡行間雖是家常事,越是平凡越是充滿愛。荷西也找到對付echo的方法了,成功騙妻回家。女人啊,越是愛乙個人,越容易吃醋。塑膠孩子,現在的孩子眼中 心中只有電...

BZOJ4237 稻草人 題解

我們考慮分治一下 按 x 座標排序 然後對於每一段的兩部分都按 y 排序 左右兩邊都維護乙個單調棧 然後考慮右邊對左邊的貢獻就行了 include define int long long using namespace std const int maxn 2e5 5 int n struct n...