<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ring__的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ring__</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ring__]]></copyright><item><title><![CDATA[产生死锁的原因和必要条件]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/82657590</link><guid>https://blog.youkuaiyun.com/ring__/article/details/82657590</guid><author>ring__</author><pubDate>Fri, 15 Oct 2021 10:33:38 +0800</pubDate><description><![CDATA[死锁：多个进程在运行过程中因争夺资源而造成的一种僵局，当进程处于这种僵持状态时，若无外力作用，他们都无法再向前推进。
	产生死锁的原因（两点）：

竞争资源：可剥夺和非剥夺性资源；竞争非剥夺性资源；竞争临时性资源

可剥夺性资源：某类进程获得这类资源后，该进程可以再被其他进程或系统剥夺，比如CPU、主存
	不可剥夺性资源：当系统把这类资源分配给某进程后，再不能强行收回，只能在进程用完后自行释放，如...]]></description><category></category></item><item><title><![CDATA[linux终端常用命令]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/114301267</link><guid>https://blog.youkuaiyun.com/ring__/article/details/114301267</guid><author>ring__</author><pubDate>Wed, 03 Mar 2021 10:28:57 +0800</pubDate><description><![CDATA[1、查看计算机的硬件架构 uname -m
]]></description><category></category></item><item><title><![CDATA[笔记本电脑win10系统使用笔记]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/114271276</link><guid>https://blog.youkuaiyun.com/ring__/article/details/114271276</guid><author>ring__</author><pubDate>Mon, 01 Mar 2021 20:49:22 +0800</pubDate><description><![CDATA[1、截图快捷键

截取当前屏幕任意位置，截图不可编辑win+shift+s

2、打开终端

win+r -&gt; 在弹出的窗口中输入cmd或者powershell


]]></description><category></category></item><item><title><![CDATA[高效寻找某个范围内的全部素数]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/113636343</link><guid>https://blog.youkuaiyun.com/ring__/article/details/113636343</guid><author>ring__</author><pubDate>Thu, 04 Feb 2021 12:37:23 +0800</pubDate><description><![CDATA[素数：如果一个数只能被1和它本身整除，那么这个数就是素数。2是最小的素数。

问题描述：寻找[0,n]之间的全部素数。

代码实现：


#include&lt;iostream&gt;
#include&lt;vector&gt;

using namespace std;

#include&lt;iostream&gt;
#include&lt;vector&gt;

using namespace std;

vector&lt;bool&gt; judgePrimes(int n) {
    v]]></description><category></category></item><item><title><![CDATA[霍夫丁不等式]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/113265035</link><guid>https://blog.youkuaiyun.com/ring__/article/details/113265035</guid><author>ring__</author><pubDate>Wed, 27 Jan 2021 19:21:14 +0800</pubDate><description><![CDATA[问题描述：罐子里面有绿、黄N颗珠子，黄色珠子占比为。假设从罐子里取样出绿、黄n颗珠子，其中黄色珠子占比为。



Hpeffding Inequality：
]]></description><category></category></item><item><title><![CDATA[图的遍历-深度优先&&广度优先]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/113182210</link><guid>https://blog.youkuaiyun.com/ring__/article/details/113182210</guid><author>ring__</author><pubDate>Tue, 26 Jan 2021 16:11:05 +0800</pubDate><description><![CDATA[问题描述：给定如下所示图，分别给出深度优先和广度优先规则下的遍历结果：



1、算法描述

深度优先搜索(depth-first search，DFS)：类似于树的先根次序遍历，尽可能先对纵深方向进行搜索。选取一个未访问的顶点作为源点，访问并标记顶点，递归地深搜遍历邻接到的其他顶点，重复上述过程直至从有路径可达的顶点都已经被访问过。再选取其他未访问顶点作为源点做深搜，直到图的所有顶点都被访问过。

广度优先搜索(breadth_first search，BFS)：从图中的某个顶点出发，访问并标记该顶点后，]]></description><category></category></item><item><title><![CDATA[图的遍历-拓扑排序]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/113096788</link><guid>https://blog.youkuaiyun.com/ring__/article/details/113096788</guid><author>ring__</author><pubDate>Mon, 25 Jan 2021 12:07:02 +0800</pubDate><description><![CDATA[问题描述：修一门课程之前必须修完该课程的先修课程，给出一个可行的选课顺序。（可能会有几种不同方案）

课程代号
			v1
			v2
			v3
			v4
			v5
			v6
		先修课程
			
			v1、v3
			v1
			v1、v6
			v3、v4、v6
			
		





以上问题可以抽象为如下有向无环图的拓扑排序结果：



上图的邻接表为：



1、概念

拓扑排序（topological sort），将一个有向无环图（Directed Acyclic Grap...]]></description><category></category></item><item><title><![CDATA[单源最短路径-Dijkstra算法]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/113095913</link><guid>https://blog.youkuaiyun.com/ring__/article/details/113095913</guid><author>ring__</author><pubDate>Sun, 24 Jan 2021 20:19:49 +0800</pubDate><description><![CDATA[参考：https://blog.youkuaiyun.com/qq_35644234/article/details/60870719

问题描述：从图中的某个顶点出发到达其余任意一个顶点所经过的边的权重和最小的一条路径，称为单源最短路径。

以下图为例：



mat_adjc（邻接矩阵）

1、Dijkstra算法介绍

特点：使用了广度优先搜索解决带权有向图或者无向图的单源最短路径问题。

思路：采用的是贪心策略，声明一个数组dis来保存指定源点到各个顶点的最短距离、路径以及该顶点有没有被标记过（加入集合V）。指]]></description><category></category></item><item><title><![CDATA[最短路径-Floyd算法]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/113060865</link><guid>https://blog.youkuaiyun.com/ring__/article/details/113060865</guid><author>ring__</author><pubDate>Sat, 23 Jan 2021 21:31:14 +0800</pubDate><description><![CDATA[参考：https://blog.youkuaiyun.com/qq_35644234/article/details/60875818

问题描述：给定带权图G=&lt;V,E&gt;，其中每条边（）上的权是一个非负实数。计算从任意一个源点s到所有其他各节点的最短路径。



以上所示图的邻接矩阵如下：



1、Floyd算法介绍

特点：弗洛伊德算法是解决任意两点间的最短路径的一种算法，可以正确处理有向图或无向图或负权图（但不可存在负权回路）的最短路径问题。

算法思路：引入两个二维矩阵dist和path，矩阵di]]></description><category></category></item><item><title><![CDATA[简单字符串匹配1]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/112515140</link><guid>https://blog.youkuaiyun.com/ring__/article/details/112515140</guid><author>ring__</author><pubDate>Tue, 12 Jan 2021 11:52:30 +0800</pubDate><description><![CDATA[问题描述：

// # // 给定一个由字母和空格符构成的字符串a，先随机删除其中的一些空格符，再随机增加一些空格符，变成字符串b。现已知字符串b的一个片段b[i:j]，这个片段的首尾皆为字母（非空格符）。请找出该片段在a中相应的片段a[m:n]。例：输入a = 'Hello world', b = 'H e llo w or ld', i = 2, j = 11。输出m =1, n =8。


#include &lt;iostream&gt;
using namespace std;
int main(]]></description><category></category></item><item><title><![CDATA[积分直方图的实现(Integral Histogram)]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/112480227</link><guid>https://blog.youkuaiyun.com/ring__/article/details/112480227</guid><author>ring__</author><pubDate>Mon, 11 Jan 2021 17:54:10 +0800</pubDate><description><![CDATA[题目描述



如图所示，左侧为一幅灰度图像I，其积分图如右图所示，积分图与左侧图像等大（宽=6，高=3），积分图中第（i,j）个元素的元素值Integral(i, j)，等于原图像I中第（i,j）个像素左上角所有像素的像素值之和，如图中积分图中Integral(2,4)= 16 = 2+1+2+3+3+2+1+2 =I(1,1) + I(1,2) + I(1,3) + I(1,4) + I(2,1) + I(2,2) + I(2,3) + I(2,4)；

类似地，一幅图像I的积分直方图H的定义如下：..]]></description><category></category></item><item><title><![CDATA[寻找经过节点权重之和最大的路径]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/112307023</link><guid>https://blog.youkuaiyun.com/ring__/article/details/112307023</guid><author>ring__</author><pubDate>Thu, 07 Jan 2021 12:47:16 +0800</pubDate><description><![CDATA[题目描述：

假设现在有一个有向无环图，每个节点上都带有正数权重。我们希望找到一条最优路径，使得这个路径上经过的节点的权重之和最大。
输入：n个节点，m个路径，起点
输出：最优路径的权重值之和
举例：
3个节点：
A 1
B 2
C 2
3条路径：
A-&gt;B
B-&gt;C
A-&gt;C
起点：
A
输出：5 （最优路径是 A-&gt;B-&gt;C ， 权重之和是 1+2+2=5）
附加问题：我们要求的输入是有向无环图，但是没人知道实际使用的时候会有什么数据输入进来，如何避免输入了带环路的图导致.]]></description><category></category></item><item><title><![CDATA[c++二维数组按照指定规则排序]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/112285582</link><guid>https://blog.youkuaiyun.com/ring__/article/details/112285582</guid><author>ring__</author><pubDate>Wed, 06 Jan 2021 17:27:45 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
#include &lt;vector&gt;
#include&lt;algorithm&gt;
using namespace std;

int main() {
    vector&lt;vector&lt;int&gt;&gt; vec = {
        {2,3}, {1,8}, {5,4}, {6,4}, {5,2}, {6,7}, {5,5}
    };
    sort(vec.begin(), vec.end(), [](c.]]></description><category></category></item><item><title><![CDATA[c++遍历map]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/111779178</link><guid>https://blog.youkuaiyun.com/ring__/article/details/111779178</guid><author>ring__</author><pubDate>Sun, 27 Dec 2020 12:13:45 +0800</pubDate><description><![CDATA[c++遍历map


# include &lt;iostream&gt;
# include &lt;unordered_map&gt;
# using namespace std;

int main() {
    unordered_map&lt;char, int&gt; ma = {
            {'a',1},
            {'b',2},
            {'c',3}};
    // 法一。c++11
    for (auto &amp;p : ma) ]]></description><category></category></item><item><title><![CDATA[win下文本文件中的换行符与linux下文本文件中的换行符不一致问题]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/109360577</link><guid>https://blog.youkuaiyun.com/ring__/article/details/109360577</guid><author>ring__</author><pubDate>Thu, 29 Oct 2020 15:18:52 +0800</pubDate><description><![CDATA[win下文本文件中的换行符与linux下文本文件中的换行符不一致问题

参考：https://blog.youkuaiyun.com/lovelovelovelovelo/article/details/79239068

unix体系中，换行符为"\n"，而win体系中，换行符为"\n\r"。这种差异导致，win当中的文本文件在linux中打开，在每行结尾会多出一个^M符号(直接看不出来的使用cat -A xxx.txt查看)，而linux当中的文本文件在win当中打开的话，所有文字变为一行。

如何去除win中tx]]></description><category></category></item><item><title><![CDATA[c++ 结构体重载==]]></title><link>https://blog.youkuaiyun.com/ring__/article/details/108863350</link><guid>https://blog.youkuaiyun.com/ring__/article/details/108863350</guid><author>ring__</author><pubDate>Tue, 29 Sep 2020 10:19:00 +0800</pubDate><description><![CDATA[c++ 结构体重载==


struct bbox {
    float x, y, w, h;
    //重载==运算符，相等返回1，不等返回0
    bool operator==(const bbox &amp;p) {
        return (x==p.x &amp;&amp; y==p.y &amp;&amp; w==p.w &amp;&amp; h==p.h);
    }
};
int main(int argc, char const *argv[]) {
    bbox a]]></description><category></category></item></channel></rss>