ICode9

精准搜索请尝试: 精确搜索
  • 省选测试82021-03-09 07:32:44

    省选测试8 T1 P4096 [HEOI2013]Eden 的博弈树 ​ 树形DP. ​ 对于黑方胜的情况, 如果说当前点为黑方决策, 那么它的所有儿子只需要有一个点是黑方胜的. 那我们需要取答案最小的那一个儿子, 有多个最小的则都取. 如果说当前点是白方决策, 那么它的所有儿子都应该是黑方胜, 所有要取

  • [TJOI2018]碱基序列2021-03-03 10:35:57

    [TJOI2018 碱基序列](https://www.luogu.com.cn/problem/P4591) 偷懒直接 SAM 上 DP。 设 dp(i,j) 表示用前 i 行氨基酸匹配到状态 j 的方案数。 由于这个题面比较玄学, 复杂度就挺玄学, 随手加点剪枝就可以很快。 ```cpp #include <bits/stdc++.h> typedef long long LL; using

  • 树上DP52021-02-28 13:29:53

    题目 题解   这道题就是看每一个点到其他点的距离和是多少。数据范围告诉我们 绝 对 不 能 用暴力求解(TLE自动机.jpg)。因为本题满足树的性质且很明显答案之间有某种联系(真实原因:看题目)所以考虑DP求解。   分析题目可知,所求的值就是以第

  • P3181 [HAOI2016]找相同字符(SAM的应用)2021-02-18 21:02:39

    传送门 ps:实际上用后缀数组会比较简单… 对串 A A A建立 S A M SAM

  • 轻重链剖分 学习笔记2021-02-15 22:01:57

    目录板子题算法解析定义实现预处理修改复杂度代码 板子题 题目传送门 这道题目要求在树上修改和查询点一条链上或者是一棵子树的点的权值。 算法解析 考虑使用LCA,但是不能使用倍增的解法(倍增只能查询不能修改),所以我们要使用一种新的算法——轻重链剖分。 建议先学完LCA在来看这篇

  • AT3611-Tree MST【点分治,最小生成树】2021-02-14 20:01:34

    正题 题目链接:https://www.luogu.com.cn/problem/AT3611 题目大意 给出 n n n个点的一棵树。 现在有一张完全图,两个点之间的边权为 w

  • 【数据结构】Venice技巧2021-02-14 14:04:27

    原文链接:https://codeforces.com/blog/entry/58316 更多数据结构技巧:https://codeforces.com/search?query=%23data+structure 维护一个类似mutiset的数据结构,支持以下操作: 1、向数据结构中添加c个元素x。 2、从数据结构中删除至多c个元素x。 3、查询数据结构中的元素数量 4、查询

  • CF982D 鲨鱼2021-02-13 12:36:34

    1 CF982D 鲨鱼 题目链接:https://codeforces.com/problemset/problem/982/d 2 题目描述 时间限制 \(1s\) | 空间限制 \(256M\) 长期以来,科学家一直在研究鲨鱼的行为。鲨鱼和其他许多物种一样,有两种行为模式,要么在特定地点附近活动,要么在不同的地点之间做长距离活动。 \(Max\)

  • [CF1401D] Maximum Distributed Tree - 贪心2021-02-12 18:32:16

    [CF1401D] Maximum Distributed Tree Description 给定一棵树,构造正整数边权,使得所有边权的乘积为 k,且边权为 1 的边数量最小,在此基础上,使得所有简单路径权值总和最大。 Solution 说白了就是分配一堆质因子,但是如果质因子个数比边数多,那么我们就把若干个最大的乘在一起 容易证明

  • 「刷题笔记」点分治2021-02-06 08:33:53

    点分治,用于快速统计一些树上路径问题的答案 对于点 \(u\) 将所有路径分为经过 \(u\) 的和 \(u\) 子树内的,每次在 \(u\) 的儿子中扫,合并得到 \(u\) 的子树中经过 \(u\) 的路径的答案,(计数类问题有时容斥),那么只要对所有点进行一遍这个过程就行了 考虑怎么选取 \(u\),每次操作后需要对

  • P3302 [SDOI2013]森林2021-02-06 07:32:34

    题意描述: 洛谷 给你一个 \(n\) 个点 \(m\) 条边的森林,有 \(T\) 次操作,每次操作分为两种类型: 操作1:询问 \(x-y\) 路径上节点权值第 \(k\) 小的是多少。 操作2:连接 \(x-y\) 这一条边,保证连完之后还是森林。 数据范围:强制在线, \(n,m,T\leq 8e4\) solution 先不考虑操作二,只看操作一

  • [Kattis]redblacktree(树形依赖背包,DP优化)2021-02-06 02:32:24

    Source : NAIPC 2018 题意 有棵树,树上有红点和黑点,要选出一系列没有祖孙关系的节点,满足红点恰好有m个,求方案数。 \(n\le2*10^5\) \(m\le 1000\) 题解 可以用树形背包解决。 \(f[x][j]\)表示以x为根的树里,恰好选了j个红点的方案数。 转移就大力分配红点个数就行。 时间复杂度为\(O(

  • 题解P3165 [CQOI2014]排序机械臂2021-02-02 12:05:20

    P3165 [CQOI2014]排序机械臂 一道Splay模板题,只不过需要注意一些细节 直接上代码 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> using namespace std; const int N = 1e5 + 5, INF = 0x3f3f3f3f; typedef pair<int, int> PII; struct tree

  • 题解P2596 [ZJOI2006]书架2021-02-02 08:32:18

    P2596 [ZJOI2006]书架 一道简单的数据结构题 对于每一个操作 Top:将s转到根节点,并将s的左子树移给s的后继 Bottom:将s转到根节点,并将s的右子树移给s的前驱 Insert:与前驱/后继交换信息 Ask:询问s的前驱的排名 Query:询问排名为s的编号 用Splay实现 代码 #include<iostream> #inclu

  • P4178 Tree(点分治+容斥)2021-01-27 23:05:28

    传送门 先点分值,求重心分治下去 然后考虑如何计算点 u u u的贡献 首先我们暴力计算出 u u u子树中到

  • [APIO2019]桥梁2021-01-26 23:35:41

    给定边带权的无向图 \((V,E)\)。\(q\) 次操作,改变一条边的权值或者询问从 \(s_i\) 出发只走权值大于等于 \(w_i\) 的边能够到达的点数。 \(|V| \leq 5 \times 10^4, |E|, q \leq 10^5\) 。 分别考虑涉及修改和不涉及修改的边: 对于不涉及修改的边,将询问从大到小排序,然后从大到

  • [湖南集训]谈笑风生2021-01-26 09:34:53

    题解 套路套路地用线段树合并 注意:可能爆栈,所以 \(\text bfs\) 处理 合并要新开节点,不然后修改子树信息 \(Code\) #include<cstdio> #include<iostream> #define LL long long using namespace std; const int N = 3e5 + 5; int n, q, h[N], tot; struct edge{int to, nxt;}e[N

  • [CF519E] A and B and Lecture Rooms - LCA2021-01-26 08:32:19

    [CF519E] A and B and Lecture Rooms - LCA Description 给定一棵树,有 \(m\) 组询问,每次给定两个点 \(u,v\),问到 \(u,v\) 距离相等的点有多少个。 Solution 一定是连接 \(u,v\) 的路径的中点以及它所发出的其它子树。 以下设 \(LCA(u,v)=l, MID(u,v)=c\)。 如果 \(l=c\),那么砍掉与

  • [CF321C] Ciel the Commander - 点分治2021-01-25 17:02:08

    [CF321C] Ciel the Commander - 点分治 Description 给定一棵树,给每个点分配一个等级用英文字母表示,满足任意两个等级相同的点 x,y 的路径上必然有一个等级更高的点 z。 Solution 考虑选择点 p 并分配给它最大的权重,此时若删除点 p,留下的若干棵子树 t1,t2,...,tm 他们之间的问题已

  • 动态逆序对2021-01-22 19:02:58

    带修改, 维护全局逆序对数。 翻译成另一种风格: 有 n 个点, 每个点两个属性 ai,bi, 每次修改一个点的 bi, 维护全局有多少个点对满足 ai<aj && bi>bj。 将修改换成先删除后插入, 逆序对的变动就看得很清楚了, 总体上还是要二维数点。 树套树轻松搞。 写两道例题。 TJOI2017 不勤劳的图书

  • 可撤销并查集2021-01-20 23:01:33

    可撤销并查集是支持后悔操作的并查集,注意这时写并查集一定要按秩合并,路径压缩会改变节点与节点之间的关系,改了这个关系那就没法回退了。 思路:用一个栈维护每次操作更新的节点,回退时找到那两个回退即可。 注意一定是后操作的先反悔。 int parent[maxn],siz[maxn]; //按秩合

  • P6329-[模板]点分树 | 震波2021-01-20 11:02:43

    正题 题目链接:https://www.luogu.com.cn/problem/P6329 解题思路 给出\(n\)个点的一棵树,每个点有权值,有\(m\)次操作 修改一个点\(x\)的权值为\(y\) 询问距离点\(x\)不超过\(k\)的所有点点权和 解题思路 点分树的模板题,先点分治构造出点分树,然后在上面维护信息。 对于每个点维

  • BJOI2014 大融合2021-01-19 15:02:18

    保证初始所有点都孤立 保证连的边的端点在连这条边前不联通 即整个图一直都是森林。 先连好所有的边,定好每棵树的根。 这样,每次询问就是在树上的一条边 (fa[x], x), 答案是边两边连通块 size 的乘积。 fa[x] 那边的大小不好办, x 这边的正好是一个子树型的询问, 连通块总的 size 可

  • 【CF629E】Famil Door and Roads2021-01-15 09:36:02

    题目 题目链接: 给出一棵 \(n\) 个节点的树。有 \(m\) 个询问,每一个询问包含两个数 \(a,b\)。我们可以对任意两个点连一条无向边,并且使得加上这条边后 \(a,b\) 处在一个环内。对于每一个询问,求这样的环的期望长度。 \(2\leq n,m\leq 10^5\)。 思路 如果这两个点不互为祖孙关系,答案

  • 洛谷P5592 美德的讲坛2021-01-06 10:04:20

    对于 \(x\),存在 \(p\),满足 \(2^p \leqslant x < 2^{p+1}\),对于所有 \(a_i\) 按 \(\left\lfloor \frac{a_i}{2^p} \right\rfloor\) 的值分组,得每组内的两两异或值都 \(<x\)。 然后就只需考虑组与组之间的情况了,将其转化为最小割,源点向第一个组的每个点连容量为 \(1\) 的边,第二组的

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有