----分治
扩展的灰
扩展的灰(Extended Ash)
展开
-
Jzoj4747 被粉碎的线段树
额这个题么 有一个很关键的点:结点个数依然为2N-1(证明可以看sam的讲稿) 不难发现以下性质:区间定位个数+区间所覆盖的节点个数=2*区间长度 所以问题变为,一个区间覆盖了多少个节点? 我们可以求出所有的节点,然后这个问题就是一个二维偏序计数问题了 具体用离线+按照r排序套上树状数组即可 #include #include using namespace std; inline原创 2017-10-23 19:48:31 · 398 阅读 · 0 评论 -
斜率DP十连测
最近学校里很多题目都没时间做,顺便来写一下博客 斜率DP十连: A[征途] 注意到,原题的式子,等价于m∑a2i−(∑ai)2m∑ai2−(∑ai)2m\sum a_i^2-(\sum a_i)^2后面部分是常数 那么我们就可以写出dp方程f[i,j]=min{f[i−1,k]+(sj−sk)2},k<jf[i,j]=min{f[i−1,k]+(sj−sk)2},k<...原创 2018-08-12 23:59:34 · 296 阅读 · 0 评论 -
51Nod1472 取余最大值
题目看这里 又是一个七级题目 妥妥的分治啊,枚举右端点,左边分两段计数就好啦~ 关于标解: 网上好像很多都是前缀和+二分之类的,反正应该差不多快吧 #include<stdio.h> #include<string.h> #include<algorithm> #define N 300010 #define LL long long us...原创 2018-08-01 14:15:56 · 314 阅读 · 0 评论 -
Jzoj5608 Subset
这道题非常有意思 首先我们可以发现,对于一个合法的三元组我们可以找到一个大小小于3的下标集合S与之对应 那么我们就来考虑找到所有合法的这样的S 当|S|=1时,显然都是成立的 当|S|=2时,我们只需要保证s中两个元素i,j不满足a[i] 考虑计算不满足的方案,可以用cdq分治+fenwick完成 当|S|=3时,我们直接计算比较困难,我们考虑两种不合法的情况 1.存在一个元素x满足原创 2018-04-20 20:16:45 · 244 阅读 · 0 评论 -
51Nod1601 完全图的最小生成树计数
题目看这里 这个题好像在哪里做过。。。但是翻不到 基本思想:在最高位不同的两个集合里只能有一条边相连 我们可以用trie来做,每次到一个节点,就在他的两个儿子里找xor值最小的加到答案里 若有超过2个权值相同的点时,计算方案的方法为x^(x-2),这个是完全图的生成树个数公式 无压力·真rank1 #include #include #include #define N 10001原创 2018-02-22 22:29:28 · 494 阅读 · 0 评论 -
Jzoj3303 城市规划
刚刚解决完电力网络的问题, 阿狸又被领导的任务给难住了. 刚才说过, 阿狸的国家有n 个城市, 现在国家需要在某些城市对之间建立一些贸易路线, 使得整个国家的任意两个城市都直接或间接的连通. 为了省钱, 每两个城市之间最多只能有一条直接的贸易路径. 对于两个建立路线的方案, 如果存在一个城市对, 在两个方案中是否建立路线不一样, 那么这两个方案就是不同的, 否则就是相同的. 现在你需要求出一共原创 2018-01-25 08:04:43 · 283 阅读 · 0 评论 -
Jzoj1967 聪聪可可
聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏: 由爸爸在纸上画n个“点”,并用n-1条“边”把这n个“点”恰好连通(其实这就是一棵树)。并且每条“边原创 2018-01-30 19:54:04 · 281 阅读 · 0 评论 -
Jzoj3591 数据
现在,二维平面上有N个点。Alex 需要实现以下三种操作: 1. 在点集里添加一个点; 2. 给出一个点,查询它到点集里所有点的曼哈顿距离的最小值; 3. 给出一个点,查询它到点集里所有点的曼哈顿距离的最大值。 两个点的曼哈顿距离定义为它们的横坐标差的绝对值与纵坐标差的绝对值的和。这么困难的问题,Alex当然不会做,只好再次请你帮忙了。 树套树裸题 cdq分治第二题诶,突原创 2018-01-22 19:02:15 · 250 阅读 · 0 评论 -
Jzoj3170 挑选玩具
ABC找到N个箱子,箱子里装着一些玩具,一共有M种玩具,编号从1到M,同一种玩具可能出现在多个箱子里。 ABC决定从中选择一些箱子,把这些箱子中的玩具聚集到一起,必须保证每种玩具至少出现一次。 问ABC一共有多少种选择方案 (1 第三次看到这个题了,前两次都忘了怎么做了。。。 好的第一眼看上去可以dp做,结果发现只能过50%数据 矩阵明显不可做,让后开始考虑数学方法 考虑容斥原理,原创 2018-01-03 19:32:05 · 595 阅读 · 0 评论 -
Jzoj4770 闭门造车
自从htn体验了一把飙车的快感,他就下定决心要闭门造车!但是他两手空空怎么造得出车来呢?无奈的他只好来到了汽车零部件商店。 一走进商店,玲琅满目的各式零件看得htn眼花缭乱。但是他很快便反应过来:我只要买一套好的零件就行。首先它们的性能差不能太大,否则汽车的兼容性不好,开着开着就损坏了;其次,当然是越便宜越好了!为了打造一辆顶级跑车,htn陷入了沉思…… 现在商店中有 N 件零件,给出这 N原创 2017-11-24 18:21:16 · 251 阅读 · 0 评论 -
Jzoj1020 逆序对统计 ≈ Bzoj3295 动态逆序对
Jzoj1020: Dramatic是在太菜了。最近,他学习了有关逆序对的知识,并且掌握了计算一个序列逆序对个数的高效算法,因此,他兴冲冲的跑去向YY牛炫耀。YY牛对此不屑一顾,并打击Dramatic说:“这是在太小儿科了!”Dramatic很不甘心,于是在他的强烈要求下,YY牛给他出了一道跟逆序对有关的“难题”(显然,对于YY牛来说是简单题)。题目是这样的:YY牛首先给Dramatic一个长原创 2017-12-11 21:08:08 · 612 阅读 · 0 评论 -
Jzoj5231 序列问题
给你序列A,定义f(l,r)=max{al,al+1,....,ar} , g(l,r)=min{al,al+1,....,ar} 求ΣΣf(i,j)*g(i,j) { i∈[1,n],j∈[i,n] } 哇第一道cdq分治的题诶,当时好像还不会这个玩意2333 我们cdq分治一下,先求出[1,mid]和[mid+1,r]的答案 让后我们考虑枚举j∈[mid+1,r] 对于每一个j,我们原创 2017-11-15 21:39:56 · 448 阅读 · 0 评论 -
Jzoj4715 树上路径
给出一棵树,求出最小的k,使得,且在树中存在路径p,使得k>=S且k 这是一道点分治的题目,不过做法多样,也可以用启发式合并水过去,好像还有一种方法是什么二分 如果直接点分治的话,我们将子树内所有的点排序,求出其所处的子树编号belong,再求出next数组,next[i]=j表示belong[i]!=belong[j]的最小的j(i=S的j,若belong[i]=belong[j]则令j=n原创 2017-10-15 11:32:03 · 548 阅读 · 0 评论 -
CDQ分治&整体二分九连测
整体二分好难a CDQ分治&amp;amp;amp;整体二分九连: A[适者] 先来一个不是cdq分治的题(虽然也可以用分治做) 首先先来考虑按照什么顺序来搞掉这些机甲 对于两个相邻的机甲i,j,先i后j的代价是Ai∗Di+(Di+Dj)∗AjAi∗Di+(Di+Dj)∗AjA_i*D_i+(D_i+D_j)*A_j 那么如果i应该比j先消灭就有 Ai∗Di+(Di+Dj)∗Aj&amp;amp;lt;A...原创 2018-08-19 21:32:06 · 550 阅读 · 0 评论