ICode9

精准搜索请尝试: 精确搜索
  • P5904 [POI2014]HOT-Hotels 题解2022-05-20 12:33:19

    题面 原题 \(n\leq 5000\),加强版 \(n\leq 10^5\),实际上能做 \(n\leq 10^6\)。 长链剖分。做这种很多点满足限制的题,套路差不多。设 \(f_{u,i}\) 表示 \(u\) 子树内到 \(u\) 距离为 \(i\) 的点数,\(g_{u,i}\) 表示 \(u\) 子树内的点对 \((x,y)\) 数量,满足再加一个到 \(u\) 距离为 \(

  • 磊磊零基础打卡算法:day16 c++ Trie树2022-05-19 23:35:57

    5.19 Trie树: 用处:快速的查找和高效存储字符串集合的数据结构。     类似如此的查找,存储 其简单的两个操作:插入和删除 插入: void insert(char str[]) { int p; //定义数据前一位的位置 for (int i = 0; i < str[i]; i++) { int u = str[i] - 'a'

  • CF427D Match & Catch 题解2022-05-18 21:34:20

    题面 虽然 \(n,m\leq 5000\),但是这题是 \(O((n+m)|\Sigma|)\) 的。首先建 \(S\) 的 SAM,拿 \(T\) 上去跑可以得到 \(T\) 每个前缀的匹配区间(在 \(S\) 中只出现一次)。接着建 \(T\) 的 SAM,也可以求出每个前缀在 \(T\) 中只出现一次的区间。做一个区间交,取一个全局 \(\min\) 即可。

  • SP8093 Sevenk Love Oimaster 题解2022-05-18 21:31:17

    题面 对 \(n\) 个串建广义 SAM,每个点开一棵线段树维护 parent 树子树内的所有点都被哪些串走到过。这个直接线段树合并即可。注意分裂出来的点也需要update(我也不知道为何,反正不update会WA)。 点击查看代码 const int N=5e5+13,M=5e5+13,logN=21; int pcnt=0; struct SegTree{int

  • [模板]树链剖分2022-05-18 16:34:53

    简易版树链剖分 #include<cstdio> #include<cstring> #include<string> #include<iostream> #define WR WinterRain using namespace std; const int WR=1001000,INF=2147483647; struct SegmentTree{ int l,r,val,sum; }tree[WR]; struct Edge{ i

  • [CF538E] Demiurges Play Again 题解2022-05-16 20:00:32

    你谷 link CF link 首先将题目转化分别由自己和对面两个人布置叶子权值,求最大的叶子的权值,方便之后的解决。 考虑本题的计算是从叶子向上的,所以应该是自下而上的树形 dp,考虑设 \(dp_{x,0/1}\) 表示以 \(x\) 为根的子树,先手是不是想大的人,最大能走到的子树内的叶子是子树内第几大的

  • 字典树2022-05-14 16:31:24

    tire 字典树 先来个模板 142. 前缀统计 - AcWing题库 什么是字典树呢? 就是存字典的树嘛,差不多的赶脚。 确实是将所有字符存入其中,方便查找(多是查找前缀)。怎么存捏?如下图 建树 差不多是这个意思,但并非是把所有字符的空间给开出来,这就要讲到如何建树了。 void insert() { int ro

  • CF1187E Tree Painting2022-05-13 18:33:12

    CF1187E Tree Painting 分析 首先,我们贪心的想,当第一个点确定后,我们所求的最大值就是,依次选择子节点 这样,我们可以用树形DP求出以1为根的树,所能得到的最大权值。 递推公式为 \[f[i] = sz[i] + \sum_{j = son_1}^{son_m}f[j] \]则,我们可以轻松得到 \[f[1] = n + \sum_{j = son_1}^{

  • 结构体和指针2022-05-12 18:31:44

    1. 结构体地址: #include <stdio.h> #include <stdlib.h> #include <string.h> struct son { int money; }; struct dah { int money; }; struct father { struct son s; struct dah d; int money; }; int main(void) { struct fat

  • lab 12022-05-10 22:04:25

    int father[2],son[2]; int son[2]; if (fork() == 0) { int n; char buf[1]; close(0); dup(father[1]); close(1); dup(son[0]); for(;;) { read(0,buf,n); write(1,buf,1); } } else { int n ;

  • 树上启发式合并(dsu on tree)学习笔记2022-05-06 20:00:48

    树上启发式合并(dsu on tree)学习笔记 闲话 树上启发式合并,又称 dsu on tree(虽然跟 dsu 并查集完全没关系),用于离线处理子树相关询问。 它是一种利用了重链剖分性质的暴力,时间复杂度为完全正确的 \(\mathcal{O}(n\log n+m)\),个人认为跟莫队等都是非常优雅的暴力。 阅读本文并不需要重

  • NOI2018题解2022-05-04 18:33:22

    D1T1 洛谷题目传送门 题目描述 给定一个n个点m条边的无向图,每条边有高度和长度,Q次询问,每次给定起点,以及限制高度,求从起点能通过高度大于限制高度的边到达的点中,到1号点最短路的最小值 强制在线 65pts 不强制在线 把边权和询问的权值都排序,用并查集维护连通块内到1号点距离最小的点

  • [AcWIng 835] Trie字符串统计2022-05-02 17:35:22

    点击查看代码 #include<iostream> using namespace std; const int N = 1e5 + 10; int son[N][26], cnt[N], idx; char str[N]; void insert(char str[]) { int p = 0; for (int i = 0; str[i]; i ++) { int u = str[i] - 'a'; if (!son[

  • java--多态2022-05-02 14:34:13

    1、多态是什么? 在编程语言和类型论中,多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口。 多态类型(英语:polymorphic type)可以将自身所支持的操作套用到其它类型的值上。 2、多态的意义 存在继承关系和重写的现象 同一类型引用指向不同对象 Shape s1 = new Circle(); s

  • 重修 博弈论2022-04-30 22:02:40

    由来(doge) Once upon a time, there were two clever people named Alice and Bob. This is how the story begins... 基础 \(N\) 为先手必胜局面,\(P\) 为先手必败局面。 先手被认为输的局势,我们可以称之为奇异局势。 巴什博弈 小学奥数题:甲乙轮流报数至多报 77 个数,至少报 11 个

  • P6157 有趣的游戏2022-04-30 22:01:33

    P6157 有趣的游戏 分析 还是一样,看一看题目要求。 每一次系统会给出一条链,小 A 可以从这条链上找出两个点权不同的点 x,y,他的得分是 \(w_x mod w_y\)。然后小 B 会从整棵树中选取两个小 A 没有选过的点,计分方式同小 A。 非常容易推理出,对于A而言,其选出的最大答案是选出一条链的最

  • P4211 [LNOI2014]LCA2022-04-30 21:03:39

    P4211 [LNOI2014]LCA 分析 本题要计算的就是l~r与z的LCA的深度之和 我们来看看,是否可以将求多个dep转化一下 我们先对dep有一个理解,dep就是从i到root总共有多少点 我们从整体上考虑,发现对于一个询问:l , r , z 来说,所有的 lca 都在 z 到根的路径上。从而有一些点,它们对很多的 lca

  • golang goroutine 父子关系2022-04-29 20:34:33

    很多人认为 父 goroutine 结束后 子goroutine 一定会结束 结论只要main 不结束 goroutine 一定会运行 代码验证 package main import ( "fmt" "time" ) func main() { fmt.Println("main start") go func() { fmt.Println("parent start") go func() {

  • 树链剖分学习笔记2022-04-28 22:04:34

    树链剖(pōu)分 定义 树链剖分用于将树分割成若干条链的形式,以维护树上路径的信息。 树链剖分有多种形式,如重链剖分、长链剖分等,通常说的树链剖分指重链剖分。 重链剖分 首先给出一些定义: 重子节点:所有子节点中子树大小最大的子节点 轻子节点:除重子节点的其它子节点 重边:从

  • 最大异或对(trie树)2022-04-27 03:00:06

    在给定的 N 个整数 A1,A2……AN 中选出两个进行 xor(异或)运算,得到的结果最大是多少? 输入格式 第一行输入一个整数 N。 第二行输入 N 个整数 A1~AN。 输出格式 输出一个整数表示答案。 数据范围 1≤N≤105, 0≤Ai<231 输入样例: 3 1 2 3 输出样例: 3 #include<iostream> using namespace

  • java中父类强制转换成子类的原则2022-04-24 20:01:57

    java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用。 在Java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换。 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是

  • 【Unity】transform.Find()的使用2022-04-22 23:02:19

    起初对于transform.Find()我的理解是全局寻找目标对象,但结果并不是 transform.Find()通过传递一个字符串参数,能够从子对象中寻找name为参数的对象,返回transform。 需要注意的是,如果你要寻找的对象是嵌套的,例如: Parent Son Grandson 那么当你在Parent写脚本想要寻找

  • 2022.4.20 什么时候发生类的初始化2022-04-21 01:02:02

    什么时候会发生类初始化? 类的主动引用(一定会发生类的初始化) 当虚拟机启动,先初始化main方法所在的类 new一个类的对象 调用类的静态成员(除了final常量)和静态方法 使用java.lang.reflect包的方法对类进行反射调用 当初始化一个类,如果其父类没有被初始化,则先会初始

  • Trie树2022-04-19 02:00:56

      字典树(Trie)是一个比较简单的数据结构,也叫前缀树,用来存储和查询字符串。例如:aa, aba, ba, caaa, cab, cba, cc可以用下图的方式来进行存储。 可以发现,这棵字典树用边来代表字母,而从根结点到树上某一结点的路径就代表了一个字符串。举个例子,\(1\rightarrow 4\rightarrow 8\righ

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

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

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

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

ICode9版权所有