自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 sql今天学习总结

select dintinct name.id,num 对name,id,num组成的一行行一起去重。组合查询 union将两次查询的结果组合到一起(能自动去重),union all不去重。order by id,number(先按id排再按name排序)substring(name,1,3) 截取从第一个字开始的3个数。count()计算条数 count(*) 计算表里有多少行数据。like "%abc%" 出去开头结尾中间有abc。left(name,3) 显示名字的左边三个。

2024-04-28 21:33:38 443

原创 3.30蓝桥杯备赛写题心得

1.新学到一个东西,将字符串转换为数字的函数stoi(string to int 的缩写)2.将一个数字转为一个字符串的函数 to_string。又用到了字符串截取函数 substr(下标,长度)

2024-03-30 16:16:07 249

原创 3.25备战蓝桥杯刷题总结

自己构造回文,如果要求包含3个回文,则来个abc再翻转复制,abccba,要求保证后面没有回文,再来个xzyxzyxzy,这样长度为3的字符串重复出现不翻转就可以。小红希望你构造一个长度为nnn的、仅包含小写字母的字符串,其中恰好有kkk个长度大于1的回文子串。对于题目这么大的数,用字符组存,为9倍数的规律是各个位的数相加为9所以把总和算粗来,从后面一个个减去就可以咯。我们发现对于一个不是回文子串,至少需要3个不同的字符,如abcabc,永远不存在回文子串。

2024-03-25 11:33:31 244 1

原创 并查集学习心得

这题由于并查集不好进行删除点的操作,所以反向操作,把删除点反向成一个个添加新的点,注意判断连通块的方法是看,fa[i]==i,那么是一个连通块,父亲相等为一个连通块。

2023-10-28 11:00:15 229

原创 【无标题】

set里的使用count()判断元素是否在set容器中。若在:返回1,若不在,返回0。斐波那契数列进制运用前缀和。

2023-10-24 21:29:35 45

原创 查找排名,前驱,后继的multiset

multiset可以不去重,并且自动从小到大排序,insert输入,访问用迭代器。lower_bound找第一个大于等于x的数,便于找第一个x,往前一个就是前驱。multiset<int>::iterator迭代器。upper_bound找第一个大于的数,就是后继。注意返回的都是迭代器,*d是迭代器所指的值。

2023-10-21 11:29:23 232

原创 10.20每日总结

队列法,pair型队列,可以加深对pair和队列的理解和应用,用队列是因为从头出,从尾进,刚好可以适合这题形成闭环,主要make_pair(),还有x.first,x.second这种写法。

2023-10-20 20:24:15 46

原创 LCA最小公共祖先(倍增法)模板

【代码】LCA最小公共祖先(被增法)模板。

2023-10-19 20:02:51 59

原创 10.16每日总结

然后cf补提第三题发现是个数学找规律题,就是找那个数的平方根那个结点,看是x*x,还是x*(x+1),还是(x+1)*(x+1)得区间,x+y确定,要使x*y最小,最好的方法就是让x=y,就可想到平方根emmm。今天主要学习了数据结构二叉树中的前,中,后序遍历,差别就是,根左右,左根右,左右根。都用递归思想即可求得。

2023-10-16 21:35:07 22

原创 10.15每日总结

题目数据10的100000次方,我用longlong我真的傻叉,这么大直接用string呀,就不该想复杂,然后第二题是那个绝对值加减,一定要注意会不会改变值,多找几个试试。

2023-10-15 21:17:38 27

原创 9.11每日心得

当要要求答案为最简分数,可以先算分母和分子的gcd,然后让答案的分母和分子都除gcd。

2023-09-11 20:11:03 23

原创 7.28每日心得

并且对于任意的整数 a,如果满足 b|a,则存在一个整数 x,使得 a/b≡a*x(modm),则称 x 为 b 的模 m 乘法逆元。LCA找最近公共祖先,自己也算自己的祖先,这个代码还待学,还没会。博弈论主要要找先手后手间赢的规律,比如奇数偶数时。2和3,6和7这样相邻的数肯定不互质。乘法逆元,若整数 b,m。

2023-07-28 20:55:57 26

