会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
吉光一片羽
博客园
首页
新随笔
联系
管理
订阅
随笔分类 -
算法积累
迪杰斯特拉板子
摘要:1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <iostream> 5 #include <vector> 6 #include <stack> 7 using namespace std; 8 const int maxn=505; 9 const int INF=0x3f3f3f3f; 10
阅读全文
posted @
2019-10-25 13:40
吉光一片羽
阅读(210)
评论(0)
推荐(0)
素数筛模板
摘要:素数筛即埃氏筛法,找出小于等于给定数的所有素数个数。 大致思路就是空间换时间:首先建立数组将所有数设为true,从2开始,因为2为true,所以2为素数,然后将2的所有倍数设为false;再对3进行相同判定,以此类推。 然后进阶的就是欧拉筛,即给定一个区间[a,b),找出区间内所有素数个数。 在前面
阅读全文
posted @
2019-09-18 21:14
吉光一片羽
阅读(247)
评论(0)
推荐(0)
Dijkstra算法求最短路径 Java实现
摘要:基本原理: 迪杰斯特拉算法是一种贪心算法。 首先建立一个集合,初始化只有一个顶点。每次将当前集合的所有顶点(初始只有一个顶点)看成一个整体,找到集合外与集合距离最近的顶点,将其加入集合并检查是否修改路径距离(比较在集合内源点到达目标点中各个路径的距离,取最小值),以此类推,直到将所有点都加入集合中。
阅读全文
posted @
2019-07-11 11:21
吉光一片羽
阅读(1559)
评论(0)
推荐(0)
后缀表达式 Java实现
摘要:基本原理: 从左到右扫描字符串:1、是操作数:压栈。 2、是操作符:出栈两个操作数,将运算结果压栈。 扫描字符串通过java.util.Scanner类实现,其next方法可以读取以空格(默认)或指定符号分割的元素。 算法代码:
阅读全文
posted @
2019-07-10 22:28
吉光一片羽
阅读(864)
评论(0)
推荐(0)
枚举例题:熄灯问题
摘要:思路: 枚举第一行所有状态,则第二行由第一行灯的状态决定,以此类推。(若要将上一行开着的灯关闭,在下一行只能拨动对应列的开关) 优化: 因第一列的状态数为2**6=64,因此可用一个整数表示所有情况,通过位运算来实现相应位的改变。 代码如下:
阅读全文
posted @
2019-04-19 14:02
吉光一片羽
阅读(230)
评论(0)
推荐(0)
排序算法总结
摘要:冒泡排序: 冒泡排序是相邻两节点进行比较,大的向后移一个,经过第一轮两两比较和移动,最大的元素移动到了最后,第二轮次大的位于倒数第二个,依次进行。这是最基本的冒泡排序,还可以进行一些优化。 优化一:如果某一轮两两比较中没有任何元素交换,这说明已经都排好序了,算法结束,可以使用一个Flag做标记,默认
阅读全文
posted @
2019-04-13 16:17
吉光一片羽
阅读(170)
评论(0)
推荐(0)
快速幂运算模板
摘要:分析: 将指数b看成二进制,b%2==1即判断当前b二进制最低位是否为1,是则将当前底数a与累积ans相乘,否则跳过。在每次循环中都将底数a扩大一倍,将指数b缩小一半。其中mod是针对幂运算求模。
阅读全文
posted @
2019-04-12 12:42
吉光一片羽
阅读(166)
评论(0)
推荐(0)
公告