首页 > TAG信息列表 > DEP

注解@DependsOn解析

作用   @DependsOn注解可以定义在类和方法上,意思是我这个组件要依赖于另一个组件,也就是说被依赖的组件会比该组件先注册到IOC容器中。   在哪里被解析   解析的地方在 ComponentScanAnnotationParser类#doScan方法 【可查看Spring基于注解的扫描底层流程】   代码为  An

Luogu3354 河流 - 树形dp -

题目链接:https://www.luogu.com.cn/problem/P3354 题解: 考虑树形dp 设\(f[i][j][k]\)表示考虑到 i 点,j 是i的祖先中与i最近的伐木场,i及子树中共有 k 个伐木场的最小代价 我们发现,这样设状态无法表示 i 是否有伐木场这个条件,因此钦定 f[][][] 表示 i 没有伐木场,g[][][]表示有 转移

JOISC 2022 乱做

非传统题不做。 Day1 T1 Jail 给定一棵 \(n\) 个点的树,有 \(m\) 个人,第 \(i\) 个人从 \(s_i\) 出发要到 \(t_i\),每次可以指定一个人走一条边。问是否存在一种方案让每个人都到 \(t_i\),且满足任何两个人不同时出现在同一个节点。 \(m \leq n \leq 1.2 \times 10^5\),\(s_i\) 互不相

CF1325F Ehab's Last Theorem

传送门 思路 dfs 树的一道出色的应用题 令 \(k=\lceil \sqrt n \rceil\) 我们先按照遍历的顺序构建出 dfs 树 对于一条返祖边 \((u, v)\),如果有 \(dep_u-dep_v +1\ge k\),那么 dfs 树上的链 \((v, u)\) 就是一个满足要求的环 假如并没有满足要求的环,说明对于从根出发的链上任意两

codeforces.ml/contest/519/problem/E 求树上到任意两个点距离相等的点 树上倍增 分类讨论

E. A and B and Lecture Rooms time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output A and B are preparing themselves for programming contests. The University where A and B study is a set of room

LCA(最近公共祖先)