原创 7.27每日心得

例如,两层for循环,一层是体积限制,一层容量限制,体积b,容量c,就是比普通限制多层循环。主要就是找状态方程,两种主要差别就是j一个是反着循环,一个是正着来。二维费用的背包问题,不只容量有限制,还有别的限制。最长上升子序列的动态规划,也是运用dp。写了些运用01背包,完全背包的题。

2023-07-27 20:57:14 24

原创 7.26每日心得

当给10种骑行方式1公里,2公里.....,要骑m公里,每种方法可以无限次,用完全背包,求min,每种花费v[i],总公里看作容量,i就是w[i]完全背包问题使用于物品无限个,与01背包状态方程一样,但遍历方向不一样。多重背包,使用于物品为有限件,主要是要二进制优化拓展行操作成01背包。学习了多重背包和完全背包。

2023-07-26 21:01:48 25

原创 7.25每日心得

主要用于每个数只能选一次的情况,还有道将一个集合分成和相等的两个集合的例题,关系方程跟这题一样,就是容量变成数的总和sum/2,然后搜了下发现,用endl会清空缓冲区但效率会比"\n"低,平时还是用“\n”好。补题时有道题一直超时,后来把cout<<endl改成cout<<"\n"就过了。然后学习了dp,今天先学的01背包问题,

2023-07-25 21:07:11 18

原创 7.24每日心得

位运算符<<,x<<i,表示数字x向左移动i位,右边尾部添上i个0。删除树直接删除所有叶节点,转变为求叶节点个数,要注意特判。二分函数 lower_bound用于查找容器中。h题找关系递推,遇到repeat进入递推。某值的数,返回这个数的指针。

2023-07-24 20:59:12 26

原创 7.22每日心得

先[1,4],找比4小的左端点,取后面左端点小于等于第一个右端点,且右端点最大的点,[3.7],再找左端点比4小的,且右端点尽量大的,【6,8】,最终三个。举例区间长度8,可选的覆盖线段[2,6],[1,4],[3,6],[3,7],[6,8],[2,4],[3,5],使所选尽量少。按右端点递增排序,排序完[1,4],[2,4],[3,5],[2,6],[3,6],[3,7],[6,8]排序[1,4],[2,4],[2,6],[3,5],[3,6],[3,7],[6,8]

2023-07-22 20:56:25 26

原创 7.21每日心得

l<=a,b<=r,使a变成b,先使a<b,每次移动a距离<=x,要求移动次数最少,就要让每回移动尽量大,用贪心思想每次往l,r边界移,就五种可能,-1,0,1,2,3。想让一个数变得末尾越多0越好,但变得次数为k,找因数2和5得个数,因为2乘5=10,2比5个数多,就再配5,再看能*多少个10,要使变化次数在k以内。vector动态数组得排序需要用迭代器,不能像数组一样sort(a,a+n),今天写题时才发现,大小和数组一样v.size()可以定义结构体的动态数组,vector<node> v;

2023-07-21 21:01:37 26

原创 7.20每日心得

n个数组成的序列,要求提问次数小于等于n次,获得这n个数的正确次序,每次可以提问一个区域的数的和,举例n=6,可以问1到6,1到5,1到4,1到3,1到2的和,记为sum[6],sum[5]....sum[2],再用a[6]=sum[6]-sum[5],最终a[1]和a[2]的解法是,询问2到3的区域和记为sum23,a[2]=sum23-a[3],a[1]=sum2-a[2],最终刚好询问n次可以得到每个数。输出解题结果,主要看题目要求要再几次提问次数下,尽量用二分,前缀和等减少提问次数。

2023-07-20 20:52:22 27

原创 7.19每日心得

圣诞树遮挡那题,遮掩的三角形面积与原三角形成比例,高之比的平方=面积之比,答案要求7位小数,防止小数位被约,double位数有限,输出时用%.7f来保证保留小数部分,当结果要求精确度很高很多位小数时,用改变输出方便。当n范围非常大时,向外cnt圈,每个点所连顶点满足k=pow(n,1.0/cnt),若k=1不满足k>=2就代表不能构成雪花。雪花,一个点连k点,内顶点1,向外第一圈k,第二圈k*k,第三圈k*k*k。多组数据输入时,数据的清零位置要仔细注意,有的需要在开头,有的要在中间。

