ICode9

精准搜索请尝试: 精确搜索
  • Noip模拟67 2021.10.32021-10-04 07:00:15

    还是困,不过已经可以用脑子思考问题了 T1 数据恢复 没啥明确的算法,可以说是贪心? 考虑部分分, 链的直接扫, 对于菊花的发现只要根节点在第一个,剩下的点位置不重要 那么按照$a/b$排序,扫一遍就行。 这启发我们正解如何考虑祖先和儿子的关系 我们设$v=\frac{a}{b}$,那么还是贪心的选择$v$

  • 【洛谷P5311】成都七中2021-10-01 18:03:30

    题目 题目链接:https://www.luogu.com.cn/problem/P5311 给你一棵 \(n\) 个节点的树,每个节点有一种颜色,有 \(m\) 次查询操作。 查询操作给定参数 \(l\ r\ x\),需输出: 将树中编号在 \([l,r]\) 内的所有节点保留,\(x\) 所在连通块中颜色种类数。 每次查询操作独立。 \(n,m\leq 10^5\)。

  • P5311-[Ynoi2011]成都七中【点分树,树状数组】2021-09-30 17:02:36

    正题 题目链接:https://www.luogu.com.cn/problem/P5311 题目大意 给出\(n\)个点的一棵树,每个节点有一个颜色,\(m\)次询问提出区间\([l,r]\)的点构成的生成子图中\(x\)所在连通块的颜色数。 \(1\leq n,m,a_i\leq 10^5\) 解题思路 用点分树解决本题是很妙的想法。/bx 考虑点分树如

  • C语言-实现字符串中是否包含字串2021-09-27 22:03:44

    C语言实现字符串中是否包含字串 如果包含返回0,不好含返回1 uint8_t bsp_abit_string_search(uint8_t *src, uint8_t *obj, uint8_t srclen) { uint8_t i = 0; uint8_t j = 0; uint8_t obj_size = 0; obj_siz = strlen(obj); if((src == NULL) || (obj == NU

  • luogu P3757 [CQOI2017]老C的键盘2021-09-24 21:33:03

    题面传送门 先把这个二叉树给建出来。 然后考虑dp,设\(dp_{i,j}\)为\(i\)在这个子树中排第\(j\)的方案数。 然后对于每个儿子的转移,分别枚父亲的排名,儿子的排名,父亲加入之后的排名,然后组合数乘一下就好了。 时间复杂度不会算,反正最多\(O(n^3logn)\) code: #include<bits/stdc++.h>

  • 缩树游戏(tree)2021-09-22 18:04:01

    代码稍后补充 Sol 考虑树形DP。以1为根,其余同理 设方程\(f[i][j]\)表示当前搜到搜索标号为\(i\)的节点,该节点剩余\(j\)条边,并保证根节点未被删除的方案数。 先考虑链的情况:只有单子树。 枚举子树状态:假设子树的根标号为\(x\),得到\(f[x][0—siz[x]]\),现在要求\(f[i][0—siz[i]]\)

  • luogu4323 独特的树叶2021-09-14 11:01:02

    题目描述 JYY有两棵树 A 和 B :树 A 有 N 个点,编号为 1 到 N ;树 B 有N+1 个节点,编号为 1 到N+1 JYY 知道树 B 恰好是由树 A 加上一个叶节点,然后将节点的编号打乱后得到的。他想知道,这个多余的叶子到底是树 B 中的哪一个叶节点呢? 输入格式 输入一行包含一个正整数 N。 接下来 N−1

  • [Contest on 2021.9.7] 睡着了,但不完全睡着了2021-09-09 23:01:29

    目录$\text{Strange Queries}$解法代码$\text{[TJOI 2013] }$拯救小矮人解法代码$\text{[ICPC World Finals 2019] Hobson }$的火车题目描述解法代码简单题题目描述解法 \(\text{Strange Queries}\) 解法 首先有这样的转移: \[\begin{cases}f(n,0)=f(n-1,1) \\\displaystyle f(n,1)

  • Kruskal的经典扩展2021-09-01 09:01:22

    acw348 Kruskal的经典扩展 题意:将一棵树扩展成一个完全图,保证该树是图的唯一最小生成树 关键思想:将一棵树看成是点集由集合合并组成的,每一次集合合并,都建构两个集合之间除树边以外的图边,由Kru算法的原来可知,最短的图边长度是w+1; Code: #include<bits/stdc++.h> using namespace std

  • [模板]笛卡尔树2021-08-29 12:35:26

    壹、测试题目 ¶ 使用 [HDU1506]Largest Rectangle in a Histogram 测试。 贰、参考代码 ¶ # include <cstdio> # include <algorithm> # include <cstring> # include <vector> using namespace std; namespace Elaina { # define rep(i, l, r) for(int i=(l), i##_e

  • [Gym 102798K] Tree Tweaking2021-08-29 09:35:13

    一、题目 点此看题 给出一个 \(n\) 个点的排列 \(p\),现在要把这 \(n\) 个点按顺序建立二叉查找树,问把 \([L,R]\) 这段区间重排之后所得搜索树的最小深度和是多少。 \(n\leq 10^5,R-L< 200\) 二、解法 首先要知道如何建树,虽然我们不知道二叉搜索树怎么建但是知道 \(\tt Treap\) 怎

  • [攻防世界 - reverse - 新手区] gam2021-08-29 01:33:20

    打开exe后发现不需要上ida,直接玩游戏即可 相当于一个初始全为0的长度为8的数组,每次操作选一个位置,将其与其相邻共3个数取反(首尾相邻,可看做一个环),一直操作到全部为1。 直接用c++写出搜索脚本 // rg是register,print是自定义的输出 stack<int> s; bool lamp[10]; int ans[10]; inlin

  • noip模拟482021-08-27 06:31:24

    A. Lighthouse 很明显的容斥题,组合式与上上场 \(t2\) 一模一样 注意判环时长度为 \(n\) 的环是合法的 B. Miner 题意实际上是要求偶拉路 对于一个有多个奇数点的联通块,直接 \(dfs\) 是不对的,可能搜索是来的不是一条路径 可以把个数大于 \(2\) 的联通块先强制奇数点两两连边,再跑两

  • 20210823 数数,数树,鼠树,ckw的树2021-08-25 06:32:06

    考场 乍一看都不好做 仔细想想发现 T1 的绝对值特别好,轮流选剩余的最大/最小值就行了 T2 又要计数,直接想部分分,发现一个 sb 容斥就有 35ps(但数据锅了,只有 25pts) T3 什么玩意,发现线段树不会操作 6(线段树分裂啊,昨天刚打了板子),LCT 不会操作 2 ,但 sub3(只维护黑点) 4(线段树维护序列) 都会

  • noip模拟462021-08-24 06:31:33

    A. 数数 排好序从两头贪心即可 B. 数树 首先很容易想到容斥 如果选择的边集的相关点集有点的度数大于 \(1\) 是不合法的 也就是说一定形成若干条长度不一的链 要给这些链上的点安排排列中的数,方案数其实就是 \((n-k)!\) 因为一条链开头的值确定了整条链的值就确定了 发现暴力算是

  • 洛谷 P3379 【模板】最近公共祖先(LCA)题解(树剖做法)2021-08-22 10:02:56

    题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 输入格式 第一行包含三个正整数 N,M,S 分别表示树的结点个数、询问的个数和树根结点的序号。 接下来 N−1 行每行包含两个正整数 x,y,表示 x 结点和 y 结点之间有一条直接连接的边(数据保证可以构

  • 题解 模板2021-08-21 06:31:53

    传送门 前70pts巨水, 不过没有数据范围就可以为所欲为吗。。。 颜色是负数是几个意思。。。 以后见到这类不给数据范围的题先离散化 发现每个节点的操作都会向上影响到根节点 貌似可以启发式合并一路维护上去 考虑如何处理这个每个节点只能放 \(k\) 个球的限制 在每个节点维护一棵s

  • 【题解】[TJOI2015]弦论2021-08-20 22:33:17

    [TJOI2015]弦论 感觉啥都不会就来补自己的弱项了…… \(\text{Solution:}\) 第 \(k\) 小的子串,这东西长得很平衡树。 回忆一下,我们在平衡树上找第 \(k\) 大的做法:记录左右孩子的 \(siz,\) 与 \(k\) 比较大小,不断二分。 那么,同样地,在这题里面,考虑如何类似地在 SAM 上面做这件事情。

  • 题解 字符消除22021-08-20 08:02:05

    传送门 首先证一个结论:t集合即是原串的boarder不用证了吧 于是转化题意:要构造一个boarder集合确定的01串 考虑从小的boarder推向大的boarder,令小boarder为s,大boarder为t \(|s|*2 \leqslant |t|\) 此时在s后面补上s的一段后缀即可 \(|s|*2 > |t|\) 把原串复制一遍接在最后,其它位置

  • 洛谷 P4146 序列终结者2021-08-18 17:02:57

    Description P4146 序列终结者 Solution fhq-treap 不得不说 \(fhq-treap\) 代码是真的短,真的好写。 挺板子的一道题。 区间加:打个 \(add\) 标记,不停下放即可,相应的 \(maxs\),\(val\),\(add\) 都要更新。 区间翻转:这就是个文艺平衡树板子,不多说了。(不会的话,建议先做一下板子)

  • [SDOI2008] 洞穴勘测2021-08-17 10:00:07

    前言 在我做这道题之前,我不会线段树分治和带撤销并查集,但是卷爷一下子就给我讲懂了。 也许做 岛屿探险 的时候我自己发明了线段树分治? 反正我现在学懂了。 题目 洛谷 讲解 LCT 板子题。 好吧,由于蒟蒻笔者不会 LCT,就只能换个角度思考问题。 检查连通性我们可以想到优秀的数据结构:并

  • 「题解」洛谷P5311 [Ynoi2011] 成都七中2021-08-16 10:04:17

    对于每一个询问,在点分树上一定存在一个最浅的点,满足这个点是 \(x\) 在点分树中的祖先,且在点分树上到 \(x\) 经过的点编号最小/大值组成的区间 \([\min,\max]\) 被 \([l,r]\) 包含,那么所有编号在 \([l,r]\) 内的与 \(x\) 连通的点,一定都在点分树中这个最浅的点的子树内,因为如果存在

  • abc 214 D~G 题解2021-08-16 09:00:57

    D 逆向思维,考虑一条边被多少条路径作为答案。 很套路吧,想到每次找到图中最大的边,断开,它的贡献为两边联通块的大小相乘再乘它的权值。反着来,每次用最小的边连接两个块,用并查集维护。 #include <cstdio> #include <algorithm> #include <cmath> #include <cstring> #define uint un

  • Solution -「Gym 102759I」Query On A Tree 172021-08-16 08:01:03

    \(\mathcal{Description}\)   Link.   给定一棵含 \(n\) 个结点的树,结点 \(1\) 为根,点 \(u\) 初始有点权 \(a_u=0\),维护 \(q\) 次操作: 给定 \(u\),将 \(u\) 子树内的点权加 \(1\); 给定 \(u,v\),将 \(u,v\) 简单路径上的点权加 \(1\)。   每次操作后,求出树最靠近结点 \(1\)

  • 洛谷 P2073 送花2021-08-14 21:33:59

    Description 洛谷 P2073 送花 Solution 无旋\(treap\) (\(fhq-treap\)) 这道题有点小变化。 对于 \(insert\) 操作,就按花的价格分裂。判断是否有当前要插入的花的价格,如果有就直接合并回去,如果没有,就把当前花插入进去。 对于删除操作,我们就删除点 1,或点 tot。(显然一个最大,一个最小

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

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

ICode9版权所有