- 博客(53)
- 收藏
- 关注
原创 AtCoder Beginner Contest 376(A-E)
下面这样去记录,maxn记录的是遍历过的最大值,没有恢复现场,如果maxn被改成6(案例二),那么在恢复0点再用1点的时候记录的最大时6,而不是拿max(a[2](上一层的maxn),a[3]),而是max(maxn,a[3])=6;学习了jiangly gg的代码,发现搜索其实会浪费很多时间,因为是选择三个元素,最大值直接用排序找到就好了,而最小值,一定是小的和小的相加,成一个不算大的最大值。借鉴了jiangly的,发现是和自己的思路差不多的,但是为什么自己写的就是错的。选的是下标,公式也是运用在下标。
2024-10-20 16:21:20
926
原创 atcoder-374(a-e)
atcoder-374文章目录atcoder-374ABC简洁的写法正解D正解EA#include<bits/stdc++.h>using namespace std;signed main(){ string s; cin>>s; string str=s.substr(s.size()-3); if(str =="san") puts("Yes"); else puts("No"); return 0;}B#include&
2024-10-07 09:29:46
627
原创 sublime配置(竞赛向)
接着,可以跟着下面这篇配置了(小声bb,vscode是工程化的项目管理,是真他么难用,不如sublime好配置)首先,到官网上下载最新的sublime4,然后在mingw官网上下载最新的mingw64。如果你想让sublime变得更加聪明,可以跟着下面的教程进行插件的安装。平常用来练习atcoder和codeforces觉得嘎嘎爽。,然后选择对应的版本即可(我选择的是下图红框圈出来的)。做完上面的配置就可以用c++的最新语法特性了😢。(可能会有点慢)——然后有时候会变成选。都有教环境变量的配置。
2024-10-06 20:39:22
991
原创 newbie难度——暴力枚举
给出的样例能够理解,如果有n个数字不能选,要排四个数字,这四个数字只有两个不同,并且这两个相同的会各自出现两次,有6种排列方式,那如果给出小于样例n的数字,就还需要计算选出哪两个数字。”,由于对角线攻击的性质,需要找到对角线能产生价值最大的位置,n和m最大仅为200,用递归去找所有对角线上的所有数应该不会爆栈。诶呀我去,简直不要太聪明了,这样的做法,如果相同就让lg一直增加,遇到不同就回归1。如果有连续零串,或者连续1串,大于组合串的时候是什么时候。枚举删除的位置,删除的位数等等 \\。
2024-09-27 14:56:31
1009
原创 VM ware的安装——个人使用
点击下载之后还会跳转到填写地址的页面,填写完同意后,会跳转回来,再点击下载就能下载了。选择个人下载,会跳转到下一个页面。如果没有官方账号需要注册一个。要勾选同意,才能下载。
2024-09-24 17:09:50
733
原创 git学习报告
调教window终端,使其像Linux一样,通过Linux命令对文件进行管理。在主分支增加需要版本数提交后,创建相应的分支即可。指令创建完项目之后可以在文件夹中发现新创建的。:将工作区的最新修改回滚到和暂存区一样的版本。:将暂存区的内容提交到当前分支的下一个节点。文件从暂存区中撤回,但是仍然是在管理文件中。文件从暂存区中撤回,但是仍然是在管理文件中。:查看当前分支所有版本,从下往上看。文件相对于暂存区修改了哪些内容。文件从管理文件中移除,不再管理。实际是将用户名和邮箱存放到。:将所有修改文件加到暂存区。
2024-09-24 01:38:46
976
原创 codeforces Round 970 (Div. 3)(A-F)
删掉的那个字符会影响counts,但是用prev_count去恢复之前删掉的字符,如果之前删掉的位置时奇数的位置,那么最近的一次删除一定是偶数位的,因为我是这样奇偶奇偶地枚举i的,所以之前删除的奇数位字符c和现存的偶数位构成奇数位的序列。我要泪目了,看到dsu这个标签,去查了一下,发现是并查集,然后联想了一下发现真的有点子并查集在的。可替换字符的定义是,一个长度为偶数的字符串,且奇数位置的字符串的字符相同,偶数位置的字符相同。分别统计奇数位置上的字符和偶数位置上的字符有多少相同的,看哪个相同的字符更多。
2024-09-02 21:29:53
993
原创 贪婪大陆(线段树题解)
的所有坐标点所代表的y值的和,那这样为什么不直接用一维矩阵去存差分,我真的,两年了,才懂😂。显然如果第五个区间也加入第三种,我们再访问3-5有多少种用我下面的代码只能是2种。懂了,之前一直把二维差分和一维差分搞混,二维差分实际是用于求子矩阵的,而不是说从。考察线段树查找不同种类的区间的个数,下次如果碰到了这类型的题目可以用上面的思想。可以维护开头和结尾,用公式一减就是答案了,单点查询(变相的区间查询)用线段树维护一个区间的sum和tag(懒标记)关于二维差分的理解,我好像一直都有问题。
2024-08-30 17:22:51
808
原创 P6242 【模板】线段树 3(区间最值操作、区间历史最值)
很显然,第一遍自己打的代码是没有仔细思考pushdown和pushup的。这道题也是一道模板题,需要学一下思路,然后把板子记住。用线段树维护一个区间最大值、区间最小值。那个B数组不纯纯来捣乱的吗。先记住现在过了的模板吧。
2024-08-28 23:12:40
437
原创 打饭-GYM
的优化,因为a[i]克数的粮食要运回,应该尽可能少的让离得远的的窗口能打或者大的量很少足够在到前面窗口的时候由于前面窗口a[i]很大即使离起点进也可能会产生一个串口花费大,比在离得远的窗口慢慢的累积粮食要大。所以,即使当离得远的很大时,其实可以直接不用考虑在第二层循环里的离得远的又重的,如果走到前面有可替代方案,自然会自动取最小。数学证明还不会,感觉需要用到累加求和➕放缩。我还不信了,手动模拟一遍。前台样例整理结果如下。
2024-08-23 17:43:41
857
原创 ACM算法竞赛入门及CSP认证(结课开卷习题)
总的来说最后的结课测试还是很简单的,全是板子题,几乎做到不假思索就可以打出来。课上做的那些csp的真题做的有多痛苦,结课做这个开卷的测试就有多爽。你真的我要笑死了,没用优先队列就在那里找最短路。其实用拓展欧几里得算法也可以。想到用set简直就是嘎嘎做。考察用快速幂求乘法逆元。spfa过了最后一道题。
2024-08-22 22:41:24
343
原创 数论(二)——博弈论与组合计数
动态规划的时候出过一次,在n-1位中先选j个2,剩下的n-j个数的位子全部放剩下的两个数,其中j个数中的第一位一定是2,剩下的j-1位就有j-1种选择也就是,反正最后有个3兜底,剩下的你n-j个数也一样,留一位兜底,那么0就有n-j-1种位置可以选。否则先出发的在选择起点的时候一定是0边的左右任意一条边都能赢。感觉还是要用到组合数,在n个里面固定m个,剩下(n-m)个排列组合减去他们也等于i的可能性。这么多的石头,会让剩下的所有数异或起来是0,这样就能够达到先手先出手就赢的状态。正解,是组合数乘上错排,
2024-08-21 12:34:45
1127
原创 AC自动机(初学)
如果今晚A题考虑用习题做的这个A的kmp做法的话,我想到的还是抠出来取一个个算kmp,但是看ac题解里好像是用个什么公式,但是现在没那么多时间去学。有提到哈希,解决特定字符子串的匹配问题,前两天做的题大概是这样的,4+训练赛和复习哈希表的时候做的洛谷的,以及今晚A题也是用字符哈希去做的。kmp是在一个文本串中查找一个模式串,AC自动机是多匹配算法,在一个文本串中同时查找多个不同的模式串。真是服了,应该从小开始枚举,这样才能有最多的子串啊,服了啊,已在在debug。死吗了,求next一直用s和p。
2024-08-20 02:59:03
621
原创 树状数组由浅入门(自用)
感觉自己这次对next数组有了更准确的认识,第i位之前的重合个数,就是next[i]的值。mle,改了long long 后就re了,应该是数组访问越界了。啪啪打脸属于是,确实,也没有说相同的子串不能中间插有奇奇怪怪的东西。总结,mod相同字符串不相同的直接接入vector后面即可。掌握lowbit,找出整数在二进制表示下所有等于1的位。关于base进位,因为先枚举的数一定在在后枚举的高位。常数超过百万小心平方复杂度爆了你的时间。,所以直接取一对的各自前两个字母即可。而且人家是连续的子串,别搞,
2024-08-18 01:13:01
308
原创 《深入浅出算法竞赛》-递推与递归(笔记版)
因为收到卡兰特数的那道题的启发,想用第二层循环去计算穷尽i这个数结尾之后可以➕多少个数,因为他是从1开始的,所以是一定能有前一个状态推出后一个状态的,然而我没有坚持写下去。好奇怪,为什么输入会爆int,我之前直接开三维的int直接爆了,我还在想怎么用tuple存三元组,诶呦woc,因为大于20就就返回w(20,20,20);因为小于,n/2之后的数都可以,像f[4] 就会累加f[2]的方案数,所以从j=1开始累加到i/2,会得到最终的总方案数。哦,大概知晓了,给定n个数,求出栈序的个数。
2024-08-16 02:38:51
516
原创 网络流算法(概念讲解)
增广路径:在残留网络里,从起点沿着大于零的边走,能走到终点的路径。也是原来网络的一个可行流,两个方案相加,每条边对应相加。,不考虑反向边,如果边不存在,则容量。
2024-08-14 15:57:10
625
原创 SPFA的拓展应用
(2) 统计当前每个点的最短路中所包含的边数,如果某点的最短路所包含的边数大于等于n,则说明也存在负环;不能直接用虚拟原点建边,这样会引入多一个点,很容易出现负环,虚拟原点到其他点的变长不好定义。(1) 统计每个点入队次数,如果某个点入队n次,则说明存在负环;在基础之上增加一个cnt[N]用来判断负环。
2024-06-29 16:53:43
811
原创 最小生成树拓展应用
建立一个超级源点,可以解决从哪个点开始的问题,如果只选最小点开始,会把其他自环(也应当看成一条边)忽略而没考虑到。可不可以找到最小生成树的后一条边(这个边需要满足能生成树)当作答案?手搓建立一个超级源点,ac了,prim算法。感觉是可以prim算法的。
2024-06-28 19:55:38
1211
原创 最小生成树模型
和dijkstra区别:d数组记录的是一个点到生成树的最小距离。还是在已有连线的基础上找到权值之和最小生成树。纯裸的一道prim模版题。纯裸的kruskul算法。边权为正才有最小生成树。
2024-06-27 15:05:32
331
原创 floyd算法拓展
含义:表示从i到j只经过1~k的话,最短路径是多少。关键:直径最大的牧场的直径尽可能小。(2) 本题含义:表示从i到j,由上一层状态更新,可以去掉一维。经过k条边的最短距离。
2024-06-27 01:30:35
322
原创 单源最短路(三)
不用,边做边更新,由于dijkstra和bfs天然的最短路拓扑序,所以同时记录最短路和路径数,用最短路去判断,然后更新最短路和路径数。需要存两个格点间的门的种类,以及有墙不能走的地方,bfs之前有一道题目很像,不过它用二进制表示一个格点四周墙的状态。类比dp,单独的点去记录路径是不够的,对于本题来说还有在某个点时,还需要这个人手持钥匙的状态,使得能够状态转移。,而不可能走第一排格子的上行边,所以取右边和下面,本题边的个数不会超过400=10*10*2*2(双向边)既要有钥匙,又要最短路。
2024-06-26 00:46:57
569
原创 MNIST手写字体识别(算法基础)
实际数据是含有高斯噪声的,我们拿来做观测值,通过观察数据分布为线型分布时,不断优化loss,即求loss极小值。在最简单的二元一次线性方程基础上进行三次线性模型嵌套,使线性输出更稳定,每一次嵌套后的结果作为后一个的输入。说人话就是让模型愈来愈贴近真实的变化(从正常的字体,到倾斜,模糊,笔画奇特等字体),以便更好的预测。, 使得梯度慢慢往下降无限趋近合适解,在最优解附近波动 ,得到一个近似解。在上一种regression基础上,每个点的概率加起来为1。值域压缩到 [0-1] 的范围。增加了非线性变化的容错。
2024-06-24 23:23:28
1317
2
原创 单源最短路径(二)
这题不是吃甜草的牛那道,每个亲戚可能都不在一条路径上,要找到分支的和,想到找到最短路中最远的一个亲戚,然后不断pre到他的前一个亲戚知道1,如果没有pre到说明不在一条路径上,需要找到没有pre到的点。不能用dijkstra是因为最小价格(最大价格)是在一条边的两端取,会出现后出现的点可以更新前面的点的情况,所以不能用基于贪心的Dijkstra算法。重新捋一遍思路,发现需要找到一个最优访问亲戚的顺序,那就需要对亲戚的访问顺序做一遍排列。有两条道路,一种是是可以为负数的航线,一种是只有正数的道路。
2024-06-23 00:15:50
316
原创 Linux文件系统验证
(注意打开一个文件后使用完毕需要使用 close 进行关闭,同时每次完成实验后使用rm删除函数所创建的文件,如果没有删除权限可以通过 chmod 修改权限后再删除)i.打开一个已经存在的文件(例如 test_file),通过 lseek 函数计算该文件的大小,并打印出来。iv. O_TRUNC,打开文件时,如果这个文件本来有内容,并且为只读或只写成功打开,则将其长度截短为0.一个进程可以打开多个文件,在Linux系统中,一个进程可以打开的文件数是有限的,我们可以通过一下命令查看。i. 若文件不存在则创建,
2024-06-22 15:01:43
795
原创 概率论论文(关于“到课率”的贝叶斯推理应用)
解答:由于深圳技术大学物联网学生的特殊性——根据近三周的数据统计,我们假设平均一周有15节课,根据收集数据记,一名学生在不知道老师会不会点名的情况下随机旷掉一节课的概率是0.5,而知道老师会点名的情况下旷课的概率是0.3,由于临近期末,老师的点名概率也稳定在(以概率论为例,平均三周下来的签到率为2/4=0.5)。学生想知道在决定旷课的情况下,老师实际点名的概率。首先,我们假设开始时村民对小孩子的信任度为0.8,即P(B1) = 0.8,那么小孩子不可信的概率P(B2) = 1 - P(B1) = 0.2。
2024-06-21 21:22:53
1358
原创 单源最短路(一)
思路是先计算任意两个牧场之间的距离,然后通过枚举每个牧场作为中间点,计算每头牛到这个中间点的距离之和。然后去最小值(对应的牧场编号)floyd+枚举(会TLE)堆优化版dijkstra。
2024-06-21 09:51:59
261
原创 typora图床配置
由于本人电脑初始化原因,需要重新安装软件,在配置typora图床时,遇到了验证失败的情况,于是通过搜罗资料和AI,成功解决了问题。
2024-06-20 11:06:32
364
原创 MQTT环境搭建(ubuntu20.04版docker)
该死的第二次创建容器的时候忘了端口映射,只能从头下载 😢。泪目了,终于成功用20.04的docker配置成功。根据官网给出的几行命令行就可以下载对应版本。
2024-06-18 22:36:07
391
原创 51单片机基础学习
这个时候需要用到压栈操作,用以保护中断现场,知道中断服务结束返回RETI,才进行恢复PC等寄存器的操作。232是电平转换芯片,实现单片机和计算机之间电平信号不一致的统一(15米以内的点对点通信)同样的有CH340芯片是转成USB电平的——USB转UART(反过来也行)的接口芯片;485电平转换芯片,增加传输距离(总线型,主-从通信)学过《微机原理》的我们都知道,汇编语言中可以设置跳转。单片机和计算机之间通过USB的串口异步通信。异步通信双方要约定好波特率。
2024-06-18 22:10:27
316
原创 算法基础——搜索题目(持续更新)
二分木棍最小值,向左找,dfs找到可以满足等长的总共木棒数,枚举木棒,将木棍放入,但其实木棍最长也就64,不会爆int,所以从1开始枚举就好了。在基础课的基础上需要知道记录每一步的操作,可通过记录上一次的状态推得。枚举小猫,考虑开新车放小猫。方案数大于最大数剪枝。
2024-06-15 19:28:50
458
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人