笔记
文章平均质量分 63
MyLXHan
菜狗
展开
-
【学习笔记】主席树
关于主席树的介绍有一篇博客很详细,适合入门:主席树入门主席树需要的前置知识有:前缀和和线段树主席树上的差分区间与前缀和有关,而主席树的建树,修改,查询和线段树很相似,学了线段树之后看主席树就显得没有那么困难。1.建树void build(int &rt,int l,int r){ rt=++sz,sum[rt]=0; if(l==r) return ; int mid=(l+r)>>1; build(lc[rt],l,mid),build(rc[原创 2021-08-18 23:01:49 · 596 阅读 · 0 评论 -
分块和莫队
莫队算法是一个离线的算法,我们先将所有的询问全部存下来,然后排序。我们的每一个询问都是一个左右区间,可以通过一个奇偶排序进而降低常数。编码时,还可以对排序做一个小优化:奇偶性排序,让奇数块和偶数块的排序相反。例如左端点L都在奇数块,则对R从大到小排序;若L在偶数块,则对R从小到大排序(反过来也可以:奇数块从小到大,偶数块从大到小)。对于一般莫队而言 可以用以下bool cmp(node x,node y){ return pos[x.l]^pos[y.l]?pos[x.l]<pos[y原创 2021-08-12 09:45:37 · 204 阅读 · 0 评论 -
二分查找题
例如二分中如何取到最小时间或者最小值,一般要考虑到用二分。二分模板 int l=1,r=n; while(l<r) { int mid=(l+r)>>1; if(check(mid)) r=mid; else l=mid+1; }check函数用于判断是否符合所需的答案P1843 奶牛晒衣服#include<bits/stdc++.h>using namespace std;t原创 2021-07-08 11:14:47 · 193 阅读 · 0 评论 -
并查集扩展
带权并查集*顾名思义带权并查集是在并查集的基础上加上权边,通过递归修改到根节点的距离get函数中的d[]数组表示到根节点的距离Merge函数中需根据题目改变int get(int x){ if(x==fa[x]) return x; int root=get(fa[x]); d[x]+=d[fa[x]]; return fa[x]=root;}void Merge(int x,int y,int z){ int fx=get(x),fy=get(y原创 2021-07-05 22:15:10 · 326 阅读 · 0 评论 -
SQL实验二
SQL实验二实验内容用SQL语句写出以下内容题目一:(1)找出所有供应商的姓名和所在城市(2)找出所有零件的名称,颜色,重量(3)找出使用供应商S1所供应零件的工程号码(4)找出工程项目J2使用的各种零件的名称及其数量(5)找出上海厂商供应的所有零件号码(6)找出使用上海产的零件的工程名称(7)找出没有使用天津产的零件的工程号码————————————————select SNAME,CITY from S;select PNAME,COLOR,WEIGHT fro原创 2021-05-10 11:44:46 · 3374 阅读 · 0 评论 -
异象石
问题描述在 Adera 的异时空中有一张地图。这张地图上有 个点,有 条双向边把它们连通起来。起初地图上没有任何异象石,在接下来的 个时刻中,每个时刻会发生以下三种类型的事件之一:地图的某个点上出现了异象石(已经出现的不会再次出现);地图某个点上的异象石被摧毁(不会摧毁没有异象石的点);向玩家询问使所有异象石所在的点连通的边集的总长度最小是多少。请你作为玩家回答这些问题。下图是一个例子,灰色节点表示出现了异象石,加粗的边表示被选为连通异象石的边集。#include<bits/stdc原创 2021-05-09 18:20:44 · 404 阅读 · 2 评论 -
LCA 最近公共祖先
LCALCA 最近公共祖先顾名思义就是查询两个树结点的相同祖先结点如何去以一个合理的时间去完成一个题目是一个算法的重要核心,如果用枚举法沿着父节点去找必然会花费大量时间而且效率低下。所以今天用了两个不同的算法去求lca1.向上求点法 f[y][0]=x 表示y的父结点是x [0]表示y的2^0祖先其中一个比较难以理解的是 f[y][j]=f[f[y][j-1]][j-1] 因为 y+2^ j = (y+2^ (j-1))+2^(j-1)#include<bits/stdc++.h&原创 2021-04-30 14:57:45 · 103 阅读 · 0 评论 -
SQL
SQL 数据库实验二创建SQL脚本CREATE TABLE S(SNO VARCHAR2(12),SNAME VARCHAR2(20),STATUS VARCHAR2(10) ,CITY VARCHAR2(10),CONSTRAINT PK_S PRIMARY KEY (SNO));CREATE TABLE P(PNO VARCHAR2(10),PNAME VARCHAR2(20) NOT NULL ,COLOR VARCHAR2(10),WEIGHT NUMBER(5,1)原创 2021-04-26 10:28:06 · 111 阅读 · 0 评论 -
2020-08-17
8/10 晴 星期一可能是自己太弱了或者是太自大了,导致做题一直都很粗心爆栈。今天做了道POJ3278 看了大佬的bfs思路 自己也稍微了解了些算法思想 还是得自己更多去思考 今天下午做了一下午没有思绪 还是得换个想法 不能死磕下去#include<iostream>#include<queue>#include<cstring>using namespace std;const int maxn=100001;int n,k,mim=1e5+5,vis[m原创 2020-11-24 11:18:44 · 87 阅读 · 0 评论 -
ACM训练
8/3 星期一 晴今天又是dp的一天,果然dp的思想还是不能一下子就能理解,关于状态转移方程和决策这方面虽然说我能够看懂,但是还是需要更深层次的去探究。书上面的内容比较难懂啊,需要更多得去吃透。不过今天做了一道dp得题目,思想还是比较容易 洛谷P2196 挖地雷思路:最终是要求出最多的地雷数,并且还要回溯找到路线。之前看LIS问题的时候看见一个大佬的博客,上面有关于回溯的方法。所以我在做这题的时候就用了这个#include<iostream>#include<algorithm&原创 2020-08-10 17:11:02 · 177 阅读 · 0 评论 -
LXH的暑假训练
暑假学习7/27今天做了以前没有想出来的题目,自己就用C++的STL里面的map做出来ac了,然后看看大佬们的题解,用map的少不过继续努力吧。题目P1603#include<iostream>#include<algorithm>#include<map>using namespace std;string a[6];int main(){ map<string,string>secret; //map容器映射,并且自带按照键值排原创 2020-07-31 12:39:09 · 197 阅读 · 0 评论 -
LXH的算法学习
ST算法——RMQ问题(区间最值问题)引子:RMQ 的英文是 Range Maximum(Minimum) Query,翻译过来其实就是区间求最值的意思。问题描述:对于长度为 n 的数列 A,回答若干询问 RMQ(A, i, j)(i, j <= n),返回数列A中下标在 [i, j] 里的最小(大)值。因为可能需要海量的去查询操作,如果一个一个去找最大值那么时间复杂度将会巨大!!所以可以采用倍增的思想去提前预处理,这样时间复杂度就会使O(nlogn),然后以O(1)的时间去查询。~~解释:F原创 2020-07-22 18:23:34 · 491 阅读 · 0 评论 -
暑期OJ题解
7/12洛谷P2437题目描述 一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房 mmm 开始爬到蜂房 nnn,m<nm<nm<n,有多少种爬行路线?(备注:题面有误,右上角应为 n−1n-1n−1)PS:此题我之前做过一摸一样的,通过找规律发现蜜蜂到达n点的时候有两种路线:一种是从a[n-2]到a[n],另一种是a[n-1]到a[n](这种情况以及包含了从a[n-2]到a[n-1]); 公式:a[n]=a[n-1]+a[n-2]原创 2020-07-20 22:00:03 · 471 阅读 · 0 评论 -
2020-07-05
7.6号第一天训练10小时训练量对我新加入acm人员来说的确是一个挑战,我也会调整好自己态度。今天学的原创 2020-07-11 19:48:22 · 219 阅读 · 0 评论