自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树的遍历及前中、中后建树

前序 左->根->右中序 根->左->右后序 左->右->根二叉树的节点结构struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode() : val(0), left(nullptr), right(nullptr) {} TreeNode(int x) :val(x), left(nullptr), right(nullptr) {} TreeNode(int x,

2020-12-04 00:21:40 190

原创 算法分析设计--读书笔记

读书笔记我这学期选择的算法书的名字是《学习JavaScript数据结构与算法》。可能我是班里很少见的去选择JavaScript去学习算法的同学。(自己猜的,如果很多人当我没说hhh)。我觉得凡事应该先讲缘由,为什么我选择了这本书作为我这学期算法课的课外阅读。这学期有幸上web课了解到了一门叫做React的前端框架。以及了解到了其适用的状态管理工具Redux,也更深一步的接触到了JavaScript这门语言。我觉得,这门语言很神奇。不同于任何一门我之前接触过的编程语言。(虽然之前就接触过Java和c…

2020-06-08 19:10:25 372

原创 图的m着色问题

1.问题图的m着色问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。2.解析与“N皇后问题”一样。在填写每一个顶点的颜色时检查与相邻已填顶点的颜色是否相同。如果不同,则填上;如果相同(冲突),则另选一种;如果已没有颜色可供选择,则回溯到上一顶点。重复这一过程,直到所有顶点的颜色都已填上3.设计isDiffColor(index)//判断填色是否符合 for i

2020-06-01 11:52:45 175

原创 最优前缀码

1.问题由哈夫曼树求得的编码为最优前缀码。每个叶子表示的字符的编码,就是从根到叶子的路径上的标号依次相连所形成的编码,显然这就是该字符的最优前缀码。所谓前缀码是指,对字符集进行编码时,要求字符集中任一字符的编码都不是其它字符的编码的前缀,比如常见的等长编码就是前缀码。所谓最优前缀码是指,平均码长或文件总长最小的前缀编码称为最优的前缀码(这里的平均码长相当于码长的期望值)。2.解析3.设计void SelectMin(HuffmanTree T,int k,int *p1,int *p2){

2020-05-18 22:22:27 2462

原创 相容问题

1.问题相容问题:有一个礼堂需要用于举办活动,每个活动有开始时间与结束时间;如果任何两个活动不能在礼堂中同时进行,问如何选择这些活动,使得能在礼堂中安排最多活动2.解析3.设计void greedy(struct A* a,int n,int ap[]){ sort(a+1,a+1+n,cmp); ap[1]=1; int j=1;//记录最新纳入计划的活动的序号 int count=1;//记录有几个活动纳入计划 for(int i=2;i<=n;i

2020-05-18 22:19:43 149

原创 LCS

1.问题给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1:BDCABA;字符串2:ABCBDAB则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA。在本题中给出s1:ABCDAA s2:ACDUU。2.解析首先要分清楚:子串:表示连续的一串字符。子序列:表示不连续的一串字符。S1的最后一个元素与s2的...

2020-04-27 22:33:13 155

原创 动态规划:矩阵链乘法

1.问题设A1,A2,……An为n个矩阵的序列给定一个n个矩阵的序列,其中Ai为Pi=1*P阶矩阵,这个矩阵链的输入用向量P=<P0,P1,P2,…,Pn>给出,确定一种乘法次序,使得基本运算的总次数达到最小。2.解析Ai…j:表示矩阵链相乘的子问题Ai,Ai+1…Aj;M[i…j]:表示得到乘积Ai…j所用的最少基本运算次数;假定最后一次相乘发生在矩阵链Ai…kAk+1…j...

2020-04-20 23:40:37 254

原创 dp-投资问题

1.问题有m元钱,n项投资,f[i][x]代表将x元投入到第i个项目中的收益,求最大的收益2.解析动态规划问题一般分为两类:中间状态类和累积状态类。前者的参数是相同的,后者的参数不同,而且往往需要一个变量来进行遍历。这个问题以及最少货币数的问题都属于后者,最长公共子序列和最小路径和都属于前者。3.设计 for (j = 0; j < m + 1; ++j) { F[0][j] ...

2020-04-13 20:51:10 680

原创 第k小的元素

1.问题在含n个元素的无序数列中寻找第k小的元素2.解析3.设计4.核心代码int select(int arr[],int num,int left,int right,int k){ int group = num/5; int M[group]; for (int i = 0; i < group; i++) { sort(ar...

2020-04-06 23:34:27 259 1

原创 最近对问题

1.问题设p1=(x1,y1),p2=(x2,y2)…pn=(xn,yn)是平面n上n个点构成的集合S,最近对问你就是找出集合S中距离最近的点对。2.解析暴力法:在蛮力法实现最近点对问题中,将问题简化:距离最近的点对可能多于一对,找出一对即可,另外只考虑二维平面中的情况。用距离公式即可求分治法:分治法思想解决此问题时,首先考虑将最近对问题进行分治,设计其分治策略。将集合S分成两个子集S...

2020-03-30 21:56:27 748

原创 二分归并排序

1.问题归并排序是一种基于“归并”思想的排序方法,二分归并的原理是,将序列两两分组,将序列归并为n/2个组,组内单独排序,然后将这些组再两两归并,生成n/4个组,依次类推。2.解析3.设计void merge(int a[], int l1, int r1, int l2, int r2) { int i = l1, j = l2; int temp[maxn], index = ...

2020-03-23 21:30:45 422 1

原创 两种检索算法

问题在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=-1;(这里为了区分与下标0的区别改为了-1)解析如何在一个有序的数组中查找出一个元素,无外就几种情况,要么采用顺序查找,要么采用分治思想逐步排查或者使用散列值等进行查找。顺序查找没什么好解释的就是从数组第一个元素开始遍历,如果没有找到要找的就遍历到最后一个然后结束。二分查找...

2020-03-15 17:42:52 271

原创 最短路---Dijkstra&Floyd

还是老样子,先上图,说明思想和过程再上代码详细的分步解释算法图解今天就不手撸画图了,看到了一个很详尽并且很规整的图,直接拿来用。 在这个有向图中有6个顶点V0-V5。关于图的内容就不多说了背景故事也懒得编了就来说说这个图用Dijkstra的遍历过程吧。首先大家要明白Dijkstra的目的是为了解决单源最短路的问题也就是一个起点到各个点的最短路。在上图中,我们默认起点是V0点,我们希望每次...

2020-03-07 18:35:52 268

原创 最小生成树--Prime&Kruskal

算法图解对于最小生成树相信大家在上过数据结构以后都有所耳闻,最小生成树的概念在此就不再重复性的阐述了。对于最小生成树常用的算法有prime算法和kruskal算法。prime算法比较适用于稠密图kruskal算法比较适用于稀疏图具体原因将会在放核心算法的代码片时进行分析说明先来看看一张随便画出来的图片吧:Prime构建最小生成树的过程为 : 1–>2,2–>3,2–&gt...

2020-02-29 17:53:10 799

原创 Java去除掉文件夹中所有.java文件的注释和空行并输出到指定文件中

只需按照自己的需求修改 input和output的路径即可import java.io.*;public class SoftFileTest { public static void main(String[] args) throws IOException { File input = new File("D:\\项目开发\\实验室项目"); F...

2019-11-07 21:27:29 390

原创 最小生成树模板

int pre[111];int n,m;struct edge{ int from,to,cost;}E[111*111];void init(){ for(int i=0;i&lt;=n;i++) pre[i]=i;}int find(int x){ int r=x; while(pre[r]!=r) r=pre[r]; return r;}v...

2019-01-25 10:07:48 148

原创 线段树模板

线段树单点const int maxn = 500005 * 4; //线段树范围要开4倍struct Tree{ int l, r, sum, maxx;};Tree node[maxn]; //node[maxn]为线段树处理数组int a[maxn]; //a[maxn]为原数组void PushUp(int i){ node[i].sum = node[i &lt...

2019-01-25 09:04:15 145

转载 背包九讲

DD engi 背包九讲的个人整理写在前面这篇文章涵盖了dd_engi背包九讲的所有内容,基本框架相同,但加上了许多个人的理解、详细解释、代码实现与例题,去除了我认为没有多大用的伪代码替换成了好理解的代码,字母都加上了LaTeX LaTeXLaTeX,采用相同的变量,相信能让读者理解透彻,不用再翻那么多博客反复学习。其实我的码风Tab TabTab是两个字符的,为了适应CSDN CSDNCSD...

2019-01-20 14:48:58 502

原创 二分——奶牛过河

River HopscotchEvery year the cows hold an event featuring a peculiar version of hopscotch that involves carefully jumping from rock to rock in a river. The excitement takes place on a long...

2019-01-18 22:24:18 278

原创 Floyd算法模板

复杂度 o(n³)当n为100时 -&amp;gt;100万当n为1000时-&amp;gt;10亿(会爆炸的)#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;const int inf = 0x3f3f3f3f;const int maxn = 100;int map1[maxn][maxn];int u,v,w;int main(){ in...

2019-01-18 22:21:57 646

原创 二分搜索——Aggressive cows

Aggressive cowsFarmer John has built a new long barn, with N (2 &amp;lt;= N &amp;lt;= 100,000) stalls. The stalls are located along a straight line at positions x1,…,xN (0 &amp;lt;= xi &amp;lt;= 1,000,000,...

2019-01-18 22:21:39 139

原创 二分——4 Values whose Sum is 0

4 Values whose Sum is 0The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x C x D are such that a ...

2019-01-18 22:21:27 133

原创 Dijkstra模板

#include&lt;bits/stdc++.h&gt;using namespace std;const int maxn = 1010;const int inf = 0x3f3f3f3f;int map1[maxn][maxn];int dis[maxn];bool vis[maxn];int n,m;void dijkstra() { int i,j; memset...

2019-01-17 23:14:53 359

原创 快速幂模板

#include#include#include#includeusing namespace std;long long p = 1e9 + 7;//此处非必须long long qpow(long long a,long long b){long long res = 1;while(b&amp;gt;0){if(b&amp;amp;1){res = a;res = res%p;}b...

2019-01-16 22:20:12 112

原创 并查集模板

#include&amp;lt;cstring&amp;gt;#include&amp;lt;algorithm&amp;gt;#include&amp;lt;iostream&amp;gt;#include&amp;lt;cstdio&amp;gt;using namespace std;const int maxn = 1010;int fa[maxn];int find(int x){ return x == fa[x]

2019-01-16 22:19:54 106

原创 博弈论--巴什博奕

2人竞拍商品 ,起拍价为0;2人轮流加价(不能不加),你先起手出价码。如果最后一次加价&gt;=低价 那么那人获胜。条件:你个人很想赢。低价为m ,加价范围为[1-n];问:你有没有获胜的机会并输出你第一次加价可以获胜的钱数,如果不能获胜输出:You are ** 这都赢不了???题解:这题刚刚写的时候我们谁都不会博弈论 想的时候我们三人无限手撸枚举 疯狂讨论把头抓烂才找出了规律。如...

2018-12-24 00:04:25 230

原创 Lake Counting 搜索(水题)

Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 47206 Accepted: 23209DescriptionDue to recent rains, water has pooled in various places in Farmer John’s ...

2018-12-10 20:24:19 372

原创 滑雪 DP DFS

Michael喜欢滑雪。他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来表示每块地形。为了得到更快的速度,滑行的路线必须向下倾斜。例如样例中的那个矩形,可以从某个点滑向上下左右四个相邻的点之一。例如24-17-16-1,其实25-24-23…3-2-1更长,事实上这是最长的一条。Input输入文件 第1行: 两个数字r,c(1&lt; =r,c&lt; =100)...

2018-12-08 16:38:10 172

原创 N皇后个人实现的2种方式

相信大家对这个不陌生了 我也就再写一遍这是很经典的题目了题意描述:N皇后问题也是8皇后 换汤不换药在N*N的方格棋盘放置了N||8个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。(N&lt;=10;)输出:对应输入行的皇后的不同放置数量。 1:回溯法:#inclu...

2018-12-07 11:37:34 167

空空如也

空空如也

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

TA关注的人

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