網上**各種各樣的都可以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...