ICode9

精准搜索请尝试: 精确搜索
  • 321 树的重心2022-05-28 13:33:09

    视频链接: #include <iostream> #include <cstring> #include <algorithm> #include <vector> using namespace std; const int N=100010; int n, a, b; vector<int> e[N]; int siz[N], pos, ans=1e9; void dfs(int x, int fa){ siz[x]=1; i

  • 最近一些题的题解2022-05-26 14:35:14

    1. 摩尔庄园 用树形 dp 模拟网络流。 记 \(a\) 为 \(x\) 走向 \(fa(x)\) 的次数,\(b\) 为 \(fa(x)\) 走向 \(x\) 的次数,\(flw(x) = a - b\)。 这样在从 \(x\) 走向 \(fa\) 时: 如果 \(flw(x) < 0\),表示有更多次从 \(fa\) 走向 \(x\),那么这一次费用为 \(-1\),表示和之前一次从 \(fa\)

  • 近年 APIO 选做2022-05-20 14:01:09

    带有极强目的性的做题( 「APIO2019」 数据结构年,但阻碍不了我降智的脚步( 「APIO2019」奇怪装置 给定一些区间,对于数 \(t\) 有 \(x=((t+\lfloor\dfrac{t}{B}\rfloor)\bmod A), y=(t\bmod B)\),求本质不同二元组 \((x,y)\) 个数。 \(\texttt{Difficulty 4}\)。 这种近乎数学方面的小

  • P6684 [BalticOI 2020 Day1] 小丑 题解2022-05-19 09:00:38

    不难发现对于一个特定的 \(\text{l}\) 而言,\(\text{r}\) 的答案具有单调性。 所以就可以很自然的想到二分。 由于需要对所有的 \(\text{l}\) 都进行统计答案。 只用普通的二分复杂度会炸掉,所以就可以想到使用整体二分。 思路 首先考虑如何判断奇环。 对于这部分内容,可以考虑一边加

  • CF1423C Dušan's Railway2022-05-14 01:02:07

    反正可以直接当 \(k=3\) 去做,然后考虑直接去构造。 首先任意给树找一个根,然后将整棵树拆成几个大小为 \(\sqrt n\) 的子树,将所有这些子树的根 \(u\) 塞到一个点集 \(a\) ,然后将 \(a\) 中的点相互连接,边的数量为 \(\mathcal O(n)\)。 接着,对于点集 \(a\) 中的每个点 \(u\),将 \(u\)

  • APIO20202022-05-10 16:35:35

    做贺了一下,作文以记之。 [APIO2020]粉刷墙壁 题意: 直观描述一下:就是 \(M\) 个人,可以涂一些特定颜色的墙,看成一个环,可以从任意处断开成 \(M\) 个数的数列。 有 \(N\) 个面的墙,对于一连续段长度为 \(M\) 的面,如果 \(M\) 个人可以依次涂这些墙,就代表这一次刷墙是合法的。求最小

  • AT3537 [ARC083D]Collecting Balls 题解2022-04-21 22:32:49

    Post time: 2021-09-22 21:55:13 题面 一道图论(树论)综合好题,被亓神扒出来放到了 vc 胡策上。 首先发现球的数量等于机器人的数量,也就是说,每一个机器人都必须要吃掉一个球。感觉上直接做不好做,考虑转化,把每个球当做边,将横纵坐标上的机器人连起来。 连完之后,发现形成了一个边数等于

  • 树的重心2022-04-16 10:31:06

    重心 树的重心也叫树的质心。对于一棵树n个节点的无根树,找到一个点,使得把树变成以该点为根的有根树时,最大子树的结点数最小。 树的重心定义为树的某个节点,当去掉该节点后,树的各个连通分量中,节点数最多的连通分量其节点数达到最小值。树可能存在多个重心。如下图,当去掉点1后,树将分

  • SP10707 COT2 - Count on a tree II2022-04-07 22:35:14

    \(\text{Solution}\) 统计树上 \(x\) 到 \(y\) 路径不同数的种类数 可以树上莫队 离线的树上莫队就是把树用欧拉序拍下来,然后和序列上的莫队一样即可 \(\text{Code}\) #include <cstdio> #include <algorithm> #include <cmath> #define RE register #define IN inline using name

  • CF1187E Tree Painting2022-03-26 10:33:52

    前言 您完全可以略过这段。 校内模拟赛的时候一位大奆佬搬了这题。 然后我切了。 个人认为这题是一道不错的换根dp,虽然略显套路。 题意简述 给定一棵有 \(n\) 个结点的无根树,所有结点都是白色的。 第一次操作可以随意使一个结点染成黑色,之后每次操作可以使一个与黑色结点相邻的白

  • #树形依赖背包,点分治#BZOJ 4182 Shopping2022-03-20 20:02:40

    题目 给定一棵大小为 \(n\) 的树,每个点代表一种物品,其具有体积、价值和数量的属性, 现在选择一个连通块,使得里面所有点都被选中且体积不超过 \(m\),问最大价值。 \(n\leq 500,m\leq 4000\) 分析 树形背包比较难维护,考虑用dfs序拍平到序列上,并且多重背包直接二进制拆分。 设 \(dp[i]

  • P3369 【模板】普通平衡树 替罪羊树解法2022-03-20 08:03:09

    P3369 【模板】普通平衡树 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #define lc ch[p][0] #define rc ch[p][1] using namespace std; const int N=100010; const int inf=0x3f3f3f3f; const double alpha=0.75; int n,m;

  • cf1416 C. XOR Inverse(字典树、逆序对、贪心)2022-03-08 22:02:33

    题意: 给定数组 \(a[]\),找一个整数 \(x\),构造数组 \(b[]\) ,$b_i=a_i \oplus x $使得 \(b[]\) 中的逆序对数最少,其次使得 \(x\) 尽量小。输出最少逆序对数与 \(x\) \(n\le 3e5, 0\le a_i\le 1e9\) 思路: 看到异或就要考虑一下xor字典树! 贪心从高到低考虑每一位。根据异或的性质,若x的

  • 【考试总结】2022-03-052022-03-05 20:00:35

    小 G 的约数 \(\rm LCM(i,j)|n\) 等价于 \(i,j\) 是 \(n\) 的约数,而第三个条件可以导出我们所求就是约数偏序集合中最长反链长度 直接使用 \(\rm Dilworth\) 定理转化成最小链划分,可以直接使用贪心求解,也就是找到最小元之后扫描没有被覆盖的所有元素,如果是当前链尾的倍数就添加到

  • 【模拟赛】乌拉~~(重链剖分)2022-02-25 23:05:36

    背景 大家好,我是一名勇敢的俄罗斯士兵,我昨天正在打 C o d e F o

  • 题解——P4556 [Vani有约会]雨天的尾巴2022-02-21 13:34:23

    传送门 题意 一棵 \(n\) 个节点的树,\(m\) 次修改,给 \(u\) 到 \(v\) 路径上每一个点一件种类为 \(z\) 的物品,求最后每个节点个数最多的物品种类。 思路 将题意再精简一下就是维护树上单点染色众数,修改是一条链。 (1)树上差分 想到修改一条路径其实可以用树上差分的思想,将路径划分为两

  • No Luck -- 主席树2022-02-16 12:03:15

    https://codeforces.com/gym/103388/problem/N 题目理解: 就是给了一个 \(3 \cdot 10^5\)的数组,大概 $ 3 \cdot 10^5$ 个查询,每次询问某个区间内数组中大于等于某个数的数有几个。 AC代码 #include<bits/stdc++.h> using namespace std; #define ll long long const int maxn = 30

  • NOI2014购票2022-02-15 20:32:42

    题意: 给出根节点为 \(1\) 的一颗树,\(d_i\) 表示 \(1\) 到 \(i\) 的距离, 每个点 \(i\) 可以跳到距离 \(\leq l_i\) 的点 \(j\) 上,花费是 \((d_i - d_j) \times p_i + q_i\),求每个点到根节点的最小花费。 dp 方程转移: \[f_i = \min \{f_j + (d_i - d_j) \times p_i + q_i\} \]斜率

  • 题解 P7595 【猜树】&& P7597 【「EZEC-8」猜树 加强版】(交互,构造,dsu on tree)2022-02-09 16:36:59

    原题 交互题?可以乱搞,有意思 首先分别考虑只用一种询问的做法。 subtask1+2+3(?)+5 考虑询问 \(2\),把每个节点的子树都搞下来,开这样几个东西: \(siz_i\) 表示当前节点 \(i\) 子树的大小。 \(f_i\) 这是一个 vector 或二维数组 ,表示节点 \(i\) 所有的祖先(不需要按顺序) 这两个都可以

  • 模拟堆(堆)2022-01-28 13:04:49

    /*维护一个集合,初始时集合为空,支持如下几种操作: “I x”,插入一个数x; “PM”,输出当前集合中的最小值; “DM”,删除当前集合中的最小值(数据保证此时的最小值唯一); “D k”,删除第k个插入的数; “C k x”,修改第k个插入的数,将其变为x; 现在要进行N次操作,对于所有第2个操作,输出当前集合的最

  • 学习笔记——树链剖分2022-01-26 14:34:10

    思想 对于每个节点,把所有子节点中子树最大的一个,成为重点,其它成为轻点。重点到父亲节点的连线成为重边,重边连接成若干条重链,其余的每个点称为重链。 可以发现,如果路径经过一条轻边,那么现在的子树大小至少缩小一半,所以每条路径可以被拆分成最多 \(\log n\) 条链,这样一来,就可以把较

  • CF156D Clues 题解2022-01-25 15:33:35

    Prufer 序列 Statement CodeForces 156D 给定一个 \(n\) 个点 \(m\) 条边的带标号无向图,它有 \(k\) 个连通块,求添加 \(k-1\) 条边使得整个图连通的方案数,答案对 \(p\) 取模。 \(n,m\le 10^5\) Solution 我们假装现在是 \(k\) 个点,想要联通的方案数, 知道一棵无根树唯一对应一个 pru

  • [HAOI2015]按位或2022-01-23 17:01:37

    [HAOI2015]按位或 min-max 容斥 记 \(\max\{S\}\) 表示 \(S\) 中每一数都被选到过的期望时间,\(\min\{S\}\) 表示 \(S\) 中出现至少一个数被选到的期望时间 答案显然为 \(\max\{U\}\) ,\(U= \{n \cdot 1\}\) 直接求 \(\max\{U\}\) 不好求,利用 min-max 容斥转化为求 \(\min\{S\}\) \(

  • 升级中的猫 (Cats on the Upgrade, CF1625E)2022-01-20 13:32:25

    升级中的猫 (Cats on the Upgrade, CF1625E) 我们称一个字符串\(s\)叫做\(RBS\), 如果它满足如下要求: \((1)\) \(s\)只包含"\((\)", "\()\)", "\(.\)"这\(3\)种字符. \((2)\) \(s\)可以通过逐步删去一个"\(.\)"或者一对括号"\(()\)"来变成一个空串. 比如,

  • [省选集训2022] 模拟赛12022-01-19 18:01:56

    中心城镇问题 题目描述 给出一个 \(n\) 个点的树,第 \(i\) 个点的权值是 \(a_i\),现在要选择一些点建立据点,要求任意两个据点之间的距离必须大于 \(k\),问选出据点的最大权值和是多少。 \(n\leq 10^6\) 解法 我发现我学不懂长链剖分的原因是指针基础为​零,而今天终于把我的心头大患解

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

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

ICode9版权所有