- 博客(18)
- 收藏
- 关注
原创 后缀数组SA笔记
后缀数组是什么后缀数组,SA,可用于解决字符串问题。那我们看后缀数组:先约束一些东西:1.字符数组下标从1开始。2.len表示字符数组的长度。后缀数组主要有两个数组组成sa[i]sa[i]sa[i] 表示字典序第iii小的后缀的开头下标(1−len)(1-len)(1−len)rk[i]rk[i]rk[i] 表示以下标为iii开头的后缀的字典序排名那么显然有以下性质:sa[rk[i]]=rk[sa[i]]=isa[rk[i]]=rk[sa[i]]=isa[rk[i]]=rk[sa[i]]
2022-03-05 16:59:00 283
原创 向量笔记,随手记
1.向量的角度θ=0,两向量夹角0度。θ=π,两向量夹角180度。θ=π/2,两向量夹角90度,垂直。θ=arccos( a · b / | a | | b |)点积:以下皆为向量AB(x1,y1) CD(x2,y2)AB · CD=x1 · x2 + y1 · y2=|AB| |CD| cosθ叉积:AB × CD=x1 · y1 - x2 · y2=|AB| |CD| sinθ几何意义:以AB,CD为两边的平行四边形的面积余弦定理三角形abc内,c为任意一边,θ是ab夹角
2022-01-23 10:58:56 484
原创 【原创题】炼金
题目背景纪雅是一个注重学习的学校,尽管在校庆当天,LEMT仍然在教室里上化学课。题目描述化学老师sjm是一个尽职尽责的好老师,今天她正在讲合金。“合金的定义,就是一种或多种金属,以及碳,硅等元素经过融化混合等一系列工序得到的化合物。很显然,两个金属想要合起来,那么其中一个的熔点就必须低于另一个的沸点。那么三个及以上金属想要合起来就必须保证最低沸点高于最高的熔点,简单来说,把若干个金属看作若干条线段。若想要得到该多种金属合成得到的合金,就必须要使这几条线段有公共交。”...
2021-12-29 20:05:10 267
原创 有趣的排序算法——Monkey King排序 详细介绍
前言排序算法在题目中经常需要用到,在程序中,我们一般打的是快排,归并,堆排等高效率排序,更有甚者会直接用sort排序,而今天,我要介绍一种奇特的排序方法——Monkey King 排序,我相信接下来的内容会对你有一定帮助。算法简介Monkey King 排序也称吉吉国王排序,是一种高效率 排序算法,其发明者是L.E.M.T蒟蒻,于2021年1月8日在机房划水时发明(其实是听取了他人的瞎搞口胡再加以优化),本算法学习门槛极低,适于初学者学习。思想模拟猴子(bushi)我们设想取两个变量 xxx 和
2021-01-28 22:07:19 3028 11
原创 【CSDN网盘系列】splay模板
调了半天终于第一次调出splay呀!#include<cstdio>#include<algorithm>using namespace std;struct node { int l,r,fa,cnt,size,v;}f[100005];int tot,rt,n,x,t;void maintain(int x) {f[x].size=f[f[x].l].size+f[f[x].r].size+f[x].cnt;}void clean(int x) {f[x].si
2021-01-23 10:01:26 210 1
原创 【NOIP2016提高A组集训第16场11.15】SJR的直线 【蒟蒻的小题解】
DescriptionInputSample Input60 1 0-5 3 0-5 -2 250 1 -30 1 -2-4 -5 29OutputSample Output10题目大意给你一堆直线,求它们能构造出多少个三角形。思路看到题目给出的斜率式子:Ai∗x+Bi∗y+ci=0Ai*x+Bi*y+ci=0Ai∗x+Bi∗y+ci=0移项后:Ai∗x+ci=−BiAi*x+ci=-BiAi∗x+ci=−Bi两边同时取相反数再除BiBiBi:y=−ai/bi−c
2020-10-24 17:02:49 170 2
原创 【2014广州市选day1】消除游戏【蒟蒻的小题解】
Description相信大家玩过很多网络上的消除类型的游戏,一般来说就是在一个大拼图内找出相同的部分进行最大程度的消除操作。下面我们给出一个拼图以及消除规则,请你找到最大限度的消除方案。【拼图组成】拼图为 N行 * M列 的矩阵,每个格子中都放着一个数字,范围是0到9。例如:4*5 矩阵:【消除规则】我们可以从拼图的任意一个格子(坐标【X,Y】)出发,消除该格子的数字,然后,向格子X坐标正负1,Y坐标正负1的范围,寻找和原来格子相同的数字(不能找已经消除过的格子),一并消除,然后在新的格子继
2020-09-12 16:37:38 198
原创 【2014广州市选day1】导弹拦截【蒟蒻的小题解】
Description某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统 V1.0。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够达到任意的高度,但是以后每一发炮弹都不能高于前一发的高度,这样会大大降低导弹的拦截率。经过技术人员的苦心改良,导弹拦截系统升级为 V2.0,使得这个拦截系统在拦截过程中,有若干次机会提升到任意高度,虽然次数有限,但是已经算很大的改进了。某天,雷达捕捉到敌国的导弹来袭,导弹 V2.0拦截系统接受考验的时刻开始来临了。Input第一行为整数N (0<=N<
2020-09-12 15:34:28 647 1
原创 2020.08.15【NOIP提高组】模拟总结反思
分数:爆零这次比赛好难啊QAQ总结T1:这题是一道仙人掌最短路,比赛时想了一会,发现好像不太会,于是就打了个普通的最短路水部分分,可是没想到竟然打炸了。。。那是哪里的锅呢?请看下面的代码。for (R int i=1;i<=m;i++) x=read(),y=read(),z=read(),add(x,y,z),add(y,x,z);这是正确的,下面是比赛时的for (R int i=1;i<=m;i++) x=read(),y=read(),z=read(),add(x
2020-08-15 15:49:08 766
原创 【GDOI2014模拟】网格【蒟蒻的小题解】
学习压行+卡常第一天。。。Description某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m。现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x, y)都要满足x >= y,请问在这些前提下,到达B(n, m)有多少种走法。Input输入文件中仅有一行,包含两个整数n和m,表示城市街区的规模。Output输出文件中仅有一个整数和一个换行/回车符,表示不同的方案总数。S
2020-08-14 20:38:46 1091 5
原创 【GDKOI2014】阶乘【蒟蒻的小题解】
DescriptionInput第一行有一个正整数T,表示测试数据的组数。接下来的T行,每行输入两个十进制整数n和base。Output对于每组数据,输出一个十进制整数,表示在base进制下,n!结尾的零的个数。Sample Input210 1010 2Sample Output28分析像这种类型的题目,一看就知道是结论题,那关键是怎么推结论呢?通过进制转换的方法,我们推出,把 N!N!N! 转换为MMM进制后末尾零的个数就是N!N!N!整除MMM的次数,由此我们可以把问题
2020-08-13 20:45:21 286 2
原创 【小蒟蒻的算法讲解】最小生成树算法——kruskal
算法描述最小生成树算法,顾名思义就是给你一些边,让你把这些边连成一棵树,使这棵树的边权和最小。这么看来,这个算法其实就是贪心,那怎么贪呢?下面就来介绍一下我们的kruskal算法。当然,除了kruskal以外还有Prim也是最小生成树算法,不过个人认为还是kruskal更加方便一些,所以我还是更倾向于使用kruskal。Kruskal这个算法的思路十分简洁易懂,就是在一堆边中选出其中最小且不形成环的n−1n-1n−1条边连成一棵树,这里的nnn是总节点数。相信第一步大家都知道怎么做,就是把边按权值
2020-08-11 20:29:33 239 1
原创 景点中心 【蒟蒻的小题解】
Description话说宁波市的中小学生在镇海中学参加计算机程序设计比赛,比赛之余,他们在镇海中学的各个景点参观。镇海中学共有n个景点,每个景点均有若干学生正在参观。这n个景点以自然数1至n编号,每两个景点的编号均不同。每两个景点之间有且只有一条路径。选择哪个景点集中的学生,才能使所有学生走过的路径之和最小呢?如果存在多个解,则输出距离1最近的那个点,可以证明答案唯一Input输入文件center.in中有若干行:第一行只有一个正整数n,表示景点数。第二行有n个1至1000间的整数,这n个整数
2020-08-11 16:35:04 1034
原创 【GDOI三校联考】炸弹 【蒟蒻的小题解】
【GDOI三校联考】炸弹 题解Description在一个N行M列的二维网格里,有些格子是空地(用字符‘.’表示),有些格子是障碍物(用字符‘#’表示)。每个空地格子都有一只虫子,虫子不会移动。FJ打算用最少的炸弹把所有的虫子消灭。FJ每次可以选择在一个空地格子(不妨假设是格子a)放置一个炸弹,这个炸弹爆炸后,格子a的虫子会被消灭,假设有另一个空地格子b,如果空地格子b同时满足如下两个条件,那么空地b格子的虫子也会被该炸弹消灭:1.格子a和格子b在同一行或者在同一列。2.格子a和格子b之间没有障碍物
2020-08-10 20:58:29 1082 3
原创 【CSDN网盘系列】C++常用头文件
C++常用头文件,放在博客上容易copy哈哈QAQ#include<iostream>//cin #include<cstdio>//基本需要 #include<algorithm>//sort,max,min #include<cmath>//abs,sqrt,round等 #include<cstring>//字符数组 #include<map>//map数组 #include<string>//字符串
2020-08-09 21:51:43 201 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人