lca,即最近公共祖先。最近公共祖先,顾名思义,就是树上两个点最近的祖先。 我们大体上有三个算法来搞。 第一个:\(O(nlogn)\)预处理,\(O(1)\)查询。 大体上是借用了rmq问题的思路(就是区间最大/小值)来处理。 将树上问题转化为区间问题。 void dfs(int rt,int d){ v[rt]=true;num[++t]=rt

gym-101667E How Many to Be Happy

How Many to Be Happy? 最小割 因为是最小生成树,因此可以考虑对于一条边来说,他的左右两端的点视为处于两个不同的集合,然后只通过该边进行连接,这样最小生成树就必然会利用这条边 比该边大的边显然不用考虑,就考虑比该边边权小的边,然后进行最小割,边流量为 \(1\)(分割成两个集合,且割的

where过滤和分组与表查询 (5)

前期表准备 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 age int(3) unsigned not null default 28, hire_date date not null,

Jeffrey's ambition(Dinic板子题)

Jeffrey's ambition(网络流板子题) 网路流的经典例题,会有两种需要匹配的东西,这两种东西直接可以构成一个二分图,这时候题目就会要求你求出最大匹配(水题) //要与这道Arrange the Bulls题目区分开来。两道题同样是找匹配,但是一个是问你匹配的可能总数,而且题目是一定能构成最大匹配的,且

真正的骗子(种类并查集)

题目链接   思路:     分成两类:1.村民说真话,2.村民说假话。当村民说是好人的时候,有两种情况,他们都是好人和都是坏人。所以将\(a\ + \ (x + y) ,\ b\ +\ (x + y)\)和\(a, b\)合并为一个集合。同理将\(a,b+(x + y)\)和\(a + (x + y), b\)合并为一个集合。     这个合并的

P1399 [NOI2013] 快餐店 题解

题目大意 求一棵基环树的重心。即一个点,使得树上到其距离最长的点到其的距离最短。注意,这个点不一定是一个节点,可以在树上的任意位置。输出树上到其距离最长的点到其的距离。 或者说求基环树最短的直径?(大雾 解题思路 显然,这颗基环树的直径只有两种情况:经过环和不经过环。 如果不经

树上启发式合并(dsu on tree)

DSU on Tree and It's questions 树上启发式合并,可以在 \(O(n\log n)\) 的时间复杂度内解决一类对于子树的查询问题。这篇文章以题目为主。 算法流程 遍历 \(u\) 的所有轻儿子,计算答案,但不保留其在一个全局的数据结构内的结果。 遍历 \(u\) 的重儿子,保留它对一个全局数据结构的影

[Google] LeetCode 366 Find Leaves of Binary Tree

Given the root of a binary tree, collect a tree's nodes as if you were doing this: Collect all the leaf nodes. Remove all the leaf nodes. Repeat until the tree is empty. Solution 每次需要删去叶子节点。 我们利用 \(dfs\):对于叶子节点的,我们将其深度返回 \(-1\).

22.8.19

22.8.19 ABC256_H 题意: 要求实现三种操作 将区间 \(L\) 到 \(R\) 中的数变为 \(\lfloor \frac{a_i}{x}\rfloor\) 将区间 \(L\) 到 \(R\) 中的数变为 \(x\) 查询 \(L\) 到 \(R\) 的区间和 思路: \(x\geq2\), 那么考虑一个数最多做 \(log\) 次操作一, 对于操作二, 最多将势能

网络最大流三题

昨天杭电多校1001题人均过,该学学网络流了(虽然dls说过,网络流只能出金牌题) 在b站看了电子科大的网络流入门,学会了dinic的板子,还不会严格证明 求单源单汇的最大流,简单来说就是只要残量网络能够到达汇点,就跑一遍增广路,然后再求残量网络,再跑增广路……直到汇点无法到达。 关键点:建反向

CodeForces-1601B Frog Traveler

Frog Traveler dp + bfs 感觉又像搜索 从后往前进行状态转移,像 \(bfs\) 一样保证当前搜索的是消耗次数最少的 状态转移因为是一个连续的区间,因此考虑当前能上升到的最大距离,只有能更新这个最大值,才进行状态转,保证每个位置只被访问一次 时间复杂度 \(O(n)\) #include <iostream> #i

暑假集训五[星际旅行, 砍树, 超级树, 求和]

暑假集训5 星际旅行 这个题刚看我觉得很ex,没事思路,就跳了,然后就去欺负\(T4\)了后来别的不会做,然后回来肝它...就肝出来了...对了,注意开\(long long\) 首先转化一下题意,我们建无向边不是一下建两条吗,那么如果想让一条无向边只被走一次,那么我们相当于删除掉它两条边的一条,那题意就

MySQl二

create table emp(id int primary key auto_increment,name varchar(32),dep_id int unique,foreign key(dep_id)references dep(id)on update cascade on delete cascade); create table dep(id int primary key auto_incrememt,dep_name varchar(32)); truncate删节 用于初始化

表关系

表关系 约束条件 1.primary kye主键 1.1从约束的角度上来说主键等价于非空且唯一 not null uninque create teble t1(id int primary key, name varchar(32)); 1.2IoonDB储存引擎规定一张表必须有一个主键(主键可以加快数据查询:目录) 如果创建的表中没有主键也没有非

学习python-Day40

今日学习内容 约束条件 主键 单纯从约束角度上主键等价于非空唯一 not null 、unique create table t1( id int primary key, name varchar(32) ); mysql> desc t1; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Defau

A层邀请赛4

A. 暗之链锁 翻书就好了,在树上差分的第一个例题,书上讲得太好了感觉我写啥都是多余。Cat本来可以1A的,结果把m看成了树边和非树边总共有m条,算贡献的时候算成了n-m...过样例的的时候读入错了我就发现了这个问题,结果改了一处没改第二处…… 有大佬说能用树链剖分+线段树,我懒了就没试,我

CF1712赛后口胡(E,F)

纯口胡,没看题解,有错请见谅。 E 题意是让你求满足 \(lcm(i,j,k)\geq i+j+k\) 的三元组个数。 我们通常都有一个直观感觉,lcm应该是各数之积级别的,换句话说, 不满足 \(lcm(i,j,k)\geq i+j+k\) 的三元组个数应该不太多,考虑用总的个数减去不合法的个数。 \(lcm(i,j,k)< i+j+k\) ,因为k是

CF1713E Cross Swapping

https://codeforces.com/contest/1713/problem/E 写了个随机合并的并查集,,,没过。。。。。。 反手按秩!!!!!!!!! #include <bits/stdc++.h> //#define int long long #define ID(i,j) ((i-1)*n+j) #define pb push_back using namespace std; const int M=1002,N=(int)(2e6+5); int n,a[M][M

最近公共祖先学习笔记

概念 在一棵有根树上,指定点集的最近公共祖先(即 LCA ),就是这些节点的祖先集合的并集中离根最远的点 实现 暴力 先对树进行一次深搜,预处理出每个节点的父亲与深度 对于每一次查询,我们先让深度较大的点向上跳,直到两点深度相同为止 接下来让这两个点一起向上跳,直到这两点相遇为止,此时该

考后总结——8.4 暑假模拟16

概述 又名:来自学长的告别 估分:\(???+???+40+20=???\) 实际挂分:\(0+10+20+50=90\) rk 19 赛时 干了快两小时 T1,以为是最可做,结果赛后发现 T1 人均最低分。 T2 最后感觉像是二分,但是判断写的是关于圆位置关系的函数,假掉了。 T3 和 T4 没什么思路,打了暴力跑路。 反思 和暴力拍过了,可