上一页 1 2 3 4 5 6 7 8 ··· 14 下一页
摘要: 猴猴吃香蕉 背包DP $D$次询问,第$i$次询问,每次有$n_i$个带权香蕉,问有多少方案使香蕉之积为$k_i$,对结果取模$1000000007$ $n\le 10^3,k\le 10^8,D\le 20$ 背包DP的变种。 设$f[i][j]$选完第$i$个物品时,乘积为$j$的方案数。 然后 阅读全文
posted @ 2019-11-01 16:42 Santiego 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 猴猴的比赛 dfs序 两颗$n$节点的树,不相同,问多少点对$(u,v)$在两棵树上均满足路径$v$在$u$子树中 $n\le 10^5$ 暴力: $n^2$暴力枚举点对用$dfs$序$O(1)$判断是非满足条件,~~或者用欧拉序$O(1)$求lca~~ 正解: 先跑第一棵树,求出其$dfs$序,记 阅读全文
posted @ 2019-11-01 15:49 Santiego 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 宝石专家 离线 $n$个宝石带权值$a_i$从$1$排到$n$,$m$次询问,问区间$[l,r]$中权值相同的宝石的最近距离 离线做法的好题。 我们将所有询问按$r$排序,预处理出 ,`lp[i]`表示与位置$i$上的宝石有相同权值的上一个宝石位置为$lp[i]$,然后每次在区间$[l,r]$($l 阅读全文
posted @ 2019-10-31 19:52 Santiego 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 使用线段树合并,每个节点维护一棵权值线段树,下标为救济粮种类,区间维护数量最多的救济粮编号(下标)。所以每个节点答案即为$tre[rot[x]]$。 然后运用树上点的差分思想,对于分发路径$u,v$,我们在$u$上+1,在$v$+1,在$lca(u,v)$处 1,在$fa(lca)$处 1,最后统计 阅读全文
posted @ 2019-10-31 14:50 Santiego 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 天天爱跑步 线段树合并 使用线段树合并做法 有路径$u_i lca(u_i,v_i) v_i$,将路径分为两半分开讨论。 先考虑$u_i lca(u_i,v_i)$前一半路径: 对节点$x$有贡献,当且仅当$dep[u_i] dep[x]=w[x]$,移项使含$x$的在一边使统计更方便$dep[u_ 阅读全文
posted @ 2019-10-31 11:45 Santiego 阅读(328) 评论(1) 推荐(1) 编辑
摘要: 运输计划 二分答案 树上差分 "P2680 运输计划" 附赠样例图: 首先容易想到二分答案,将求解问题转换为判定,并且注意到答案显然具有单调性。 然后我们考虑如何快速判定。先预处理出所有计划路径长($dis[i]$表示根节点到节点$i$的距离,$dis[u]+dis[v] 2\times dis[l 阅读全文
posted @ 2019-10-28 17:58 Santiego 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 树上差分备忘 点差分 树上主席树就是这个原理来的 边差分 先把边塞给较深的那个点上 统计 一遍$dfs$,在回溯时加起来即可 板子 "[JLOI2014]松鼠的新家" cpp include include define MAXN 300003 using namespace std; int n, 阅读全文
posted @ 2019-10-28 15:40 Santiego 阅读(130) 评论(0) 推荐(1) 编辑
摘要: Peaks 线段树合并 $n$个带权值$h_i$山峰,有$m$条山峰间双向道路,$q$组询问,问从$v_i$开始只经过$h_i\le x$的路径所能到达的山峰中第$k$高的山峰,如果无解输出$ 1$ 线段树合并好题。~~吊打主席树、Kruskal重构树的典范~~ 首先发现可以离线,我们将所有询问按$ 阅读全文
posted @ 2019-10-28 14:59 Santiego 阅读(163) 评论(0) 推荐(0) 编辑
摘要: [HNOI2012]永无乡 线段树合并 ~~啥?平衡树?看我用权值线段树切了它~~ 首先并查集维护联通块,然后合并联通块时即合并两个father的线段树,查询$k$大时直接上权值线段树。 注意动态开点。 cpp include define MAXN 100010 define MAXM MAXN 阅读全文
posted @ 2019-10-27 21:43 Santiego 阅读(167) 评论(0) 推荐(0) 编辑
摘要: [USACO08FEB]酒店Hotel 线段树 "题面" 其实就是区间多维护一个 (表示从左开始有连续 个空房,一直有连续 个空房到最右边),合并时讨论一下即可。 另外,查询时 按顺序 判断左节点、跨左右节点、右节点是否存在空房大于$x$的情况,有则递归下去,这样保证找到最左区间。 阅读全文
posted @ 2019-10-27 21:02 Santiego 阅读(200) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 14 下一页