摘要:
#ST表 ###定义 ·也叫RMQ算法 ·给定序列,要求O(1)求区间(l,r)的最小值 ·F[i][j]代表i到i+2j-1的最小值。 ·F[i][j]=min(f[i][j-1],f[i+2(j-1)][j-1]) ·O(nlogn)预处理 设k为最大的正整数满足2k<=r-l+1 Min(l, 阅读全文
摘要:
#树上背包 给一颗树,每个节点上有一个物品,每个体积为wi,价值为vi。 选了一个点必须选它的父亲。 问总体积不超过m的情况下总价值最大值 f[u][j]代表在以u为根的子树中,选了j的体积,能得到的最大价值 ·首先i一定要选 ·枚举给每个子树v分配多少体积k f[u][j]=max(f[u][j] 阅读全文
摘要:
#LCA ###倍增 f[i][j]代表i的2^j级父亲 f[i][j]=f[f[i][j-1]][j-1] 有了f数组,如何计算“u向上跳k步到达哪个点”? 对k作二进制分解,枚举所有二进制位。 如果第i位为1,那么令u=f[u][i] O(nlogn) 预处理 for(int i=1;i<=n; 阅读全文
摘要:
#tarjan算法 无向图的上的tarjan与有向图同理,只不过没有横叉边。 对于边(u,v),若low[v]>dfn[u],则 (u,v)是桥,若low[v]>=dfn[u],则u是割点(只有一个儿子的根节点除外) void tarjan(int u,int fa){ dfn[u]=low[u]= 阅读全文
摘要:
#单源最短路 void spfa(){ memset(dis,0x3f,sizeof(dis)); dis[s]=0; z[top=1]=s; for(int j=1;j<=top;j++){ int now=z[j];vis[now]=0; for(int i=head[now];i;i=nxt[ 阅读全文
摘要:
day6上午还是做四道题T1区域【上机练习】1、编程计算由“*”号围成的下列图形的面积。面积计算方法是统计*号所围成的闭合曲线中水平线和垂直线交点的数目。如下图所示,在 10*10 的二维数组中,有“*”围住了 15个点,因此面积为 15。 【样例输入】area.in0 0 0 0 0 0 0 0 阅读全文
摘要:
day5 五道栈的题加上字符串。 单调队列、 T1 表达式括号匹配 洛谷P1739 题目描述 假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达 阅读全文
摘要:
day4(day5补完的) 继续刷搜索方面的题, 初步了解了序列。 T1 迷宫问题 题目描述设有一个 n*n 方格的迷宫,入口和出口分别在左上角和右上角。迷宫格子中分别放 0 和 1 ,0 表示可通,1 表示不能,入口和出口处肯定是 0。迷宫走的规则如下所示:即从某点开始,有八个方向可走,前进方格中 阅读全文
摘要:
day3:四道检测题,花了大半天时间。 T1 子集和问题 问题描述 子集和问题的一个实例为<S,c>。其中S={x1,x2,…,xn}是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得S1中所有元素的和为c 找不到原题了 #include <bits/stdc++.h> 阅读全文
摘要:
day1:学习seach和回溯,初步了解。 day2:深度优化搜索 T1 洛谷P157:https://www.luogu.com.cn/problem/P1157 题目描述 排列与组合是常用的数学方法,其中组合就是从nnn个元素中抽出rrr个元素(不分顺序且r≤n)r \le n)r≤n),我们可 阅读全文