[决策单调性 分治||单调栈 DP] BZOJ 2739 最远点
来源:互联网 发布:linux下装oracle 11g 编辑:程序博客网 时间:2024/05/18 16:39
决策单调性 用分治或者单调栈
单调栈没打过 尴尬
#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;typedef long long ll;inline char nc(){static char buf[100000],*p1=buf,*p2=buf;if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) return EOF; }return *p1++;}inline void read(int &x){char c=nc(),b=1;for (;!(c>='0' && c<='9');c=nc()) if (c=='-') b=-1;for (x=0;c>='0' && c<='9';x=x*10+c-'0',c=nc()); x*=b;} const int N=1000005;inline ll sqr(ll x){ return x*x; }struct Point{int x,y,idx;void read(int i){::read(x); ::read(y); idx=i;}friend ll dist(Point& A,Point &B){return sqr(A.x-B.x)+sqr(A.y-B.y);}}P[N];int n;int ans[N];bool cmp(int i,int j,int k){ ll x=dist(P[i],P[j]); ll y=dist(P[i],P[k]); if(j<i || j>i+n) x=-1LL<<60; if(k<i || k>i+n) y=-1LL<<60; return x==y?P[j].idx>P[k].idx:x<y;}inline void Solve(int l,int r,int a,int b){if (l>r) return;int mid=(l+r)>>1,dm=a;for (int i=a+1;i<=b;i++) if(cmp(mid,dm,i)) dm=i;ans[mid]=P[dm].idx;Solve(l,mid-1,a,dm);Solve(mid+1,r,dm,b);} int main(){int Q;freopen("t.in","r",stdin);freopen("t.out","w",stdout);read(Q);while (Q--){read(n); for (int i=1;i<=n;i++) P[i].read(i),P[n+i]=P[i];Solve(1,n,1,n<<1);for (int i=1;i<=n;i++)printf("%d\n",ans[i]);}return 0;}
0 0
- [决策单调性 分治||单调栈 DP] BZOJ 2739 最远点
- BZOJ 4709: [Jsoi2011]柠檬 决策单调性 单调栈
- [BZOJ]4709 柠檬 DP单调性优化 + 单调栈
- bzoj 2216: [Poi2011]Lightning Conductor 决策单调性+cdq分治
- bzoj 2369&2687: 区间 cdq分治+决策单调性
- Bzoj:[Poi2011]Lightning Conductor:决策单调性优化DP详解
- [BZOJ 2216][Poi2011]Lightning Conductor:DP决策单调性
- BZOJ 1563: [NOI2009]诗人小G 决策单调性DP
- BZOJ 2216: [Poi2011]Lightning Conductor 决策单调性DP
- bzoj 2216: [Poi2011]Lightning Conductor(DP决策单调性)
- bzoj 4709: [Jsoi2011]柠檬(分段DP+决策单调性)
- [决策单调性 分治 主席树] BZOJ 4367 [IOI2014]holiday假期
- 【NOI2017模拟.4.1】Shoes【DP决策单调性,主席树,分治】
- [DP决策单调性][分治] CF 868F. Yet Another Minimization Problem
- [BZOJ1010]玩具装箱:DP决策单调性
- bzoj4709 -- 决策单调性优化DP
- bzoj2369 && 2687 -- 决策单调性优化DP
- 【单调性dp】bzoj 1499
- lightij-1294 - Positive Negative Sign【思维】
- qt5.5 webview无法显示网页问题
- 佳神程序配置
- iOS 导出 ipa 包时 四个选项的意义
- 一次阿里巴巴电话面试新更新
- [决策单调性 分治||单调栈 DP] BZOJ 2739 最远点
- mock片断2 使用powermock针对private或static写单元测试
- Linux下Redis开机自启(Centos)
- Android消息处理流程(handler)
- CSDN-markdown编辑器使用方式介绍
- Jan's LightOJ :: Problem 1045 - Digits of Factorial
- android AndroidManifenst.xml中supportsRtl的用法
- CentOS下面定时删除N天前的文件
- 生于忧患而死于安乐:程序员如何走出自己的安逸环境