- 博客(38)
- 收藏
- 关注
原创 粒子滤波方法
假设X0X_0X0及其概率分布函数f0f_0f0预测步:由上一步的后验概率得到这一步的先验概率fk−x∫−∞∞fQkx−fvfk−1vdvfk−x∫−∞∞fQkx−fv))]fk−1vdv更新步:得到本次的后验概率fkxηfRkyk−hxfk−xfkxηfRkyk−hx)])fk−xxk。
2023-06-07 00:39:21
152
原创 一些通信原理实践中的问题总结(不断更新)
对于实信号经过fft之后幅度需要乘N2的原因如下:首先对于一个实信号可以通过傅里叶级数展开得到xtA0k1∑∞AncoskωtBnsinkωt))将其写作单边谱的形式为xtC0n1∑∞CncosnωtϕnC0A0CnAn2Bn2ϕn−arctanAnBn而写作双边谱的形式为xtA021。
2023-05-17 15:01:00
177
1
原创 Splay模板及部分理解
Splay模板及部分理解理解Splay树在所有的操作中,其实都没有对于val进行比较,它维护的是一个序列的中序遍历,这满足一个的左根右的顺序,那么只要我们在插入时以左根右顺序找位置插入,那么最后的结果就是,中序遍历是一个从小到大的过程,即也维护了左小右大。(个人理解,不知正确与否)代码模板#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>usin
2022-02-24 15:26:19
627
原创 蓝桥杯-压缩变换(可持久化线段树)
蓝桥杯-压缩变换(可持久化线段树)题目获取一段区间内无重复数字的种类思路经典在线可持久化线段树,或者离线树状数组代码#include <iostream>#include <cstring>#include <algorithm>#include <map>using namespace std;const int N = 1e5+5;struct node{ int l,r,sum;}tr[N<<5];in
2022-02-17 20:21:22
475
原创 蓝桥杯-冰雹数(DP)
蓝桥杯-冰雹数(DP)说明备赛区数据错误,练习系统可过代码#include <iostream>using namespace std;typedef long long ll;const ll N = 1e6;ll n;ll f[N+5];ll solve(ll x){ if(x <= N && f[x]) return f[x]; ll t = x; if(t&1) t = t * 3
2022-02-17 20:18:45
338
原创 选择困难症[NC13594]折半搜索+二分
选择困难症[NC13594]折半搜索+二分题目描述小L有严重的选择困难症。早上起床后,需要花很长时间决定今天穿什么出门。假设一共有k类物品需要搭配选择,每类物品的个数为Ai,每个物品有一个喜欢值Vj,代表小L对这件物品的喜欢程度。小L想知道,有多少种方案,使得选出来的总喜欢值>M需要注意,每类物品,至多选择1件,可以不选。输入描述:多组输入每组数据第一行输入k M(k<=6,1<=M<=1e8),表示有多少类物品接下来k行,每行以Ai(1<=Ai<=
2022-01-29 12:12:09
121
原创 蓝桥杯-蓝跳跳(矩阵快速幂 70%数据)
蓝桥杯-蓝跳跳(矩阵快速幂 70%数据)题目描述小蓝制作了一个机器人,取名为蓝跳跳,因为这个机器人走路的时候基本靠跳跃。蓝跳跳可以跳着走,也可以掉头。蓝跳跳每步跳的距离都必须是整数,每步可以跳不超过 k 的长度。由于蓝跳跳的平衡性设计得不太好,如果连续两次都是跳跃,而且两次跳跃的距离都至少是 p,则蓝跳跳会摔倒,这是小蓝不愿意看到的。小蓝接到一个特别的任务,要在一个长为 L 舞台上展示蓝跳跳。小蓝要控制蓝跳跳从舞台的左边走到右边,然后掉头,然后从右边走到左边,然后掉头,然后再从左边走到右边,然后掉头
2022-01-27 20:55:29
907
原创 蓝桥杯-异或变换
蓝桥杯-异或变换题目描述小蓝有一个01串s=s1s2s3...sns = s_1s_2s_3...s_ns=s1s2s3...sn。以后每个时刻,小蓝要对这个01串进行一次变换。每次变换的规则相同。对于01串s=s1s2s3...sns = s_1s_2s_3...s_ns=s1s2s3...sn,变换后的01串s′=s1′s2′s3′...sn′s' = s'_1s'_2s'_3...s'_ns′=s1′s2′s3′...sn′为:s1′=s1;si′=si−1⊕sis'
2022-01-25 12:07:35
1138
原创 蓝桥杯-翻转括号序列(线段树)
蓝桥杯-翻转括号序列(线段树)题目描述给定一个长度为n的括号序列,要求支持两种操作:将[Li,Ri][L_i,R_i][Li,Ri]区间内(序列中的第LiL_iLi个字符到第RiR_iRi个字符)的括号全部翻转(左括号变成右括号,右括号变成左括号)。求出以L为左端点时,最长的合法括号序列对应的R(即找出最大的R使[Li,R]是一个合法括号序列)。输入描述输入的第一行包含两个整数n, m,分别表示括号序列长度和操作次数。第二行包含给定的括号序列,括号序列中只包含左括号和右括号。接下
2022-01-25 11:22:39
1422
原创 [NOI2008] 志愿者招募 (费用流)
[NOI2008] 志愿者招募 (费用流)题目描述申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管。布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者。经过估算,这个项目需要 nnn 天才能完成,其中第 iii 天至少需要 aia_iai 个人。布布通过了解得知,一共有 mmm 类志愿者可以招募。其中第 iii 类可以从第 sis_isi 天工作到第 tit_iti 天,招募费用是每人 cic_ici 元。新官上任三把火,为了出色地完成自己的工作,布布希望
2022-01-23 14:01:07
451
原创 CF311E Biologist(最小割)
题目有n个01变量,目标在于确定它们的值,改变第i个变量的代价是viv_ivi。有m个限制条件,条件是一个变量集合内的所有元素都为0|1,当满足条件会获得WiW_iWi的收益,否则根据输入有可能会付出gig_igi的代价。最终的目的是求得最大的收益。思路很明显的转化为最小割来计算与满收益相比的最小损失。我们的割即为损失,那么我们对于现在为0的点与S连接,为1的点与T连接,权值为viv_ivi,代表如果进行转化需要付出的代价,现在暂时还并不明显意味着什么。再看限制条件,我们把每个条件当成
2022-01-21 13:49:55
291
原创 蓝桥杯-游园安排(LIS)
蓝桥杯-游园安排(LIS)问题描述L 星球游乐园非常有趣,吸引着各个星球的游客前来游玩。小蓝是 L 星球游乐园的管理员,为了更好的管理游乐园,游乐园要求所有的游客提前预约,小蓝能看到系统上所有预约游客的名字。每个游客的名字由一个大写英文字母开始,后面跟 0 00 个或多个小写英文字母,游客可能重名。小蓝特别喜欢递增的事物。今天,他决定在所有预约的游客中,选择一部分游客在上午游玩,其他的游客都在下午游玩,在上午游玩的游客要求按照预约的顺序排列后,名字是单调递增的,即排在前面的名字严格小于排在后面的
2022-01-20 13:18:51
457
原创 蓝桥杯-装饰珠
题目 (蓝桥杯-装饰珠)题目描述在怪物猎人这一款游戏中,玩家可以通过给装备镶嵌不同的装饰珠来获取 相应的技能,以提升自己的战斗能力。已知猎人身上一共有 6 件装备,每件装备可能有若干个装饰孔,每个装饰孔有各自的等级,可以镶嵌一颗小于等于自身等级的装饰珠 (也可以选择不镶嵌)。装饰珠有 M 种,编号 1 至 M,分别对应 M 种技能,第 i 种装饰珠的等级为 LiL_iLi,只能镶嵌在等级大于等于 LiL_iLi 的装饰孔中。对第 i 种技能来说,当装备相应技能的装饰珠数量达到KiK_iKi个
2022-01-19 18:18:46
528
原创 AcWing 1223. 最大比例
AcWing 1223. 最大比例题目X星球的某个大奖赛设了 M 级奖励。每个级别的奖金是一个正整数。并且,相邻的两个级别间的比例是个固定值。也就是说:所有级别的奖金数构成了一个等比数列。比如:16,24,36,54,其等比值为:3/2。现在,我们随机调查了一些获奖者的奖金数。请你据此推算可能的最大的等比值。输入格式第一行为数字 N ,表示接下的一行包含 N 个正整数。第二行 N 个正整数 Xi,用空格分开,每个整数表示调查到的某人的奖金数额。输出格式一个形如 A/B 的分数,要求
2022-01-15 15:30:50
299
原创 博弈论
博弈论博弈论巴什博弈(Bash Game)尼姆博弈(Nimm Game)nimk游戏anti-nim求连续数字的异或和威佐夫博奕(Wythoff Game)EX:扩展威佐夫博弈SG函数和SG定理博弈论巴什博弈(Bash Game)有一堆n个物品,两个人从轮流中取出(1~m)个;最后取光者胜。考虑到 若n=m+1 那么 第一个人不论如何取都不能取胜。进一步我们发现 若 n=k*(m+1)+r; 先取者拿走 r 个,那么后者再拿(1~m)个n=(k-1)*(m+1)+s; 先取者再拿走s 个 最后总
2021-02-18 15:57:32
163
原创 Crosses and Crosses POJ - 3537 (博弈论)
Crosses and Crosses POJ - 3537 (博弈论)题意给出1∗n1*n1∗n的棋盘,a,b轮流画×,完成三连×的获胜。思路当一个点被画下了×,那么作为当前棋手在它的左右各两格内下棋必然是输的,所以,一旦一点被下了后,游戏便被分解为两个游戏。设当前点为x,则两个分解游戏分别为1→(x−3)1\rightarrow(x-3)1→(x−3)和(x+3)→n(x+3)\rightarrow n(x+3)→n,即为n1=(x−3)−1+1=x−3n_1=(x-3)-1+1=x-3n1=
2021-02-18 15:54:51
120
原创 Divisors CodeForces - 1033D (数论)
Divisors CodeForces - 1033D(数论)题意给出n个数,每个数有3到5个因数,问n个数的积有多少因数思路分情况讨论:3个因数:完全平方数4个因数:两个质因数或完全立方数5个因数:完全四次方数对于每个数先讨论是否是完全2|3|4次方数,若是,则为这些因子加上2|3|4。 若不是则在特殊讨论,若它的因数不包含已经得出的因数,且和其他需讨论的数最大公因数为1,说明它有独特的两个因数,直接给答案乘上即可。注意开根号的时候精度问题,一开始没考虑,后来看别人的题解发现问题,
2021-02-17 22:47:32
166
原创 Area of Polygons POJ - 2043 扫描线
Area of Polygons POJ - 2043 扫描线题意方格纸上的简单多边形所占的方格数。思路对于简单多边形的各边,用一条平行于y轴的宽度为1的扫描线,自左向右扫一遍,每两条边被扫描线扫到的4个交点之间的距离就是方格的数量,若有重合的小方格注意减去。AC代码#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cmath>#include<algorithm>#include<
2021-02-17 20:34:56
89
原创 网络流
网络流网络流最大流最小割Ford-Fulkerson算法Edmond-Karp算法Dinic算法ISAP最小费用最大流网络流最大流最小割Ford-Fulkerson算法用dfs实现的FF算法时间复杂度上界是 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EJtlDHgC-1613446676440)(https://www.zhihu.com/equation?tex=O%28mf%29)] ,其中 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
2021-02-16 11:38:27
213
原创 数论(loading)
数论数论欧拉定理、费马小定理欧拉函数得出威尔逊定理卢卡斯定理及其扩展欧几里得定理及其扩展欧几里得定理欧几里得扩展线性同余方程中国剩余定理mi互质时mi不互质时乘法逆元二次同余方程素数反素数欧拉筛素性测试数论欧拉定理、费马小定理欧拉函数(小于或等于n的正整数中与n互质的数的数目):φ(x)=x∏i=1n1−1pi(其中p1,p2...pn为x的所有质因数,x为不为0的整数)定义φ(1)=1\varphi(x)=x \prod_{i=1}^n{1- {1\over {p_i}}}(其中p_1,p_2...
2021-02-04 17:38:04
341
原创 计算几何(基础部分)
计算几何(基础部分)计算几何注意点与向量模板点与线直线定义线段与射线点与线模板多边形三角形三角形面积三角形四心普通多边形(通常按照逆时针储存所有顶点)判断点在凸多边形内Pick定理普通多边形模板圆圆模板计算几何注意输出时一定要小心不要输出 − 0 -0−0,比如double a = -0.000001;printf("%.4f", a);使用反三角函数时,要注意定义域的范围,比如,经过计算 x = 1.000001double x = 1.000001;double acx = a
2021-02-04 17:36:39
225
原创 0-1 MST CodeForces - 1242B(并查集)
0-1 MST CodeForces - 1242B(并查集)题意给出由边权仅为0,1的边连成的完全图中的1-边,求最小生成树。思路显然,给出的完全图,在n的范围上跑一遍最小生成树肯定会TLE,那么就得想别的办法来解决这个问题。由于边权只有0,1,所以目标变为了求只由0-边构成的图中连通块的数量。所以通过并查集,每次和已有的连通块比较,如果当前点与已有连通块间的1-边的边数小于已有连通块的点数,那么必有一条0-边将题目相连,于是可以把该点并入连通块,否则新开连通块。AC代码#define _CR
2021-02-04 17:32:24
221
原创 Complete Tripartite CodeForces - 1228D
Complete Tripartite CodeForces - 1228D题意给出一个无向简单图,可能不连通,没有自环,没有重边。问能否将所有点划分成三个集合,每个集合中的所有点没有边直接连接,而且与其他两个集合中的所有点都有边直接连接(完全三分图)。思路先假设这个图是符合要求的,那么随意寻找一个开始染色,为起始点染色为1,所有与它直接相连的点染色为2,再任取一与起始点直接相连的点开始染色,所有与它相连的点,如果已经被染色为2,则将其染成3,(因为它既与1相连又与2相连),如果未被染色,则染色为1
2021-02-01 16:00:13
106
原创 Alex and Julian CodeForces - 1220D
Alex and Julian CodeForces - 1220D题意给出一个集合B,现根据规则在全整数域(一直以为是集合B看了半天)建图,所有整数作为端点,若整数i,ji,ji,j满足∣i−j∣∈SetB|i-j|\in SetB∣i−j∣∈SetB,则可以在它们之间连一条无向边,求从BBB中删去那几个点可以使得构成的图为一个二分图。思路1.判定二分图:不存在奇环2.加法的奇偶性:奇数+奇数=偶数奇数+偶数=奇数偶数+偶数=偶数奇数+奇数=偶数\\奇数+偶数=奇数\\偶数+偶数=偶数\
2021-02-01 11:51:46
159
原创 AB-string CodeForces - 1238D
AB-string CodeForces - 1238D题意如果一个字符串的每个字母,属于至少一个(长度大于1)的回文串,则称这个字符串为good。给出仅由AB组成的字符串,求出good子串数量。思路由于字符串只能由AB两种字符构成,如若其不为good串,其结构应为AAA...ABBBB...BAAB...BBBBA...AAAAAA...AB \\BBB...BA\\AB...BBB\\BA...AAA\\AAA...ABBBB...BAAB...BBBBA...AAA所以可以通过
2021-02-01 10:45:14
107
原创 A STRIP OF LAND POJ - 1156 (单调队列)
A STRIP OF LAND POJ - 1156 (单调队列)题意给出一个n*m的矩形,求一个宽度小于k,且高低差小于c的子矩形来修飞机场,求飞机场的最大面积。思路自左而右,自上而下地进行一个枚举,使用maxq和minq两个单调队列来维护当前的最大值和最大值,以此判断是否符合题意要求。AC代码#include<iostream>#include <cstdio>#include <cstring>#include <string>#in
2021-01-27 23:17:50
339
原创 生成树
最小生成树最小生成树Kruskal算法(稀疏图)Prim算法(稠密图)最小生成树Kruskal算法(稀疏图)利用并查集,从小到大寻边,构成最小生成树。模板:struct Edge{ int u, v, w; Edge() {}; Edge(int u, int v, int w) :u(u), v(v), w(w) {}; bool operator <(const Edge& x)const { return w < x.w; }};vector&l
2021-01-26 15:58:03
117
转载 memset各种类型
转载来自:https://blog.csdn.net/Vmurder/article/details/46537613memset各种类型int”较“的原则:加法不爆。极大值:0x7f较大值:0x3f较小值:0xc0极小值:0x80long long”较“的原则:加法不爆。极大值:0x7f较大值:0x3f较小值:0xc0极小值:0x80float”较“的原则:保证一定位精度。7f以上一直到be都是-0 (实际上是一个很小的>-1.0的负数)极大值:0x7f较大值:0
2021-01-26 15:47:24
149
原创 并查集
并查集)并查集普通并查集基本操作①初始化②查询操作③集合合并优化①路径压缩②按秩合并(可以保留树的结构)带权并查集查询操作集合合并并查集普通并查集基本操作①初始化void init(){ for(int i=1;i<=50000;i++) fa[i]=i;}②查询操作int Find(int x){ return fa[x]==x?x:Find(f[x]);}③集合合并void merge(int x,int y){ int fx=Find(
2021-01-26 11:13:37
188
原创 Regular Number HDU-5972
Regular Number HDU-5972Regular Number HDU-5972Regular Number HDU-5972题意:给出一个由‘|’构成的正则表达式描述的模式串,求出给出文本串中所包含的所有模式子串。思路:依靠bitset+shif-and匹配算法解决。(shift-and和shift-or算法)注意:本题把string卡住了,只能用char来进行输入输出。AC代码如下:#define _CRT_SECURE_NO_WARNINGS#include<io
2021-01-25 11:25:33
95
原创 shift-and,shift-or算法
shift-and,shift-or算法shift-and,shift-or算法shift-and算法shift-or算法shift-and,shift-or算法维护一个字符串的集合,集合中的每个字符串既是模式串P的前缀,同时也是已读入文本的后缀。每读入一个新的文本字符,该算法即用位并行的方法更新集合。该集合用一个位掩码D=dm…d1来表示。shift-and算法p为模式串(长度为m),t为文本串。 D的第j位被置为1当且仅当p0…pj是t0…tj的后缀。当dm为1时,就表示有一个成功的匹配。
2021-01-24 23:43:56
977
原创 差分约束
差分约束假设有这样的三个条件:那么我们可以将不等式1和不等式2相加得到:那么如果想要得到x1和x3的最大差值,那么其实就是取min(k1+k2,k3);其实问题我们可以将问题转化成图论,将x1,x2,x3看成三个点x1,x2,x3,对应三条边的建立就根据三个不等式来建立,那么边权值如何取呢?显然我们想要最大差值,我们就需要取最大值,那么图可以建立成这样:那么我们上述过程将不等式1和不等式2相加,然后和不等式3比较值的过程,其实就是最短路计算过程中的判断能否松弛的过程。那么我们就可以根据不等
2021-01-24 22:06:41
408
原创 各种路的整合
各种路的整合最短路单源最短路1.Dijkstra(前向星+优先队列)2.SPFA(负权边)多源最短路Floyed最长路SPFA(权值相反数建图)拓扑排序(有向无环图)次短路k短路最短路单源最短路1.Dijkstra(前向星+优先队列)#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cmath>#include<algorithm>#include<cstdio>#includ
2021-01-24 22:05:53
110
原创 康拓展开
康托展开康拓展开定义例子:52413**通过康托逆展开生成全排列**康拓展开定义康托展开公式:X=An*(n-1)!+An-1*(n-2)!+…+Ai*(i-1)!+…+A2*1!+A1*0!其中Ai表示其在未出现的元素中排在第几位(从0开始)。例子:524131、首先看第一个数 5,不管第一位是什么数,后面都有四位数,那么这四位数全排列的方式有 4!种,而如果第一位是 1 或 2 或 3 或 4 都会比5开头的字典序要小,所以可以令1,2,3,4分别作为开头,这样的话就会有 4 * 4!种排法
2021-01-24 22:04:05
220
原创 N数码解的存在问题
N数码解的存在问题N数码解的存在问题N数码解的存在问题>推广二维N×N的棋盘N×N的棋盘,N为奇数时,与八数码问题相同。N为偶数时,空格每上下移动一次,奇偶性改变。称空格位置所在的行到目标空格所在的行步数为空格的距离(不计左右距离),若两个状态的可相互到达,则有,两个状态的逆序奇偶性相同且空格距离为偶数,或者,逆序奇偶性不同且空格距离为奇数数。否则不能。也就是说,当此表达式成立时,两个状态可相互到达:(状态1奇偶性==状态2奇偶性)==(空格距离%2==0)。>推广到三维N×N×N
2021-01-24 22:02:10
182
1
原创 A*算法和IDA*算法
A*算法和IDA*算法A*算法和IDA*算法A*算法要点步骤IDA*算法基本思路A算法和IDA算法A*算法要点计算出组成路径的方格的关键是下面这个等式:F = G + H这里,G = 从起点 A 移动到指定方格的移动代价,沿着到达该方格而生成的路径。H = 从指定的方格移动到终点 B 的估算成本。( H值可以通过估算起点于终点 ( 红色方格 ) 的 Manhattan 距离得到,仅作横向和纵向移动,并且忽略沿途的墙壁。(仅作为一种估测方法))我们以d(n)表达状态n到目标状态的距离,那么h
2021-01-24 22:00:23
486
原创 FLAG codeforces 1181C (搜索)
codeforces 1181C (搜索)codeforces 1181C (搜索)codeforces 1181C (搜索)题意:n*m的图,其中子矩阵由3个等高矩阵自上而下构成(相邻矩阵位置颜色不同),则可以看做一个旗帜,问图中有几个旗帜。思路:从左上角开始,自上而下遍历,寻找可以实现3块型的宽为1的旗帜,如若可以找到,再向右扩展,若能扩展成功,每扩展一列即可与之前的各列组成新的旗帜,因此自某点*(i,j)*可以扩展的旗帜数量可以如下计算:SUM=1+2+3+4+…+N(N为扩展后的旗帜宽度)
2021-01-24 21:37:54
191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人