Algorithm
文章平均质量分 69
Researcher-Du
duzj19@mails.tsinghua.edu.cn
展开
-
经典图论算法回顾之Bellman-Ford算法
本文简单回顾了Bellman-Ford最短路径算法的基本思想原创 2024-08-04 16:15:02 · 900 阅读 · 0 评论 -
经典图论算法回顾之Dijkstra算法
本文回顾了经典的Dijkstra最短路径算法的思想以及简单的理解方法。原创 2024-08-04 01:59:05 · 869 阅读 · 0 评论 -
径向基函数拟合(RBF Fitting)
径向基函数拟合原创 2022-10-21 22:33:15 · 3660 阅读 · 2 评论 -
从固定点开始遍历图的所有生成树
给定起点,遍历图的所有生成树原创 2022-03-18 19:51:03 · 503 阅读 · 0 评论 -
判断mask是否包含孔洞的小trick
计算mask是否包含孔洞的小trick原创 2022-03-16 23:07:41 · 814 阅读 · 0 评论 -
经典回顾:最短路径之dijkstra算法
先上来自于邓公PPT上的两张图,有空了写一写。原创 2022-03-08 14:41:32 · 151 阅读 · 0 评论 -
从八皇后问题思考回溯法
一、八皇后问题八皇后是经典的回溯法问题,题目是说将八个皇后,放到8×8的国际象棋棋盘中中,使得任意两个皇后都不能在同一行、同一列以及同一条对角线上。这个问题可以通过暴力法求解,代码也很短:for(solu[1] = 1; solu[1] <= 8; solu[1]++) for(solu[2] = 1; solu[2] <= 8; solu[2]++) for(solu[3] = 1; solu[3] <= 8; solu[3]++) for(原创 2021-08-23 14:55:46 · 1149 阅读 · 0 评论 -
可动态改变优先级的优先队列
一、可变优先级的优先队列c++ codeC++:CSDN: 一个可变优先队列(Mutable Priority Queue)的实现原创 2021-08-18 10:39:58 · 1681 阅读 · 0 评论 -
读源码学算法之Monte Carlo Tree Search
最近研究新的算法有使用到Monte Carlo Tree Search,查了一些资料,参考几篇博客:1.知乎:蒙特卡洛树搜索最通俗入门指南2.知乎:AlphaGo背后的力量:蒙特卡洛树搜索入门指南2.https://blog.csdn.net/caozixuan98724/article/details/1032137954.https://blog.csdn.net/kurumi233/article/details/80307788我认真研究了一份代码,用蒙特卡洛实现井字棋人机对战的代码,非常原创 2021-06-27 18:16:18 · 667 阅读 · 0 评论 -
单调栈经典问题直方图最大面积
单调栈是一个很好用的工具,可以高效的将一些O(n^2)的问题优化到O(n). 经典问题如:POJ:2559 Largest Rectangle in a Histogram如下直方图,每个直方柱的宽度为1,高度如下所示,请问由连续直方柱构成的最大矩形面积?...原创 2019-06-15 22:28:27 · 473 阅读 · 0 评论 -
树的直径
树的直径:树上最远两点(叶子结点)的距离。那么怎么求树的直径呢?方法一:暴力求解,从每个点开始遍历图,可以得到每个点v所在的最长路径max1和次长路径max2,注意的是最长路径和次长路径除了点v没有其他公共结点。如下图所示,经过点A的最长路径应该是下图左所示的路径,而非下图右所示的路径,通过A的最长路径必须是来自不同分支。方法一,暴力破解,每个点做一趟DFS的话,时间复杂度为O(n2)O(n^...原创 2019-04-09 22:44:58 · 9485 阅读 · 2 评论 -
DFS求全排列算法
版本1:非常像八皇后问题,请参加我的博客:https://blog.csdn.net/u011426016/article/details/88818754八皇后要求不在同一行、同一列、以及同一条对角线上,这里只要求不在同一行,同一列即可。同一行自然不可能,因为每个皇后单独放置一行,同一列很好检查,使用visit数组标记即可,这种方法的优点是如果初始序列有序的话,可以保证全排列按字典序递增排列。...原创 2019-04-03 12:41:58 · 2083 阅读 · 0 评论 -
Tarjan算法求联通分量
Tarjan算法之所以这么出名,我的理解是他的复杂度很低,而且可以一遍DFS跑出结果。关于tarjan算法的讲解可以参考以下三篇Blog:https://www.luogu.org/blog/styx-ferryman/chu-tan-tarjan-suan-fa-qiu-qiang-lian-tong-fen-liang-posthttps://blog.csdn.net/qq_3437...原创 2019-03-26 16:06:02 · 216 阅读 · 0 评论 -
八皇后问题及其优化
循环暴力解法cint a[9], cnt;bool check() { for (int i = 1; i <= 8; i++) for (int j = i + 1; j <= 8; j++){ if (a[j] == a[i]) return false; else if (abs(a[j...原创 2019-03-26 14:03:21 · 980 阅读 · 0 评论 -
BFS经典问题八数码问题
1、问题描述人称不做这道题目会后悔,杭电OJ链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043.八数码问题,跟我们小时候玩得滑块拼图如出一辙。每个格子只能往空格处移动。如下左图所示: 这里八数码问题如下图所示:X是空格,我们对左侧的状态进行如下的3步操作即可转移到目标状态。1、求解方法(直接BFS)一看BFS可以求解,于是很快写完...原创 2019-02-26 22:17:41 · 1712 阅读 · 0 评论 -
前缀和与差分的使用技巧
前缀和是算法中常用的技巧,可以有效的降低算法复杂度,最近做了一些相关的题目记录下来。引用两篇博客:[1] https://blog.csdn.net/XT_NOI/article/details/72715904[2] https://blog.csdn.net/k_r_forever/article/details/81775899相关题目西南民族大学第十届校赛(同步赛),M题:H...原创 2019-01-01 15:55:04 · 832 阅读 · 0 评论 -
背包问题复习
背包问题是动态规划的经典问题,最近刷题又复习了一遍,本文再梳理一下01背包和完全背包问题。01背包问题经典01背包问题01背包问题:给定n个物品,每个物品的重量为wi,价值为vi, 现给定一个容量为w的背包,要求在背包容量的限定条件下,尽可能装价值多的物品(背包不一定要装满)。对于该问题其实可以使用深度遍历的方法暴力搜索,对于每个物品均有两种状态:选取或放弃。但这种方式复杂度高达σ(2n...原创 2019-01-18 22:16:19 · 588 阅读 · 0 评论 -
memset的用法
参考资料:https://blog.csdn.net/yang_zongjun/article/details/39025581有很多博客的确介绍了怎么具体操作。但是我有些不理解它实际的计算,所以自己写一篇博客,以后人为鉴:贴上代测代码:#include&amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;gt;us...转载 2019-01-20 10:42:00 · 11470 阅读 · 3 评论 -
动态规划找零钱问题
https://blog.csdn.net/u011889952/article/details/44813593原创 2019-01-20 23:45:58 · 6439 阅读 · 0 评论 -
整数划分的dfs和dp
整数划分问题是将一个给定的正整数划分成多个数的和,如给定5,划分的结果如下所示,注意这里将重复的划分剔除了,比如5=1+1+1+2=1+1+2+1=1+2+1+1=2+1+1+1只保留了第一个。5 = 1+1+1+1+15 = 1+1+1+25 = 1+1+35 = 1+2+25 = 2+35 = 1+45 = 5一、dfs求解代码如下:int ans[100], cnt; ...原创 2019-01-20 21:49:25 · 672 阅读 · 0 评论 -
字符串旋转HDOJ2137
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2137, 这道题确实没通过,看了别人的代码也没跳过,这道题输出卡得有点无语。题目是将一个字符串(字符个数为奇数)进行逆时针旋转,每次旋转45°,也就是说旋转8次回归初始位置。如字符串abc的8次旋转为:最开始考虑使用旋转矩阵去做,但是写起来稍微麻烦一些,于是就放弃了,后来想到了下面这种简单的写法。...原创 2019-02-28 12:56:32 · 193 阅读 · 0 评论 -
算法练习工具之代码对拍
练习算法时,很多时候可以将自己的代码跟网上提供的标准代码比对,既可以学习别人的写法,另外也可以找出自己代码存在的问题,方便调试。对拍就是一种很好的调试代码的方式。对拍总共需要提供4分文件:标准代码:std.cpp自己的代码:my.cpp随机数生成器:rand.cpp(用于为代码提供输入)批处理程序:对拍.bat (使上述3分代码跑起来,前提是以上3份代码已经编译,rand生成随机数为...原创 2019-02-28 13:32:20 · 3845 阅读 · 2 评论 -
ACM 知名OJ平台及题目分类
各大OJ题目分类:https://blog.csdn.net/dl962454/article/details/73277396#图论题目分类:https://blog.csdn.net/ling_du/article/details/47038249转载 2019-03-02 11:46:28 · 5504 阅读 · 0 评论