可并堆
文章平均质量分 65
WerKeyTom_FTD
我是一只来自中山纪念中学高三的oier,请多多指教
展开
-
[bzoj4524][CQOI2016]伪光滑数
题目描述做法先把质数都筛进数组p。 我们设f[i,j]表示分解后最大质数为p[i],分解的结果是j项的数的集合。 为了顺利的推出f[i,j]我们还要设g[i,j]表示f的前缀和。 先让我们重定义一些符号: 1、a+b返回集合a与集合b的并(a与b均为集合) 2、a*b表示集合a内所有数乘上b(a为集合,b为一个数) 那么转移是这样的: f[i,j]=∑jk=1g[i−1,j−k]∗p[原创 2016-04-20 19:15:44 · 1153 阅读 · 0 评论 -
[bzoj1455]罗马游戏
题目大意需要兹瓷集合合并与删去集合内最小值。可并堆还能说什么呢,裸的……#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;const int maxn=1000000+10;int fa[maxn],dis[maxn],left[maxn],right[maxn原创 2016-06-01 20:24:46 · 756 阅读 · 0 评论 -
Fiend
题目大意满足li<=pi<=ri的排列p,问逆序对是奇数的多还是逆序对是偶数的多或者是否一样多?解法可以构造一个矩阵,ai,li~ri是1,然后就是问它行列式的符号或判断行列式是否为0。 模拟高斯消元,每次消到第i行时,让第i行变成第i列上有1且r最小的,这样可以保证任意时刻1都是一段区间。 可以用可并堆、平衡树或线段树来快速支持合并。#include<cstdio>#include<algo原创 2017-07-07 16:43:43 · 564 阅读 · 0 评论