首页 > TAG信息列表 > FA

用于 C++ 机器人路径规划器的 FireFly 算法

萤火虫算法(FA) 是一种基于萤火虫点燃后行为的随机优化算法。为了保证方法的有效性、实用性和简便性,将萤火虫的光度和趋光性理想化。萤火虫被重新定位到该区域最亮的萤火虫,并在算法运行过程中不断更新其位置,该算法仅搜索萤火虫的照度和趋光性伙伴。FA 基于以下规则,可概括如下: 萤火

树的中心

https://www.acwing.com/problem/content/1075/ 输出树的中心(该点到树中其他结点的最远距离最近)。 时间复杂度 \(O(n)\)。 #include <bits/stdc++.h> using namespace std; #define LL long long int main(){ ios::sync_with_stdio(false);cin.tie(0); int n; cin >> n; vecto

并查集

声明:与学校集训内容无关。 并查集是一种树形结构,基本的应用就是判断两个元素是否在同一个集合内,也可以将两个元素所在的集合合并。 举个奇怪的例子。 原理&代码实现+优化 假设这里有一些P主,他们有不同的口味(派别),有摇滚,重金属,古典等等等。 现在我们假设有很多很多种口味,而我们设同

【刷题】Serval and Essay

题目地址:J-Serval and Essay_"蔚来杯"2022牛客暑期多校训练营1 (nowcoder.com)题意:  有一张n个点m条边的无重边无自环的有向图  初始时可以选择一个点染黑,其余点均为白色  若某个点的所有边的起点都是黑点,则该点可以被染黑  最大化图中黑点的数量  多组数据,n <= 2e5 m <

CF1450E Capitalism 题解

首先发现这个 \(|a_i-a_j|=1\) 的形式比较接近差分约束,稍微转化一下就是:\(-1\le a_i-a_j\le 1\) 且 \(a_i\neq a_j\)。于是你会发现 \(a_i\neq a_j\) 不是差分约束的条件。 换个角度。容易发现一条边相连的两个点一定奇偶性不同。考虑原图中若存在奇环,那么显然这是自相矛盾的。所

P5628 【AFOI-19】面基 (dp + 容斥)

P5628 【AFOI-19】面基 (dp + 容斥) 题目传送门 题目大意:略 题目分析: 首先我们观察数据范围,我们发现给定的图是一棵树,那么我们可以直接 \(dfs\) 来计算重要度,根据乘法原理可知。对于某条边的重要度为边两侧的节点个数的乘积。 接下来我们考虑用 \(dp\) 来进行求解,我们令 \(f_{i,j}\)

[Google] LeetCode 839 Similar String Groups 并查集

