- 博客(17)
- 收藏
- 关注
原创 模拟退火算法
模拟退火算法模拟退火算法算法简介算法描述南昌理工acm集训队模拟退火算法算法简介模拟退火算法来源于固体退火原理,是一种基于概率的算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。模拟退火算法从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解,即在局部最优解能概率性地跳出并最终趋于全局最优,适用的问题通常是一些求最优解的问题如果把问题抽象地看成一个长成这样的毫无规律的函数,而最优解就是函数的最低点摘自博客园某位大佬我们通常
2021-08-08 23:03:41
336
原创 欧拉路径与欧拉回路
欧拉路径与欧拉回路欧拉路径与欧拉回路欧拉回路算法模板欧拉路径与欧拉回路什么是欧拉路径?如果图G中的一个路径包括每个边恰好一次,则该路径称为欧拉路径(Euler path)。欧拉路径就是一条能够不重不漏地经过图上的每一条边的路径,即小学奥数中的一笔画问题。而若这条路径的起点和终点相同,则将这条路径称为欧拉回路。什么是欧拉回路?如果一个回路是欧拉路径,则称为欧拉回路(Euler circuit)什么是欧拉图?欧拉图:包含欧拉回路的图。如何判断图中是否存在欧拉回路?无向图一个无向图
2021-08-01 22:48:37
923
原创 tarjan算法求有向图的强连通分量
tarjan算法求有向图的强连通分量有向图的强连通分量有向图的强连通分量什么是强连通?强连通:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,即两点可以相互到达,则称两个顶点强连通。什么是连通分量?联通分量:有向图中任意两个不同顶点都可以相互到达(即任意两顶点都是强连通的)的子图称为一个连通分量。什么是有向图的强连通分量?有向图强连通分量:有向图的极大强连通分量,称为强连通分量。强连通分量有什么用处?
2021-07-24 21:25:34
307
原创 严格次小生成树
次小生成树次小生成树的概念简单求法例题参考代码倍增求法例题参考代码次小生成树的概念最小生成树大家应该都不陌生, 次小生成树就是边权和大于等于最小生成树的另一颗树,也就是边权之和第二小的生成树, 有严格次小生成树和非严格次小生成树。边权之和严格大于最小生成树的且权值最小的树,就是严格次小生成树。若求得的另一颗树与最小生成树权值相等, 则为非严格的次小生成树。在本文仅介绍对于严格次小生成树的求法, 其实大同小异简单求法前置知识树边:就是在生成树当中的边非树边:未连接到该生成树上的边假设我们求
2021-07-18 11:23:24
1008
2
原创 Floyd算法的应用
最小环问题给定一张无向图,求图中一个至少包含 3个点的环,环上的节点不重复,并且环上的边的长度之和最小。该问题称为无向图的最小环问题。
2021-07-11 00:44:32
2725
1
原创 C++map及multimap容器的使用及函数
map是常用的stl关联容器,它提供一对一的哈希。头文件#include<map>;map和multimap使用的头文件相同map和multimap的创建 map<int, string> a;// key键 value值 multimap<int, string> ma;// key键 value值 map不允许重复的key键,而multimap支持重复的键值对,二者都可以在加入数据后自动排序。map的
2021-07-06 15:34:15
232
原创 二分图及其应用
二分图本博客由南昌理工学院ACM集训队独家赞助播出什么是二分图二分图,简单来说就是一个所有的顶点可以分为两个子集(部分),并且每个子集内部的顶点互不相连的图人们经常将二分图两个集合的比作男性和女性,并将两个集合间的连线比作通常意义下的男女间的–好感关系–。(在这个图中)男男不能搞基,女女不能搞百合 < 也就是每个集合内部顶点不相连 >.(ps:对同性恋不抱反对态度,我本人非常支持,只是就这个例子而言,如有冒犯,当我没说)如图子集u 和 子集v 相连(黑点和蓝点相连)同子集点
2021-01-24 00:12:26
2020
1
原创 三维偏序/cdq分治/
三维偏序---cdq分治cdq分治概述三维偏序概述例题分析代码模板cdq分治概述cdq 分治和dp一样,是一种思想而不是具体的算法,因此 cdq 分治涵盖的范围相当的广泛,由于这样的思路最早是被陈丹琦引入国内的,所以就叫 cdq 分治了。cdq分治可解决的问题大致可分为三类:与点对有关的问题(三维偏序)cdq 分治优化 1D/1D 动态规划的转移(还不懂 )通过 cdq 分治,将一些动态问题转化为静态问题本篇博客主要介绍和总结用cqd分治解决的三维偏序问题三维偏序概述三维偏序,听起来似
2020-09-21 16:33:02
2553
3
原创 单调栈算法解释及应用/c++/
单调栈算法解释及应用/c++/算法概述应用场景例题分析例题一算法概述单调栈是单调的 就是具有单调性的栈结构,需要维护栈内元素递增或递减。栈内元素单调递增的就是单调递增栈,栈内元素单调递减的就是单调递减栈。单调栈中可以保存数组的下标或元素的值。应用场景可以在O(N)的时间复杂度,找出每个数左右两边第一个大于或小于它的解单调递增栈用于查找两边第一个小于当前元素的值单调递减栈用于查找两边第一个大于当前元素的值一般数组中的单调性问题,题目中隐含第一个或离此元素最近的大于或小于元素的值,这类问题
2020-08-15 14:58:19
1099
2
原创 滑动窗口 单调队列算法解释及应用/c++/
滑动窗口 单调队列算法解释及应用滑动窗口算法详解动画演示例题分析代码模板单调队列算法详解动画演示例题分析代码模板滑动窗口滑动窗口 可以用于处理一个数组或字符串的子区间问题算法详解动画演示例题分析代码模板单调队列算法详解动画演示例题分析代码模板...
2020-08-01 16:11:57
1109
2
原创 前n项和 大数取余
前n项和看似好像很简单… 但是我不会 不过我搞懂了 了吧题目如下:求和公式你可以累加 1+2+3+…+n-1+n暴力求解前n项和 简单粗暴 但看数据规模就知道撑死能过60%Sn=n(a1+an)/2在这道题里呢 这公式可以变换为 (n+n*n)/2Sn=n*a1+n(n-1)d/2在这道题里 可把公式变换为 n+n(n-1)/2 再进一步变换为 n * ( ...
2020-03-15 03:24:25
482
原创 C++ string的使用及函数(笔记)
c++中string的使用没什么废话想说进入正题string头文件当然要使用string必须添加头文件 是吧!!#include <string>string的创建和初始化string支持多种初始化方式比如: //1. string a; //最普通的创建方式 //2. string b(5, 'a'); //b中初始化...
2020-03-04 01:23:41
395
原创 c++vector动态数组应用及函数(笔记)
vector动态数组应用及函数开始先碎碎念一下下vector动态数组是c++中一个常用的容器 它相比于c语言中的数组 多了很多功能方便了使用由于接触c++以来 还一直保持着c语言风格的代码 确实有点大材小用就把笔记总结一下 方便学习 加深记忆vector头文件使用vector 首先要添加vector头文件#include <vector>vector的创建(1)可...
2020-02-29 17:42:17
978
原创 PTA L1-059 敲笨钟 c++
L1-059 敲笨钟 (20分)题目叙述:微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。为了增加敲钟的趣味性,还会糟改几句古诗词。其糟改的方法为:去网上搜寻压“ong”韵的古诗词,把句尾的三个字换成“敲笨钟”。例如唐代诗人李贺有名句曰:“寻章摘句老雕虫,晓月当帘挂玉弓”,其中“虫”(chong)和“弓”(gong)都压了“ong”韵。于是这句诗就被糟改为“寻章...
2020-02-03 03:10:29
3805
3
原创 PTA L1-056 猜数字c++ (20分)
L1-056 猜数字 (20分)输入格式:输入在第一行给出一个正整数N(≤10000 )。随后 N 行每行给出一个玩家的名字(由不超过8个英文字母组成的字符串)和其猜的正整数(≤ 100)。输出格式:在一行中顺序输出:大家平均数的一半(只输出整数部分)、赢家的名字,其间以空格分隔。题目保证赢家是唯一的。输入样例:7Bob 35Amy 28James 98Alice...
2020-02-03 02:03:10
592
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人