CDQ分治
文章平均质量分 80
nlj1999
这个作者很懒,什么都没留下…
展开
-
3295: [Cqoi2011]动态逆序对
白书有言:事实上,借助于分治法和Fenwick树,本题可以用更短的代码在更短的运行时间内解决。 当时一直不明白啊,于是就放弃了,反正树套树我也不会(摊手)。 今天突然想到,啊这不就是CDQ分治吗。 整体二分是二分答案,CDQ分治是二分操作。 于是就乱搞一下。 先算出初始序列的逆序对数,顺便算一下每个点的数所成的逆序对数,然后在操作的时候删除。 由于删除的时候会把同一个逆序对删两次,所以原创 2015-12-16 09:39:43 · 342 阅读 · 0 评论 -
BZOJ 2001: [Hnoi2010]City 城市建设
太神辣完全不会%%%%%%%%%%%%%%%% 听说可以CDQ分治+LCT做,不过好像会被卡常数 于是找到了网上的鬼畜题解,非常玄学的做法 #include #include #include #include using namespace std; const int N=20000+5; const int M=50000+5; const int inf=1e9; typedef l原创 2016-04-01 16:07:38 · 1397 阅读 · 0 评论 -
BZOJ 1492: [NOI2007]货币兑换Cash
突然发现竟然还没做过这题,可能是不太会治分QDC吧 首先考虑n^2的dp 方程随便推一推就出来了 f[i]=max(f[i-1],f[j]*(r[j]*a[i]+b[i])/(r[j]*a[j]+b[j])) 60分到手 然后令y[i]=f[i]/(r[i]*a[i]+b[i]),x[i]=y[i]*r[i]。 然后会得到f[i]=max(x[j]*a[i]+y[j]*b[i]) 这原创 2016-04-03 19:22:14 · 305 阅读 · 0 评论 -
BZOJ 3672: [Noi2014]购票
近年来的趋势都是把动态规划出成计算几何吗? 这题首先我们有个n^2的动规 设v为u的祖先f[u]=min{f[v]+(d[u]-d[v])*p[u]+q[u]}且d[u]-d[v] ~~~~~我要变形了~~~~~~ f[u]=min{-d[v]*p[u]+f[v]}+d[u]*p[u]+q[u] 哎,前面这个好像什么东西啊 y=kx+b 于是我们发现u的祖先是好多线 假设p[u]为原创 2016-04-04 20:28:25 · 693 阅读 · 0 评论 -
BZOJ 2961: 共点圆
突然想起来论文还没刷完QAQ简直智障 2013年xhr论文 卡斜率的时候用点积 #include #include #include #include #include using namespace std; #define rep(i,l,r) for(int i=l;i<=r;i++) #define per(i,r,l) for(int i=r;i>=l;i--) #define m原创 2016-05-11 13:22:13 · 622 阅读 · 0 评论 -
BZOJ 4553: [Tjoi2016&Heoi2016]序列
我就不懂了怎么又是线段树啊(好吧其实可以写平衡树) f[i]可以从f[j](a[j] 观察条件发现就是某个矩阵里的权最大的点 权值线段树套权值线段树就可以n(logn)^2了,但是空间也是这么多,会MLE 所以三维偏序什么的还是cdq分治吧 然后就轻易地过掉了 #include #include #include #include #include #include #include原创 2016-05-20 19:58:01 · 649 阅读 · 0 评论