\begin{equation} F(x)=\int_0^t\sin(t)\mathrm{d}\,t+\left[\lim_{x\rightarrow0}g(x)\times\sum_{m=0}^\infty\frac{(-1)^m}{\Gamma(m+{\color{red}α}+1)}\right] \end{equation} \begin{equation} T_B^A \\ = T_G^AT_B^G \\= (T_A^i)^{-1}T_B^i
最近公共祖先(LCA)(RMQ) 作为求LCA的常见方法之一,RMQ算法可以以O(nlogn)的复杂度初始化,然后以O(1)的复杂度进行查询。RMQ(Range Minimum/Maximum Query)意为区间最值查询,即查找区间[l,r]中元素的最大/小值。但今天讨论的算法是有关树的,因此我们要想办法把树转换成一个满足我们需求
模块调优 lsmod 可以看到内核加载的模块 [root@servera ~]# lsmod | grep usb [root@servera ~]# modprobe usb_storage [root@servera ~]# lsmod | grep usb usb_storage 73728 0 [root@servera ~]# 模块名 大小 加载次数 手动加载出来 显示是0 这个模块不
1.创建表 //学生表create table student( sno varchar2(10) primary key, sname varchar2(20), sage number(2), ssex varchar2(5) ); //教师表create table teacher( tno varchar2(10) primary key, tname varchar2(20) ); //
目录Java1.控制输出2.判断3.switch4.正则匹配 matches()5.类型6.输入7.数组的使用8.String类的函数9.异或10.位运算11.一些函数 Java 1.控制输出 import java.util.Scanner; public class Main{ public static void main(String []args){ Scanner in=new Scanner (Syste
T1:矩形覆盖 用 std::set 或线段树来维护扫描线即可 代码实现 #include <bits/stdc++.h> #define rep(i, n) for (int i = 1; i <= (n); ++i) using std::cin; using std::cout; using std::multiset; using ll = long long; struct Node { ll x, h; int type; bool
C++ 二分图的最大匹配 /* * 二分图的最大匹配 * * 先前在介绍二分图时候,我们简述了什么是二分图,以及二分图的充要条件,并学会使用了染色法来判断二分图。 * 此次来介绍二分图的最大匹配。 * * 定义: * 二分图的匹配: * 给定一个二分图 G,在 G 的一个子图 M 中,M
shadertoy vec3 Rect(vec2 st, float left, float bottom, float right, float top, float blur ){ vec3 col = vec3(0.); float l = smoothstep(left,left+blur,st.x); float b = smoothstep(bottom,bottom+blur,st.y); float t = smoothstep(top,top+blur,1.-st.
c++ Prim 算法求解最小生成树。 O(N^2) 和 O(mlog m) /* * 最小生成树 * 最小生成树是图论中最为常见的问题之一,不过相比于最短路中的单源最短路和多源最短路,最小生成树算法主流仅有两种。 * 分别是 Prim 算法和 Kruskal 算法。这两个算法一个是基于点的算法,一个是基于边的算法
ST表嘛,就是一个可以解决可重复贡献问题的东西,并且很快,但是不支持修改 ST 表基于倍增思想,可以做到在$O(n \log_n)$时间内预处理, $O(1)$回答每个询问 实现+原理 先上代码,就着代码讲原理 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int logn = 21;
洛谷传送门 LOJ 传送门 思路 首先套路地建 AC 自动机,并存下每一行的终止结点,记为 \(a_x\)。 考虑在 AC 自动机上匹配的过程,\(x\) 在 \(y\) 中出现的次数就相当于在 Trie 树上 \(a_y\) 到根结点的链上,每个结点都不断跳 fail,有多少个结点是 \(a_x\),也就是在 fail 树上有多少个结点在
在汇编编程中,最简单的内存数据访问方式为:ds:[i/bx],其中i为立即数,该方式直接访问ds指向的数据段中第i个字节/字(具体取决于要访问的数据宽度——如mov byte/word ptr ds:[0], ax)。这种方式适用于很容易地知道所要访问的数据在段中的具体地址的情形,如数组。但如果要处理结构稍
洛谷传送门 SPOJ 传送门 题意 给定 \(N\) 个非负整数 \(A_1,A_2,...,A_N\) 和 \(Q\) 组询问 \((v_j,a_j,b_j)\),对于第 \(j\) 组询问,你需要回答满足 \(1 \le l \le r \le N\) 且 \(a_j \le r - l + 1 \le b_j\) 且 \(\sum\limits_{k=l}^r [A_k \ge v_j] = r - l + 1\) 的整数对 \((
SPFA 求解最短路代码 c++ /* * Spfa 最短路算法:Shortest Path Faster Algorithm * 前言: * 先前,我们介绍了基于点的 Dijkstra 最短路 和 基于边的 Bellman-Ford算法,他们各有各的长处。这次我们介绍一下应用也非常广泛的 spfa 算法。 * spfa 是受到 Bellman-Ford算法
热热身,先来几道基础题 144. 二叉树的前序遍历 145. 二叉树的后序遍历 94. 二叉树的中序遍历 三种最基础的二叉树的题目,递归解决 除此之外,所有递归可以解决的问题,栈都可以解决。用栈再重新解决一遍这三个问题. 前序遍历的栈解决很简单,右左中放进栈中,提取出来的结果就是中左右 后序
E. Keshi in Search of AmShZ 题目大意 给定一个 n 个点, ·m条边的有向图,边权为1。 有一个人初始在点1上,想去点 n。 每次你可以执行以下操作中的一个。 1)删除一条边 2)告诉那个人可以走了,那个人会随机的选择一条边走。 现在需要你找到最少的操作 d,使得最多经过 d 次操作,这个人可以
避免lock(this) lock(this)容易发生死锁 应该对私有引用变量加锁 下面是发生死锁示例 program.cs // See https://aka.ms/new-console-template for more information using DeadLock; Console.WriteLine("Hello, World!"); SynchroThis st = new SynchroThis(); Monitor.Enter
描述 使用STL中的stack,完成入栈、出栈、栈清空等基本操作。 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。 C++ int main() { stack<int> st; int n; cin>>n; while(n--) { Op(st); } while(!st.empty())
os模块 # 获取值 os.sep # 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"★★ os.linesep # 输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n" os.pathsep # 输出用于分割文件路径的字符串 win下为;,Linux下为: os.name # 输出字符串指示当
Acwing348. 沙漠之王 题目描述 大卫大帝刚刚建立了一个沙漠帝国,为了赢得他的人民的尊重,他决定在全国各地建立渠道,为每个村庄提供水源。 与首都相连的村庄将得到水资源的浇灌。 他希望构建的渠道可以实现单位长度的平均成本降至最低。 换句话说,渠道的总成本和总长度的比值能够达到
数据库连接 // 1.加载驱动 Class.forName("com.mysql.jdbc.Driver"); // 2.获取用户信息和url String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=true"; String username= &q
题意: 给定一棵树,带点权。两种询问: 1 x val:节点 x 加上 val,x 的所有儿子减去 val,x 的所有孙子加上 val,以此类推直到叶子 2 x:输出 x 节点的点权 思路: 维护子树的点权:dfs序把树映射为数组 一层加、一层减:开两个树状数组,\(tr[0]\) 维护在原树中的深度为偶的点,其中深度为奇的无意义;\(tr
2022-06-11 21:17:00 问题描述: 给你一个下标从 0 开始的整数数组 nums 。在一步操作中,移除所有满足 nums[i - 1] > nums[i] 的 nums[i] ,其中 0 < i < nums.length 。 重复执行步骤,直到 nums 变为 非递减 数组,返回所需执行的操作数。 示例 1: 输入:nums = [5,3,4,4,7,3,6,11,8,5
这道题目又是一个新算法,名叫Dijkstra 主要思路是:输入+dist和vis初始化(都初始化为0x3f)+输入g(邻接矩阵)+Dijkstra函数 Dijkstra函数:先将dist[1]设为1(起点到起点当然0代价),然后将每个点都更新一遍。在循环里面我们先找出最小但没更行新的点然后用这个点更新一遍所有数
题目描述 为了庆祝奶牛Bessie的生日,Farmer John给了她一块最好的牧场,让她自由的享用。 牧场上一共有 \(N\) 块草地 \((1≤N≤1000)\),编号为\(1...N\),每块草地上牧草的质量都不同。 如果Bessie吃掉的草地上牧草质量为 \(Q\),她可以获得 \(Q\) 单位的能量。 每块草地最多和\(10\)块草