- 博客(812)
- 资源 (2)
- 收藏
- 关注

原创 ACM模板二:树、图、并查集、DancingLink
类里面和宏定义处都有接口注释,因为宏不体现具体参数,所以注释以类里面的为准。所有代码放在一起是可以编译运行的,如果按照章来划分,最后一章是测试代码,其他任意一章都可以单独编译运行。宏定义代码:二,树状数组、线段树三,多叉树四,无向图五,有向图
2023-09-13 16:50:52
90

原创 ACM模板三:二分、字典树、字符串、几何、组合、DP
所有接口分两类GetSingleId、GetCombineId都需要创建对象去调用接口。其他所有接口都是在某个类中的static函数,我把函数名用小写开头,把类名::函数名用宏定义成新的函数名,大写开头。类里面和宏定义处都有接口注释,因为宏不体现具体参数,所以注释以类里面的为准。所有的代码依赖关系都只体现在类的继承关系中。所有代码放在一起是可以编译运行的,如果按照章来划分,除了几何依赖二分,最后一章是测试代码,其他任意一章都可以单独编译运行。///(1.1)类型计算///
2023-06-03 00:46:12
423

原创 OJ题解汇总
背景:在很长一段时间内,我都是保持着一个题目一篇博客的习惯。当博客数量超过1600之后,我开始对博客进行合并梳理。这个梳理主要是内容的总结,而不是分类,我的博客一直都是分类非常细致的。以前每一个OJ题解都可以搜索博客标题搜出来,现在由于合并了,就没有这个遍历了。为此,我写了本博客,用来导航我所有的OJ题解https://blog.csdn.net/nameofcsdn/article/details/109147261 所有博客DFS、BFS博客链接二分、三分博客.....
2021-01-08 01:02:34
11536

原创 所有博客导航
CSDN多年的使用经验告诉我,最朴素的整理方式才是最稳定最便于维护的,毕竟,实在是受够了CSDN过于频繁的格式更新和各种乱码。于是,2020年3月19日,我又重新整理了一遍,把这篇博客完全重写了。主要变化点是:把文章的链接都去掉了,只留下链接文本,而且把各种乱七八糟的缩进和项目列表都干掉了,只在每一个最深的目录统计文件数,免得更新的时候要维护很多数量的一致性,比较麻烦而且易错。2020年10月18日,因为CSDN恶心的限制,一篇文章不能超过64000字,所以我不得不用Markdown编辑器重写这篇博客。同
2020-12-29 01:13:28
8516
7

原创 C和C++的区别大赏
背景:我在大学学过C++,没有学C。到了公司,直接用C从事开发,虽然感觉C++应该都包含C语言的东西了,不过慢慢的还是发现了一些差异,所以,开启本系列博客,记录C和C++的差异。C++的语法几乎兼容了所有C语言的语法,唯一的例外就是C++没有变长数组。C和C++的区别(1)常量和只读变量、数组定义 https://blog.csdn.net/nameofcsdn/article/details/109271874C和C++的区别(2)结构体https://blog.csdn...
2020-11-27 10:38:36
1777
2

