![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
心得浅谈
个人笔记
程序猿的探索之路
走好人生中的每一步路!
展开
-
c++中 #if define ... #endif 用法
当第二次包含headfile_1.h时,前面一次已经定义了_HEADFILE_1_H,条件为假,#ifndef _HEADFILE_1_H和#endif之间的代码也就不会再次被包含,这样就避免了重定义。一般地,假如有一个C源文件(如sourcefile.cpp),它包含两个头文件(如headfile_1.h和headfile_2.h),而头文件headfile_2.h又包含了headfile_1.h,则最终的效果是该源文件包含了两次headfile_1.h。注:以上三种形式中#else不是强制的,可省略;原创 2021-09-23 15:05:33 · 903 阅读 · 0 评论 -
win10 笔记本 右下角出现 天气的解决办法
任务栏点击鼠标右键,在新闻和兴趣里可以选择关掉原创 2021-06-10 15:37:53 · 3564 阅读 · 0 评论 -
PAC模式和全局模式
众所周知,传统的威屁恩有一大弊端,即:只能进行全局模式代理,这样情况下,虽然可以代理,但打开国内网站速度会变慢;SS不但支持全局模式,同时也支持PAC模式(智能分流),这样情况下,既可以代理,也不会影响国内网站打开速度!PAC模式和全局模式PAC模式也就是智能分流模式,根据规则去匹配你访问的网站,国外网站走代理,国内网站不走代理,非常智能;优点:节省流量,国内网站依旧走本地网络,速度快,绝大部分国外网站都走代理,速度也快。 缺点:少部分国外网站会不经过代理,不能起到加速效果,甚至.转载 2021-03-19 17:58:03 · 40289 阅读 · 2 评论 -
存在空格的表达式求值
时间限制: 3000ms |内存限制: 65535KB难度: 4描述ACM队的mdd想做一个计算器,但是,他要做的不仅仅是一计算一个A+B的计算器,他想实现随便输入一个表达式都能求出它的值的计算器,现在请你帮助他来实现这个计算器吧。比如输入:“1+2/4=”,程序就输出1.50(结果保留两位小数)输入第一行输入一个整数n,共有n组测试数据(n<10)。每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式,每个运算式都是以“=”结束。这个表达式里只包含+-*/...原创 2021-03-09 15:19:07 · 268 阅读 · 0 评论 -
win10笔记本WLAN已关闭,无法打开,解决办法
问题:or方案:FN+F4 即可解决。原创 2021-03-03 21:07:03 · 18816 阅读 · 16 评论 -
二分图求最大匹配的简单实现
二分图实现起来很容易,只不过需要多层次考虑,先开始的谁都不用考虑,后面开始的需要结合前面已经匹配的结果进行考虑。测试程序:#include<stdio.h>#include<string.h>#include<iostream>using namespace std;int n,m;int sum=0;int map[100][100];int match[100];int book[100];int dfs(int step){.原创 2021-02-09 01:18:23 · 249 阅读 · 0 评论 -
图的割点和割边
图的割点问题:先用邻接矩阵走一波:测试程序:#include<stdio.h>#include<iostream>using namespace std;int map[100][100];int num[100];int low[100];int n,m;int sum;int root;int flag[100];void dis(int cur,int father){ int child=0; sum++; .原创 2021-02-06 23:34:51 · 855 阅读 · 0 评论 -
求最小生成树( 生长法 克鲁斯卡尔算法、近水楼台先得月法 Prim)
说在前面的话:如果所有的边权都不相等,那么求得的最小生成树是唯一的。生长法(Kruskal algorithm)生长法(克鲁斯卡尔算法)是一步步地将森林中的树进行合并。之所以叫他生长法,是因为它算法思想包含一个从小到大的过程。首先按照边的权值进行从小到大排序,然后从小到大开始选边,注意不能构成回路,逐个判断后加入到生成树中,直到加入了n-1条边为止。测试程序:#include<stdio.h>#include<string.h>#inclu...原创 2021-02-04 19:59:17 · 811 阅读 · 0 评论 -
排序算法为什么要求稳定性
eg.一个班的学生已经按照学号大小排好序了,我现在要求按照年龄从小到大再排个序,如果年龄相同的,必须按照学号从小到大的顺序排列。那么问题来了,你选择的年龄排序方法如果是不稳定的,是不是排序完了后年龄相同的一组学生学号就乱了,你就得把这组年龄相同的学生再按照学号拍一遍。如果是稳定的排序算法,我就只需要按照年龄排一遍就好了。这样看来稳定的排序算法是不是节省了时间。稳定性的优点就体会出来了...原创 2021-02-03 19:45:33 · 1669 阅读 · 0 评论 -
并查集
并查集在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中。其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在比赛规定的运行时间(1~3秒)内计算出试题需要的结果,只能用并查集来描述。并查集是一种树型的数据结构,用于处理一些不相原创 2021-02-03 13:13:02 · 129 阅读 · 0 评论 -
(二叉树下)建堆、堆实现优先队列、堆排序、用堆实现的一种比快排时间复杂度还低的算法
满二叉树:树高为h且 结点总数完全二叉树:树高为h且 结点总数原创 2021-01-31 23:29:58 · 205 阅读 · 0 评论 -
最短路算法:插点法 Floyd、边松弛法 Dijkstra、点松弛法 Bellman_Ford、队列加速下的点松弛法SPFA
说在开头的话:其实这些最短路径的算法,包括常见的插点,边松弛(因为说他们的名字和他们的算法思想联系不起来,所以我都这样称呼,官方称呼是floyddijstra),他们就提出的时候的思想来定义他们的优缺点,但是编程又不是单纯的实现,如果想避免它的缺陷,完全可以加入自己需要的判定方法来避免它们的缺陷。并不是说,非黑即白,硬给他们划阵营。这样来总结更客观一些,因为我发现编程的时候可以既使用这个算法,又可以避免它本身的缺陷。介绍几个概念:负权回路:在一个图里每条边都有一个值(有正有负)如果..原创 2021-01-31 15:50:36 · 2358 阅读 · 1 评论 -
最优算法的意义
很多算法,发出来的时间复杂度一般是最优程序,优化最彻底(目前为止),即时间最快,空间占用最少。它们一般是由最初的思路作为基础,经过多次优化和改进得到的最终结果。优化对于程序来说,至关重要,它代表着科技的进步。所以,最优秀的程序才是最重要的。...原创 2021-01-31 12:49:48 · 737 阅读 · 0 评论 -
邻接表用数组来实现的思路
测试程序#include<stdio.h>#include<string.h>#include<iostream>using namespace std;int u[100],v[100],w[100];int first[100],next[100];int main(){ int n,m; scanf("%d %d",&n,&m); for(int i=1; i<=m; i++) {...原创 2021-01-30 17:24:54 · 251 阅读 · 0 评论 -
邻接矩阵和邻接表
邻接矩阵用来存储边多的图,一般用在稠密图邻接表用来存储边少的图,一般用在稀疏图原创 2021-01-30 16:37:26 · 313 阅读 · 0 评论 -
边松弛法解决单源最短路
边松弛法空间复杂度 O(M) 时间复杂度O((M+N)logN)适用于稠密图(顶点一定的情况下,边越多越划算)存在负权边的情况下,不能算出最短路径注释:N:图中顶点个数M:图中边的个数...原创 2021-01-30 14:28:20 · 163 阅读 · 0 评论 -
Floyd 可以在存在负权边的图中应用,求得多源最短路径;存在负权回路的图中无法求得多源最短路
很多人认为插点法不实用负权回路,这种说法其实不正确。原创 2021-01-29 14:34:12 · 897 阅读 · 0 评论 -
new关键字来创建c++中一维二维三维的动态数组及其相应的删除方法
一、C++创建一维数组type *p = new type [N] type是指具体的数据类型, N代表的是一维数组的列数 每次使用new后都要释放 delete[] p1; 二、C++创建二维数组 一般的格式:type (*p)[N] = new type [][N] type是指具体的数据类型, N代表的是二维数组的列数另一种格式:不需要写列数当然在每次使用完动态数组后,需要将其释放#include<iostream>#include<s原创 2021-01-01 21:49:15 · 647 阅读 · 0 评论 -
螺旋矩阵之(二) 进阶版的螺旋矩阵
更新于2020.6.22 20:53对于一些同学问我的问题,我做出回答问题一:n*m矩阵怎么写?#include<stdio.h>#include<stdlib.h>#include<string.h>int num[20][20];int main() { int N; scanf("%d",&N); while(N--) { int n,m; scanf("%d %d",&n,&m); int i,j;原创 2020-06-23 17:35:44 · 395 阅读 · 0 评论 -
IE浏览器复制网址链接变成标题的解决办法
说在开头的话:出错的原因是之前下载了QQ浏览器和网址导航(qq勋章墙),卸载了以后,还是对IE浏览器设置造成了改动。打开浏览器设置选项,选中共享、复制与粘贴将URL复制和粘贴格式默认中的链接改为纯文本就好。...原创 2020-11-29 11:20:40 · 2825 阅读 · 0 评论 -
通过吴恩达作业里识别猫的程序——了解矩阵降维的原理
这是资料:吴恩达作业里识别猫的程序我经过测试发现:这俩输出完全不一样,不就是一个降维么,之前是四维,现在是二维,怎么数据不一样了呢?我通过思考,发现经过转置以后,列数是图片数,也就是说,每一列都有64*64*3的像素值,每一列都代表一张图片。那么我将i换了正确的方向,发现输出一样。这就好了:...原创 2020-11-25 12:06:58 · 234 阅读 · 0 评论 -
linuxmint 个人心得笔记
system reports 是检测系统更新的工具system snapshots是在update manager 里面的editdpkg -i 文件名.deb 可以安装.deb文件(该文件依赖关系已经被安装)原创 2020-11-15 11:28:56 · 173 阅读 · 0 评论 -
进入BIOS修改启动项的快捷键
进入BIOS修改启动项:将制作好的启动盘连接电脑然后重启系统不断按 F2/F8/F12 这类按钮 ,按理说这可以让你成功进入BIOS里。原创 2020-11-14 20:23:50 · 772 阅读 · 0 评论 -
分区助手安装时提示需要删除以前版本才能安装的解决办法
1、找到分区助手的安装bai目录并删除。2、找到du“开始”,输入命zhi令“regedit”(以管dao理员的身份进行)3、找到以下路径:“HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\AomeiPartition Assistant_is1” 或者“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\原创 2020-11-13 20:19:43 · 1370 阅读 · 0 评论 -
为什么有时python在输出图像像素值的时候会出现一行三列的数据?
在python输出图像像素值的时候,有时候会出现一行三列的数组数据(如下),我之前c/c++中的学习过程中培养了惯性思维,认为应该是先输出行,再输出列,这样搞的我很懵。原因是,python对数组的输出遵从,从后到前的规则,先输出最后方括号内下标指定的数据,输出完以后,进行到前一个方括号内,[0][0][1][0]...依次进行。需要注意的是最后方括号内指的是不同的像素通道(不懂得可以去查),所以输出是这样的方式。其中test_set_x_orig指的就是np.array(H5["test_s原创 2020-11-13 11:06:59 · 455 阅读 · 0 评论 -
机器学习——精确率(精度)、召回率、漏检率的计算方法
两组数据,其中一组叫上部,另一组叫下部。上部249个数据,下部499个数据。上部中每一个都可以在下部中找到与它匹配的,关系是一对一,下部有一些数据是多余的。我现在设计实验,返回249组数据,每组:有前一,前五,前十,前十五四种情况。只看前一的,有173组正确。只看前五,有221个正确。只看前十,有229个正确。只看前十五,有233个正确的。现在要统计它们的精度,召回率,漏检率。注释:其实这三个名词儿就已经体现出它这个东西了,准确率那肯定就是都是对的,就是检测出来都是对的那些数量总数比;精确就是在它检原创 2020-08-22 21:52:27 · 9537 阅读 · 0 评论 -
如何删掉“分节符(下一页)
解决如何删掉“分节符(下一页)”,都选不中,怎么删掉的问题1)没有显示分节符的要在文bai件-选项-显示-显示所有du格式标记;2)启zhi用大纲模式,在dao大纲模式下选中要删的分节符,然后Delete键;3)20版office中分节符及所有标记、文字表格只要占据一行在最左侧有个小圆圈,点选小圆圈也可快速准确选中标记、行落。...原创 2020-06-29 11:38:56 · 4391 阅读 · 0 评论 -
浅谈 c++中的内存存储
在C、C++中,通常可以把内存理解为4个分区:栈、堆、全局/静态存储区和常量存储区。下面我们分别简单地介绍一下各自的特点。1)栈 通常是用于那些在编译期间就能确定存储大小的变量的存储区,用于在函数作用域内创建,在离开作用域后自动销毁的变量的存储区。通常是局部变量,函数参数等的存储区。他的存储空间是连续的,两个紧密挨着定义的局部变量,他们的存储空间也是紧挨着的。栈的大小原创 2017-07-07 09:17:07 · 813 阅读 · 0 评论 -
详细喷喷数组和指针
指针的内存布局先看下面的例子:int *p;在32 位系统下,不管什么样的指针类型,其大小都为4byte。可以测试一下sizeof(void *)。int *p = NULL 和*p = NULL 有什么区别?我们先看下面的代码:int *p = NULL;这时候我们可以通过编译器查看p 的值为0x00000000原创 2017-07-13 17:24:20 · 317 阅读 · 0 评论 -
c++预定义类型输入输出的格式控制
1 用流成员函数进行输入输出格式控制#includeusing namespace std;int main(){ cout cout.width(10); //设置域宽为10位 cout cout cout cout cout.fill('&'); //设置填充字符’&原创 2017-07-12 21:57:26 · 1551 阅读 · 0 评论 -
指针的那些事
关于指针,大家都不陌生,无论学习c,c++亦或者其它编程语言,它都是不可或缺的。但是指针的定义 指针的用法 等等各种问题。我们都必须弄清楚,不能让他阻碍我们前进的步伐;先说int* p; 这里有必要说明一下 int* 表示的定义一个指向int 类型的指针变量; 该变量内存里是所指对象的地址,用*指针运算符 即 取值符 取出指针变量p所指的内存空间里的数值(内容)。原创 2017-03-07 20:45:43 · 236 阅读 · 0 评论 -
关于缓冲区文件系统和非缓冲区文件系统浅谈
目前C 语言所使用的磁盘文件系统有两大类:一类称为缓冲文件系统,又称为标准文件系统;另一类称为非缓冲文件系统。缓冲文件系统的特点是:系统自动地在内存区为每一个正在使用的文件开辟一个缓冲区。从磁盘向内存读入数据时,则一次从磁盘文件将一些数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送给接收变量;向磁盘文件输出数据时,先将数据送到内存中的缓冲区,装满缓冲区后才一起送原创 2017-02-27 17:25:11 · 1573 阅读 · 0 评论 -
c++中怎么控制浮点型小数点后输出的位数
关于这个问题 涉及到的是流的格式化大家都知道 关于c++的小数输出 小数点后面的尾数全部省略,那么该怎么办呢?我们需要了解一部分关于c++输出时格式的知识首先 需要有#include这个头文件,因为它是输出输出流的格式控制其次例如 double sum=10; cout其中setiosflags(ios::fixed)不要写错 它与后面的setpr原创 2017-02-23 20:45:37 · 18295 阅读 · 1 评论 -
浅谈C++中的类所占内存
类所占内存的大小是由成员变量(静态变量除外)决定的,成员函数(这是笼统的说,后面会细说)是不计算在内的。摘抄部分: 成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。所谓成员函数只是在名义上是类里的。其实成员函数的大小不在类的对象里面,同一个类的多个对象共享函数代码。而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是原创 2017-07-07 09:28:48 · 332 阅读 · 0 评论 -
一文说尽C++赋值运算符重载函数(operator=)
一文说尽C++赋值运算符重载函数(operator=)写在前面: 关于C++的赋值运算符重载函数(operator=),网络以及各种教材上都有很多介绍,但可惜的是,内容大多雷同且不全面。面对这一局面,在下在整合各种资源及融入个人理解的基础上,整理出一篇较为全面/详尽的文章,以飨读者。正文:Ⅰ.举例例1#include#includestr原创 2017-07-10 10:41:24 · 442 阅读 · 0 评论 -
由c#程序中的static Main() 浅谈 static的含义
static三种用法:1.用于变量前。表示每次重新使用该变量所在方法、类或自定义类时,变量的值为程序这次运行最后一次为变量赋值时的值,这个方法称为静态函数:private void s(){static int a=1;a++;}方法第一次调用结束后a在内存内值为2;2.在方法(函数)前用static修饰,表示此方法为所在类或所在自定义类所有,而不是这个类的实例所有,这个方法称为静态方法:原创 2017-07-27 17:37:24 · 484 阅读 · 0 评论 -
谈谈ArrayList类型
1、什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:动态的增加和减少元素实现了ICollection和IList接口灵活的设置数组的大小2、如何使用ArrayList 最简单的例子:ArrayList List = new ArrayList();for( int原创 2017-07-27 19:23:06 · 1264 阅读 · 0 评论 -
螺旋矩阵之(一)c语言简单实现及基本构思( 由内向外螺旋矩阵(逆序螺旋矩阵)、由外向内螺旋矩阵(正序螺旋矩阵)、字母螺旋矩阵、n阶螺旋矩阵、N*M | n*m阶螺旋矩阵等)
对于螺旋矩阵,说实话,我也是第一次接触。哈哈,刚开始的时候真心不知道怎么转圈圈,曾经想开一个二维方向数组(int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}};)//利用这个神奇的家伙可以配合二维存储数组num[ ][ ],光荣的实现右下左上的全图搜索,如果把num数组存储空间当作一个图的话,哈哈。不过很可惜,无论是用递归回溯还是直接硬怼,都不可能转着...原创 2019-03-17 10:09:33 · 6391 阅读 · 25 评论 -
codeblocks 中文输出乱码 心得浅谈!
最近也碰到这个问题了,研究了一下如下:codeblocks默认源代码文件编码根据OS而定,编译时编码UTF-8,那么问题就来了在你不更改任何codeblocks配置时:在WINDOWS中:源代码——WINDOWS-936(即GBK) 编译后文件默认UTF-8 而输出windows会按GBK来解释,所以从GBK->UTF-8->GBK就是乱码;在LINUX中:默认是UTF-8,自...原创 2019-03-24 10:30:44 · 1519 阅读 · 0 评论 -
u盘遭受蠕虫 特洛伊木马攻击文件隐藏的解决办法
1、“win+R”打开“运行”窗口,输入 cmd2、进入到命令模式,切换到U盘路径;3、先把被病毒隐藏的文件及目录显示出来。在命令框中输入: attrib -s -h -r /s /d 按下回车键确认;4、再显示所有被隐藏的可执行文件: attrib -s -h -r /s /d *.exe5、最后删除所有的快捷方式,在命令窗口中输入: d...原创 2019-03-24 10:39:17 · 4709 阅读 · 1 评论