Two strings X and Y are similar if we can swap two letters (in different positions) of X, so that it equals Y. Also two strings X and Y are similar if they are equal. For example, "tars" and "rats" are similar (swapping at positions 0

题解 P2971【[USACO10HOL]Cow Politics G】

似乎是一个很简洁的新做法。 显然 \(k\) 个点集互不干扰,可以分开处理。 对于每个点集,首先取出两个点 \(u,v\) 作为最远的两个点(为表述方便下文称为直径),然后考虑向点集中加入点 \(w\) 的过程。我们计算出 \(d_1=\operatorname{dis}(u,v),d_2=\operatorname{dis}(u,w),d_3=\operator

题解 洛谷 P2700 【逐个击破】

\(P2700\) 逐个击破 前置知识     克鲁斯卡尔最小生成树算法 并查集 贪心思想 题目描述     给出一颗带权的树,删除任意条边,求出使得给定的点不连通的最小权值。 解题思路     样例说明:删除权值为\(1\)和\(3\)的边,使得\(1.2.4\)三点不连通,答案为\(1 + 3 = 4\)。   

Codeforces Round #819 (Div. 1 + Div. 2) and Grimoire of Code Annual Contest 2022

Codeforces Round #819 (Div. 1 + Div. 2) and Grimoire of Code Annual Contest 2022 A:Mainak and Array 思维 题意: 给定一串序列,你可以进行如下操作      询问经过多次操作后,得到的(an-a1)的最大值。 思路: 情况1:如果选择整个区间,我们只能选择相对下标差为n-1的两个数 情况2

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\) 互不相

「2021 集训队互测」《关于因为与去年互测zjk撞题而不得不改题这回事》

传送门 思路 一个朴素的想法就是 树剖 + 可持久化 trie 树 但这样是 \(O(qm\log^2 V)\) 的,\(30s\) 跑不过去 但我们注意到,我们每次最多访问到前 \(m\log V\) 大的数 我们就可以考虑将前 \(m\log V\) 大的数取出来,从大到小枚举数位,判断是不是有 \(m\) 个数这一位上为 \(1\),如果有,

解决get请求特殊字符问题

@Bean public ServletWebServerFactory webServerFactory() { TomcatServletWebServerFactory fa = new TomcatServletWebServerFactory(); fa.addConnectorCustomizers(connector -> { connector.setProperty("relaxedPathChars", ""<>[\]^{|}

CF1702G2 Passable Paths (hard version)

Passable Paths (hard version) 给出一棵大小为 \(n\) 的树,\(q\) 次询问,每次给出一大小为 \(m\) 的点集,判断是否存在一条链覆盖这些点,注意这条链可以经过其他点。\(n,\sum m \leq 2\times 10^5\) ,\(q \leq 10^5\)。 SOLUTION1: 虚树 由于 \(q\) 次询问的 \(\sum m \le 2 \times 1

Jx.Cms开发笔记(七)-升级BootstrapBlazor到6.9.x

由于BootstrapBlazor升级到6.9以后的升级还是非常大的,比如图标库升级到了6.1.2,bs升级到了5.2.0。所以这里记录一下升级过程。升级BootstrapBlazor主程序直接升级BootstarpBlazor到最新版本,没有错误,但是我们会发现我们的BootstrapBlazor自带图标全部变成方块了。这就需要升级图标库

简单计数 P6008

题目传送门 题目大意:给定一张边框确定的图,在其中空地放水并满足物理要求,求总方案数 题目分析: 首先注意到,满足物理需求就是满足在一个连通块内从高度为 \(h\) 放水,则满足对于高度为 \(\forall\) \(i\) \(\le\) \(h\)的空地均有水。 那么显而易见,我们可以从下到上枚举高度,对于连通性

并查集

并查集,是用代表元素来维护一个集合的数据结构。可以差不多\(O(1)\)地查询两个元素是否在同一个集合内。 并查集主要通过路径压缩和按秩合并减小复杂度。单独用的话最坏复杂度都是\(O(logn)\)的(虽然只路径压缩的均摊复杂度还是差不多\(O(1)\))。分开讲。 首先是初始化,每个元素各自属

HDU5593 ZYB's Tree

求 \(n\) 个点的树上对于每个点距离小于 \(k\) 的点的数量(边权均为 \(1\) )。 \(n\leq 5\times 10^5,k\leq 10\) 。 设 \(f[u][i]\) 表示距离 \(u\) 点 \(i\) 距离以内并且在子树内的点,那么在 \(DFS\) 时可以用 \(O(nk)\) 的时间处理 \(f[u][i]=\sum f[v][i-1]\) ,其中 \(v\) 是 \(u

P1967 [NOIP2013 提高组] 货车运输

给定一张图, \(q\) 组询问从 \(s_i\) 到 \(t_i\) 路径上最大边权的最小值。 \(n < 10^4\),\(m < 5 \times 10^4\),\(q<3\times10^4\)。 首先,所有询问的答案均在原图的最小生成树上,是最小生成树的瓶颈边,因为任何不在最小生成树上的边一定比原边更大,然后问题就变成寻找树上2点的路径上

C20220712T2 牛半仙的妹子图

给定 \(n\) 个点和 \(m\) 条边,起点 \(s\) ,每个点有颜色。给定多组 \([l,r]\) ,求最大走 \(l...r\) 边权所有可以走到的不同颜色数之和。(同一种颜色在不同区间内算多组)。 \(n,m\leq 5\times 10^5,q\leq 10^5,type\leq 600\) 。 将原图转换成最小生成树是等效的,因为最大值最小的瓶颈

C20220712T3 牛半仙的妹子Tree

给定一棵树,要求执行3种操作: 给树上某一结点涂色,从下一次操作起每一次向周围传染一个单位。 树上所有点变为正常 询问某个点是否被感染。 \(n,m\leq 10^5\)。 首先想到暴力做法,用栈维护现在被感染的节点以及感染时间,那么对于操作1,2都好解决,对于操作3需要遍历栈并求出是否有节点

Subarray With Elements Greater Than Varying Threshold

Subarray With Elements Greater Than Varying Threshold You are given an integer array $nums$ and an integer $threshold$. Find any subarray of $nums$ of length $k$ such that every element in the subarray is greater than $threshold / k$. Return the size of a

在基环树上 判断一个点到另外一个点的路径是不是大于2

树:n点 n-1边 基环树:n点 n以上边 #include <bits/stdc++.h> using namespace std; const int N = 2e5 + 5, M = N*2; int n, q; int h[N], e[M], ne[M], idx; int fa[N], d[N]; void add (int a, int b) { e[idx] = b, ne[idx] = h[a], h[a] = idx ++; } void topsort ()

P5021 [NOIP2018 提高组] 赛道修建 思路简记

发现答案具有单调性,尝试一下二分答案能不能做 二分答案 \(t\) 后,问题的关键就变成最多能找到多少条长度大于等于 \(t\) 的赛道 我们先假设整棵树以 \(1\) 为根 把样例的图放出来: 我们可以发现一个性质: 如果一个链,它经过了结点 \(i\) 的父结点,同时包含了 \(i\) 到子结点的某条边,那

NC15033 小G有一个大树

题目链接 题目 题目描述 小G想要把自己家院子里的橘子树搬到家门口(QAQ。。就当小G是大力水手吧) 可是小G是个平衡性灰常灰常差的人,他想找到一个这个橘子树的平衡点。 怎么描述这棵树呢。。。就把它看成由一个个节点构成的树吧。结点数就 代表树重。 输入描述 多组数据输入输出, 第一