原创 五子棋人机对战完整代码
目录〇,前言一,五子棋棋盘二,五子棋比赛规则1,行棋顺序2,判断胜负三,重要棋型解释1,五连:2,活四:3,冲四:4,活三:四,禁手规则1,三三禁手2,四四禁手3,长连禁手五,代码解释1,棋子表示2,棋盘表示3,flat技术4,棋型判断和禁手判断4.1 活四4.2 冲四4.3 活35,AI算法6,AI的.........
2018-02-17 10:00:16
56357
94
原创 python读取控制鼠标键盘
pyautogui库命令:pip3 install pyautogui==0.9.50如果不指定版本,可能会在使用时报错: module 'pyscreeze' has no attribute 'locateOnWindow'
2023-09-23 09:20:07
294
原创 Opencv源码解析(2)算法
先是直方图统计,然后是对于纯色图片的特殊处理(直方图均衡结果等于原图),再是计算灰度变换表lut,最后把原图变成目标图。前两个参数是传2张图片,第三个是应用窗函数去除图像的边界效应,文档中推荐使用汉宁窗。前2个参数是输入输出图像的格式,接下来2个参数是核分离出来的行向量和列向量。前三个参数是输入图像、输出图像及深度,接下来2个参数是微分的阶。仿函数是根据灰度变换表lut,把原图变成目标图。算法没有重载,也没有重写,直接是父类的函数。继承DescriptorMatcher。灰度级HIST_SZ = 256。
2023-09-21 12:01:02
187
原创 公开游戏、基于有向图的游戏
m堆石子,两人轮流取.只能在1堆中取.取完者胜.先取者负输出No.先取者胜输出Yes,然后输出怎样取子.例如5堆 5,7,8,9,10先取者胜,先取者第1次取时可以从有8个的那一堆取走7个剩下1个,也可以从有9个的中那一堆取走9个剩下0个,也可以从有10个的中那一堆取走7个剩下3个.有一堆石子共有N个。每组测试数据的第一行有两个整数n和m (2
2023-09-09 15:00:16
727
原创 单调队列
单调队列是双端队列的拓展,支持尾部插入,双端删除,其中的数据始终维持单调性,从而队首就是所需的最值信息。尾部插入过程中,为了维持单调性,可能需要先执行尾部删除(对应强制单调栈)。和单调栈类似,单调队列用于处理一个数组,扫描数组时,依次尾部插入一个数。而队首的删除操作,由外部决定调用时机。
2023-08-29 17:24:16
198
原创 力扣OJ(2600+)
吃掉一颗谷子的时间可以忽略不计。解释:这个例子中,第一只老鼠吃掉第 2 和 3 块奶酪(下标从 0 开始),第二只老鼠吃掉第 0 和 1 块奶酪。输入:reward1 = [1,1,3,4], reward2 = [4,4,1,1], k = 2。解释:这个例子中,第一只老鼠吃掉第 0 和 1 块奶酪(下标从 0 开始),第二只老鼠不吃任何奶酪。2)第 3 个朋友将球传给距离他顺时针方向 4 步的玩家 —— 第 2 个朋友。3)第 2 个朋友将球传给距离他顺时针方向 6 步的玩家 —— 第 3 个朋友。
2023-08-28 16:17:59
307
原创 线搜索准则
α=0显然就满足Armijo准则,所以Armijo准则并不是充分条件。线搜索准则就是,研究步长满足什么样的条件下,可以收敛到最优解。Armijo准则一般不单独使用,而是作为其他准则的一部分。不合适的步长,要么导致无法收敛,要么导致收敛到非最优解。这一类算法可以理解为由2个部分组成:步长α、方向d。
2023-08-16 15:59:24
121
原创 双向循环链表、dancing links
构建一个m+1行n+1列的表格(即把0-1矩阵往上往左拓展一行一列),把所有的1表示成普通节点,忽略0,在第0行添加n+1个特殊节点,编号分别是0到n,其中0号是总head,1到n号是1到n列的列头节点,即空的dancing links有n+1个节点。特别地,我们希望可以 就地 完成转换操作。每个节点都记录了它上下左右四个节点的编号,第0行的节点编号是0到n,普通节点的编号是n+1,n+2......给定一个m行n列的0-1矩阵,选出若干行,使得选出的每2行之间没有在同一列的1,所有选出的1的总数为n。
2023-08-11 10:06:32
172
原创 C和C++的区别(6)字符串
cout<<str;return 0;2,string的赋值、计算长度、翻转int main()return 0;3,从string中取字符可以用数组形式,也可以用迭代器形式int main()cout<<*it;cout<<*it;return 0;输出:cae4,string的比较、连接int main()return 0;输出:str1<str2str2=str3abcdef。
2023-08-11 10:05:16
203
原创 Linux服务器映射到本地磁盘
帐号myname就是我们上面建立的samba帐号(同时也是Linux系统帐号),networkusername就是映射的帐号名(虚拟帐号),帐号 myname在我们访问共享目录时只要输入networkusername就可以成功访问了,但是实际上访问samba服务器的还是我们的myname帐号,这样一来就解决了安全问题。chown -R nobody. /home/john/share //设置共享目录归属为 nobody ///////////////////
2023-08-11 10:04:04
1022
原创 CSDN到底要多少积分才有排名(图解)
因为CSDN采取了新的排名机制,按活跃度算周排名,按历史总数据算总排名,所以周排名很低,总排名没太变。CSDN的排名是完全按照积分排的,只隔了22分而已,千里之外和2万名的差别就是卡在这个地方。因为做了大量的博客合并整理工作,所以博客数量减半,积分和总排名也受了影响,不过这都是虚的。2021年6月28日,有幸上了官方推荐名单,这一天有200多新用户关注了我。快一年过去了,因为不做开发了,所以这一年博客没怎么写了。2020年3月15日,突然发现去年有人打赏我了!又是半年过去了,几乎已经不再写博客了。
2023-08-11 10:02:08
129
原创 ACM输入总结
题目的样例只是一小部分测试数据,目的是为了更好地帮助你理解题意,以及了解对输出格式的要求等,因此通过了样例并不能够代表能通过所有的测试数据。只有通过了所有的测试数据才能得到“Accept”,也就是通过了这个题目。
2023-08-11 10:00:55
129
原创 puzzle(1311)《操作》点亮所有的灯
1,点操作:游戏规则中提到的操作,点击1个格子即为1次点操作2,点状态:一个格子如果已经点亮(彩色的)那么称为好的状态,如果未点亮(灰色的)那么称为坏的状态或者需要改变的状态。3,行邻居:第i行的2个行邻居是第i-1行和第i+1行。如果i=1或者n,那么它就只有1个行邻居4,(对第i(i<n)行进行的)往下行操作:对于第i行每个坏状态的格子,对在第i+1行中的那个邻居进行一次点操作。这样,第i行就复原了。
2023-08-11 09:59:26
133
原创 Monge矩阵
对一个m*n的实数矩阵A,如果对所有i,j,k和l,1≤ i<k ≤ m和1≤ j<l ≤ n,有 A[i,j]+A[k,l] ≤ A[i,l]+A[k,j] 那么,此矩阵A为Monge矩阵。(1)证明一个矩阵为Monge阵,当且仅当对所有i=1,2,...,m-1和j=1,2,...,n-1,有 A[i,j]+A[i+1,j+1] ≤ A[i,j+1]+A[i+1,j]证明对任何的m x n Monge矩阵,有f(1) ≤ f(2) ≤...≤ f(m)。
2023-08-11 09:57:32
937
原创 python下载m3u8的视频、合并ts文件
解析m3u8,获取其中的ts列表,多线程下载所有ts文件。全部下完之后,用ffmpeg合并成mp4。
2023-08-09 22:11:30
942
原创 裴蜀定理
裴蜀定理:若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。
2023-08-04 23:00:19
270
原创 全排列、字典序排列
就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的。就是将其所有成员以序列或线性顺序排列。修改,只允许使用额外常数空间。给定一个可包含重复数字的序列。给定一个不含重复数字的数组。返回所有不重复的全排列。
2023-08-02 00:42:29
347
原创 计算机网络
一,数据通信基础1,通信方式单工、半双工、双工2,信号和数据2种信号:正弦波(模拟信号)、光波(数字信号)正弦波+数字数据:3种调制方式(调幅,调频,调相)正弦波+模拟数据:采样定理光波+数字数据:4种编码光波+模拟数据:采样定理3,数字信号的编码方式(NRZ)、(RZ)、。其中 NRZ 分为 NRZ-L 和 NRZ-I 两种,分别叫做不归零电平编码、不归零反相编码(也叫不归零反向编码)。归零编码、不归零电平编码、不归零反相编码,每一种都有单极脉冲和双极脉冲2种形式。
2023-07-30 11:22:02
982
原创 网络加速技巧
这样,开了加速选项的每个人的电脑就充当一个跳点,为APP的网络做出一份贡献,每个人也享受别人的贡献,保障了下载速度。2023年7月27日亲测有用,开启优化速率之前是100k/s,开启后自己看。数据分割就是,一个文件,可以分成多份数据,无序下载,最后拼起来。多路路由就是,每一份数据都可以走不同的路径进行传输。主要应该是2个方面,一是数据分割,二是多路路由。(2)在APP的设置里面,把优化速率打开。人人为我,我为人人!
2023-07-27 22:50:23
367
原创 各种拉格朗日函数
要求的是部分拉格朗日函数的鞍点,但是实际上我们不用求导来求,而是迭代寻找鞍点的近似点。拉格朗日函数L(x,y,z,a) = f(x,y,z) + a * g(x,y,z)要求的是 增广拉格朗日函数的最值,它的最值就是原问题的最值的近似值。在极值点处一定有,L对4个变量的一阶偏导为0,从而求出4个变量。求:min f(x) + g(Ax),其中f和g 是凸函数。要求的是拉格朗日函数的驻点,不一定是极值点,也可能是鞍点。求f(x,y,z)的极值,s.t.g(x,y,z)=0。
2023-07-26 17:34:12
323
原创 达芬奇密码
每个玩家执有一定的数字牌,玩家需隐藏你的数字密码,猜透对手的密码,推测可能的答案,打败对手。2. 你指出任何其他玩家的一张牌,然后“猜”出它的数字,比如“黑5”,“白6”等等。a. 如果你猜对,则对手把这张牌在原来的位置摊开,让大家都看到。b. 如果你猜错,你要把你刚摸到的牌摊开,然后面朝上按前面的数字大小规则放回到你。3. 把抓上来的牌按数字大小从左至右排列好,数字一样则黑的放在白的左边。1. 在你的回合中,你任意抓一张牌,放在一边,确保只有你看到。如果你是唯一一个还有立牌的玩家,你赢了!
2023-07-26 00:55:59
253
原创 拉密
玩家轮流进行游戏,每次轮到自己时玩家必须打牌或弃权,然后从中央的牌堆中摸一张牌回来。游戏中玩家打牌的原则是,每次打完,公共堆都可以划分成若干牌组。所以这个游戏的精髓在于联动多个牌组进行排列组合,有一点计算量。每位玩家起手从这些牌中随机抽出十四张,剩下的面朝下堆到场中。和扑克牌一样,一套是52张,4个花色,每个花色1到13。拉密数字牌由106张塑料牌组成,包含2套牌和2张万能牌。一张是可以指定成暖色任意牌,一张可以指定成冷色任意牌。所有打出去的牌都放一起作为公共堆,初始公共堆为空。拉密,又称以色列麻将。
2023-07-25 22:58:29
330
原创 博弈DP
玩家1从数组任意一端拿取一个分数,随后玩家2继续从剩余数组任意一端拿取分数,然后玩家1拿,……每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。如果一开始Alice取了一堆,Bob取了两堆,然后Alice再取两堆。如果他选择2(或者1),那么玩家2可以从1(或者2)和5中进行选择。最终,玩家1(234分)比玩家2(12分)获得更多的分数,所以返回 True,表示玩家1可以成为赢家。给定一个表示分数的数组,预测玩家1是否会成为赢家。所以,玩家1的最终分数为 1 + 2 = 3,而玩家2为 5。
2023-07-16 11:32:01
353
原创 多元函数微分
1-78,梯度多元函数梯度:方向导数是梯度在L方向上的投影梯度方向是f增长最快的方向9,极值点处若存在偏导,则该点为驻点,该点处的各偏导值为010, 二阶偏导和极值二元函数:多元函数的二阶偏导用Hessian矩阵表示:11-12
2023-06-30 15:32:36
283
原创 算法模板互链整理
Multi*** 快速***算法 https://blog.csdn.net/nameofcsdn/article/details/111058750。Union 力扣并查集 https://blog.csdn.net/nameofcsdn/article/details/128788885。Union 并查集 https://blog.csdn.net/nameofcsdn/article/details/115123576。GetNumFromId Fmaxrig 力扣496. 下一个更大元素 I。
2023-06-28 00:21:24
238
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人