自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 子序列相关的数学原理,动态规划

摘要:本文探讨了计算非空子序列乘积之和的问题。给定N个正数的序列,所有非空子序列乘积之和可通过数学公式(1+a1)(1+a2)...(1+an)-1计算,其中减去的1对应空序列。该公式成立是因为其展开后各项正好对应所有可能的子序列乘积。从动态规划角度看,当新增元素时,乘积总和会变为原来的(1+ai)倍。两种方法都利用了子序列的递推性质:新元素会使子序列数量倍增,形成原序列子序列和新元素组合的两部分。最终结果需对1e9+7取模后减去1(空序列值)。

2025-07-06 17:38:14 731

原创 vector中删除元素

本文比较了三种在vector中删除元素的方法。第一种使用erase操作,由于需要移动后续元素导致时间复杂度较高,容易超时;第二种采用swap+pop_back组合,通过交换元素位置再删除末尾元素,效率较高但会改变元素顺序;第三种使用双指针法,通过读写指针分离的方式,既保持了原始顺序又实现了高效删除。实验表明,在维护元素顺序的场景下,双指针法是更优的选择,其时间复杂度仅为O(n)且不会引起元素移动。文中还提供了完整的算法实现代码,展示了如何利用双指针法优化vector元素删除操作。

2025-06-19 21:51:49 154

原创 容斥原理 38次csp第四题月票发行

本文针对小规模数据(n≤15)提出了一个暴力搜索解决方案,通过双重循环枚举所有可能的"CSP"和"CSPARK"字符串位置。算法主要步骤包括:1)检查两个字符串是否存在重叠;2)排除禁止位置;3)使用容斥原理处理重复计数问题,即计算单"CSP"情况总数减去双"CSP"情况数。最终结果通过快速幂计算26的幂次取模后输出。该方法确保了在小数据范围内正确统计满足条件的字符串组合数。

2025-06-15 21:35:05 223 2

原创 回溯——总结

本文总结了回溯算法中的几个关键调整点:1.是否需要startIndex取决于是否单集合求组合;2.进入下一层回溯时是否index+1取决于能否重复选取同一元素;3.处理集合有重复元素但组合不能重复的情况时,需先排序并使用条件判断跳过重复元素。核心要点是用排序+剪枝策略避免重复组合,其中同一树层上的重复元素需要跳过,而同一树枝上的相同元素可以保留。这些调整需要根据具体问题灵活应用。

2025-05-31 21:38:47 353

原创 vscode配置OpenMP

本文介绍了在VSCode中配置C++项目并运行程序的步骤。首先,通过ctrl+shift+p选择g++编译器,并添加-fopenmp参数,然后将配置与cpp代码连接并保存。配置完成后,直接点击运行按钮可能无法执行程序,正确的方法是在终端中输入可执行文件的路径。可以通过复制cpp文件的路径,将后缀改为exe,并加上双引号来获取正确的路径,例如"E:\visualstudiocode\first\test\1\1.exe"。

2025-05-14 17:25:17 362

原创 vscode上传代码到github

到了这个页面停住,因为红框里面的代码是有用的以下是对代码的解释是这样构成的 git remote add origin 项目链接链接从这里获得。

2025-05-03 19:48:42 1143

原创 Dijkstra算法总结

把所有点分为了两个阵营:A(初始为源点)和B(初始为除源点外的所有点)。算法的过程就是把每一个点从B移到A。移动到A中的点到源点的最短距离已经确定了,以后不再改变。两层循环:外层循环每次使一个点node从B移到A。这个点node满足两个条件:1.在B中;2.在dist中的值最小(不考虑A中的点)。有n个点所以要执行n次。内层循环遍历所有以node为始点的边。同时根据边的信息来更新distBellman-Ford算法一般情况下是循环n*m次(n为点数,m为边数),Dijkstra算法循环n*m

2025-04-06 12:37:18 395

原创 Bellman-Ford总结

Bellman-Ford算法效率没有Dijkstra高效,所以一般不会用。所以有边数限制无脑用,其他情况基本不用考虑用它。

2025-04-06 00:17:28 287

原创 C++控制小数位数的设置与取消

​控制有效数字cout<<setprecision(8)<<temp<<endl; //12345.12345000控制小数位数 cout<<fixed; cout << setprecision(2) << temp << endl; //12345.12恢复原貌 cout.unsetf(ostream::fixed); cout<<setprecision(6)<<temp; //12345.1

2025-04-04 20:28:45 324

原创 Mermaid报错

错误在第13行附近: E4 -->|校验失败| E6[显示"Data Check Failed"] -----------------------^ 错误值是:'STR',大概是因为有的mermai解释器是中文的吧,具体我也不知道,但是这只是很小众的一种情况。告诉AI让它在把每个括号里的内容都加上双引号,kimi甚至直接把图给你画出来了。还有一种特别情况,把英文符号换成中文符号(例如括号、冒号什么的),是的你没看错。

2025-03-29 23:56:37 1118

原创 vscode无法运行py和cpp的解决方法

“Sorry, something went wrong activating IntelliCode support for Python. Please check the “Python” and “VS IntelliCode” output windows for details.”检测到#include 错误,请更新includepath。已为此翻译单元 禁用波形曲线

2025-03-17 00:23:16 604

原创 安装PyTorch的总结

总的过程就看这篇文章。

2024-11-23 19:05:02 364

原创 优先队列格式

如果要对一个结构体使用优先队列int x,y;int x,y;//这里是大的在前,结果就是一个小顶堆,//和正常排序刚好相反return 0;注意这里自定义的比较函数用的是结构体,或者类也可以。优先队列(priority_queue)总结-CSDN博客【原创】优先队列 priority_queue 详解-CSDN博客。

2024-08-17 14:55:28 283 2

原创 数据库,JDBC,idea的连接问题

之后在用户和密码的地方输入自己数据库的相关信息。之后测试一下连接(如果没下载相关驱动的话,下载一下就可以)。测试完了之后点击“应用” 然后点击 “完成”。就可以了!

2024-05-18 21:09:13 632

原创 IDEA控制台无法输出中文

本文仅针对连类似如下代码输出结果为的乱码的情况。

2024-05-12 19:10:59 1193 1

原创 链表 1.虚拟头节点

虚拟头节点的引入会让代码变得更统一,也更简洁。

2024-05-04 13:11:14 245 1

原创 IDEA控制台输出乱码问题(tomcat)

但是我的tomcat的logging最开始和他改的一样GBK;但是后面我的还是乱码,只不过乱码的形式变了。于是我把logging改回了UTF-8,就好了。按照这篇博客的去改就好。

2024-05-02 15:49:29 158 2

原创 关于二分查找的格式 leetcode704.二分查找

关于二分查找的格式

2024-04-14 11:33:26 307 1

空空如也

空空如也

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

TA关注的人

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