随笔分类 -  cdq分治

摘要:树状数组打错调了一个小时。。。 对于点(x,y),其它点只会在他的左下、右下、左上、右上四个方向上。我们只需求在左下方向上就可以了,因为其他方向可以通过改变相对位置求得。 考虑cdq分治。先按x坐标排序,然后将区间[l,r]分为[l,mid],[mid+1,r],因为只求左下方向上的点,所以可以去掉 阅读全文
posted @ 2017-02-24 10:24 gjghfd 阅读(178) 评论(0) 推荐(0)
摘要:思路与1492相同。 注意点: 1、叉乘时用long long会爆,要用double 2、凸包中可能什么都没有,这时不能更新。 代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 阅读全文
posted @ 2017-02-16 10:06 gjghfd 阅读(252) 评论(0) 推荐(1)
摘要:显然在某一天要么花完所有钱,要么不花钱。 所以首先想到O(n^2)DP: f[i]=max{f[i-1],(f[j]*r[j]*a[i]+f[j]*b[i])/(a[j]*r[j]+b[j])},j<i 其中f[j]*r[j]/(a[j]*r[j]+b[j])是第j天最多能买多少A券,B类似。 假如 阅读全文
posted @ 2017-02-15 14:02 gjghfd 阅读(445) 评论(0) 推荐(2)