2023-07-19 20:52:25 27

原创 7.18每日心得

找满足的a和b,如果n<=m或者m>=(n-m)就找不到符合的a和b。map运用到记录某个字符,某个字符串,某个数字出现次数很方便。set可 1.去除重复元素 2.自动按升序排列。否则符合的a,b就是m和n-m。复习了set,map容器用法。map 按key值排列。set去重和排序方便。

2023-07-18 21:03:12 24

原创 7.17每日心得

D题那个dfs就是要清零我的vis!多组数据测试时,前一次dfs里的vis没有清零会影响到后面的!导致第一个能过,后面都不能!注意重复利用的元素要清零!然后要每个能走的位置都dfs一下求最大值,以免特殊情况一圈0里包一个很大的数!雪花那道题就是看有几个出现过一次的点,则外围有几条边,用总边减外边=内围边。变成三角形前缀和,,每一斜线行+列相等,并依次递增2,3,4,5。

2023-07-17 20:57:31 38 1

原创 7.15每日心得

有个数学规律题,刚开始只有一个1,要结果为n个1,每次操作可以复制粘贴前面有的,规律为log2(n-1)+1次操作。复习了DFS模板和一些列题。

2023-07-15 20:36:35 26

原创 7.14每日心得

还可以取尾部元素s.back(),取元素拿元素s.push_back(),s.pop_back()这样子就很方便跟动态数组一样。一个忽视的小点,字符串可以直接相加,连接s1,s2可以直接,s=s1+s2。例如,环形染色问题,n个区域,m种元素,每个相邻区域颜色不能相同。类似走楼梯的题,一次只能走一层或两层,走到n层需要几种方法。就是根据关系式子层层推进,类似于递推。根据前面的结果推后面,层层递进那种。今天补题复习了忘掉的单调栈。还有dp里面较基础简单的。for循环i从3到n。

2023-07-14 21:01:09 23

原创 7.13每日心得

s[0]="abc",s[1]="cde",比较两个字符串大小可以直接if(s[0]==s[1])字符串s可以直接在末尾加字符,用s.push_back()与动态数组同理。回文字符串有个特点,去除首字符后=去除最后一个元素后再反转。动态字符串组,vector<string> s;然后又复习前两天的bfs的,现在可以敲的比较熟悉。字符与数字比大小,c-'0'变成数字。substr截取字符串。

2023-07-13 21:00:06 26

原创 7.12每日心得 按名字走迷宫bfs+避免精度问题

按一个字符串走迷宫,比如“xzytc",用bfs,结构体队列queue,queue<Node> q,记录idx,走到字符串的哪个位置,我这个字符串是5,就s[(idx+1)]%5来走。今天比赛的c题,就是数据范围比较大,两个特别大的数相除后会有小数比大小会出现精度问题,这时简单的方法是可以。,这样可以避免小数的精度问题,然后当一个数有多个部分时,用结构体,结构体比大小bool cmp。字符串的比大小直接用string中的。a/b>c/d可以变成ad>cb。将除法的比大小变成乘法的比大小。

2023-07-12 20:50:52 33 1

原创 7.11每日心得

每日总结

2023-07-11 21:00:01 36 4

原创 7.10每日心得(bfs最短路,pair及sort使用

bfs搜索,创建连接表

2023-07-10 20:51:33 44 1

原创 4.1每日心得

然后遍历第一个字符串,只要第一个的i和第二个的i不一样,就s1[i]=swap(s1[i]),s1[i+1]也同理,cnt++,只要不一样就换,最终就可以得到要换多少次,模拟,但我做题时就会想多想复杂想该怎么换,但其实只要不一样就换然后计数就可以了。的同学就知道,以前的人们为了把负数与正数统一,所以把最前面的一位设置为表示符号的地方,分别对照为1和0,然而如果是设置为无符号数,那么便只表示数值,多了一位,便不会超限了。质因数分解时,对n遍历i=2到sqrt(n),当n%i==0,最大的质因数就是n/i。

2023-04-01 16:02:28 28

原创 3.29每日心得

用递归很妙,要那种第一个加第二个后,有让第一个和第二个的和加上第三个,直接递归a[i+1]=a[i]+a[i+1]循环取最后一位时要用int a=x%10代替一下,不要改变x的值,x/=10可以直接写,改变x的值。for循环里不知道中间的截止条件时直接不填,里面得到符合条件时直接break。str.erase(1,n) 从下标为1开始删除n个元素。将年月日变成数字时,直接算年*1000+月*100+天。优先队列从大到小,sort从小到大。记得用新的值维护不能变的值。

2023-03-29 20:47:39 30

原创 3.28每日心得

年月份的题,闰年特判。遍历年,月,天,当提到星期几时,记得在week++前加上特判。%02d 以宽度m输出整型数,不足m时,左补零,用于输出2位数并且需要自动补0时。这样取每位数最方便简单,刻进dna。

2023-03-28 20:42:53 36

原创 3.27每日心得

子矩阵的和时先算每行的前缀和 s[i][j]+=s[i][j-1],再遍历i=1,j=i,两个列边界线,再来循环l,r,两个行边界线每次r++,cnt+=a[r][j]-a[r][i-1]如果cnt>=k了并且l<=r这是始终要加的限定条件,l++,cnt-=a[l][j]-a[l][i-1],每次循环一次l,r,判断cnt<=k且l<=r,sum+=r-l+1。=0),电脑可以看日历。9进制转换10进制,注意从后往前,1,9,81,81*9,再与那位数相乘,再相加,别的转换成10进制也这样,

2023-03-27 20:46:16 30

原创 3.26每日心得

扫雷里就用一个ans【】【】数组记录个数,定义一个find函数,设dx[9]={ 0,....... },dy定义八个方向,再for环,i从1到8,遍历八个方向,int nx=x+dx[i],ny扫到一个就ans[x][y]++,最后再把ans二维数组输出。递增序列学会了矩阵中怎么上下左右,斜上下左右扫描,先两个for循环i,j,行循环就再来个x循环,列循环就来个y循环,斜向上就来个for(int x=i,y=j;自动就是有s[0],s[1]循环,st=1,结构体{st,st+x-1,数},st+=x;

2023-03-26 21:34:16 24

原创 3.23每日心得

bfs广度搜索搜索所有可能,用queue,遍历点时可以用结构体定义点。strcat(f[x],g[y]) 连接两个字符串。用二维字符组存天干地支这种好多个名字,找循环。天干10个,字符组0到9,循环时注意9后是0。

2023-03-23 20:35:39 31

原创 3.22每日心得

周任务统计子矩阵那题,直接枚举暴力所有子矩阵的和过不完全,要压缩范围,遍历第i到第j列,设置l,r作为行的上下边界,res大于要求的k后,缩小范围l++,例如双指针一样,可以压缩时间,res+=a[r][j]-a[r][i-1]若res>k,则res-=a[l][j]-a[l][i-1],l++,每一次循环r++,满足res<=k&&l<=r时就cnt+=r-l+1。//首数不能是0,删减后得到答案长度。输入数字时倒着数,输出时也倒着。

2023-03-22 20:47:10 27

原创 3.21每日心得

递增三元组,三个都枚举所有可能会超时,根据题目要求三个有从小到大得顺序,可以选择枚举第二个得所有可能,再找第一个所有比他小的,第三个里所有比它大得,这样可以优化很多时间,用lower_bound(a,a+n,b)-a找小于等于它最小的数,因为这个函数找的是一个位置所以要减a,upper_bound是找小于的。动态规划不断更新到那个位置的最大值。数字三角形里就是只能上面和左边。

2023-03-21 23:01:11 26

原创 2023.3.7每日心得

每日一题

2023-03-07 20:12:58 30

原创 2023.3.6每日心得

双指针相关练习

2023-03-06 20:13:08 38

原创 2023.3.6

二分模板,set去重

2023-03-06 19:05:23 49

原创 2023.3.4

月考核的题扩展

2023-03-04 10:57:42 49

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除