自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 txt转json格式_Python

import jsondic = {}with open("train.txt", "r", encoding="utf8") as f: merge_line = "" for line in f: line = line.strip() merge_line += line if len(merge_line) > 500: dic[merge_line] = 1 merge_li

2022-05-11 17:17:26 1272

原创 个人_图床

2022-01-11 22:52:51 192

原创 C# 数组上与C/C++不同的地方

C# 数组上与C/C++不同的地方目录C# 数组上与C/C++不同的地方二维数组初始化访问三维数组交错数组初始化实例参数数组实例Array类属性二维数组C#的二维数组更像是矩阵。初始化int [,] a = new int [3,4] { {0, 1, 2, 3} , /* 初始化索引号为 0 的行 */ {4, 5, 6, 7} , /* 初始化索引号为 1 的行 */ {8, 9, 10, 11} /* 初始化索引号为 2 的行 */};访问int val =

2021-12-29 19:09:42 197

原创 C#使用string格式化日期

String.Format方法DateTime dt = new DateTime(2017,4,1,13,16,32,108);string.Format("{0:y yy yyy yyyy}",dt); //17 17 2017 2017string.Format("{0:M MM MMM MMMM}", dt);//4 04 四月 四月string.Format("{0:d dd ddd dddd}", dt);//1 01 周六 星期六string.Format("{0:t tt}",

2021-12-27 15:57:35 750

原创 二分图专题

目录何为二分图染色法判断二分图输入格式输出格式数据范围输入样例输出样例题解分析代码匈牙利算法输入格式输出格式数据范围输入样例输出样例代码何为二分图设G=(V,E)是一个图,图的顶点集合可以分为两个集合V1,V2,E中的每个边都有一个点要么属于点集V1,另一个属于点集V2。这样的一个图被称作为二分图。染色法判断二分图给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。输入格式第一行包含两个整数 n 和 m。接下来 m 行,每行包含两个整数 u 和 v,表

2021-09-03 13:10:33 170

原创 有向图的拓扑序列

有向图的拓扑序列这里写目录标题有向图的拓扑序列拓扑序列的定义入度与出度拓扑排序的大致思路ACwing848 有向图的拓扑排序输入格式输出格式数据范围输入样例:输出样例代码拓扑序列的定义给定一个 n 个点 m 条边的有向图,点的编号是 1 到 n,图中可能存在重边和自环。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出 −1。若一个由图中所有点构成的序列 A 满足:对于图中的每条边 (x,y),x 在 A 中都出现在 y 之前,则称 A 是该图的一个拓扑序列。入度与出度多少条边指向自

2021-08-30 15:16:10 2981

原创 动态规划问题集合(updating)

目录DP问题的特征状态表示递推方程背包问题01背包DP问题的特征如果一个问题有在逐层向最优解进行一步一步地求解过程中,下一步有多种方案可以选择同时到达某一步可以从多个步骤求得,并且若是用广搜深搜技术难以实现或者时间复杂度超出所给限制时,我们可以考虑利用动态规划求解。状态表示首先动态规划需要用一个数组来表示某一状态,其中这一状态可分为集合和属性。集合代表到达当前状态的所有情况的集合。到达某一状态通常伴随着某种属性,这种属性可以是最大值、最小值和数量递推方程当前状态是由多个上一状态推导而来,则当

2021-08-21 20:47:54 144

原创 扩展欧几里得算法

扩展欧几里得算法目录扩展欧几里得算法数学推导同余方程(ACwing878)题目描述输入格式输出格式数据范围样例数学推导现有一二元一次方程:ax1+by1=max_{1}+by_{1}=max1​+by1​=max2+by2=gcd(a,b)ax_{2}+by_{2}=gcd(a,b)ax2​+by2​=gcd(a,b)由数学中的某一定理可知(裴蜀定理,直接用结论),当二元一次方程的结果mmm是两系数的最大公因数或是最大公因数的倍数,则我们可以得至少有一组整数解可以满足方程。且x1%x2

2021-08-20 17:59:37 45

原创 组合数学专题

组合数学专题目录组合数学专题公式1对于数据范围在1000左右2对于数据范围在10610^{6}106左右公式Cab=a!b!(a−b)!=a×(a−1)......×(a−b+1)b!C_{a}^{b} = \frac{a!}{b!(a-b)!}= \frac{a\times (a-1)......\times(a-b+1)}{b!}Cab​=b!(a−b)!a!​=b!a×(a−1)......×(a−b+1)​1对于数据范围在1000左右已知公式:Cab=Ca−1b×Ca−1b−1C_

2021-08-18 19:00:28 93

原创 欧拉与快速幂

欧拉与快速幂目录欧拉与快速幂欧拉函数欧拉函数线性筛欧拉定理快速幂快速幂求逆元欧拉函数欧拉函数:求1~n之间有多少个数与n互质ϕ(n)=n(1−1p1)(1−1p2)......(1−1pk)\phi (n) = n(1-\frac{1}{p_{1}})(1-\frac{1}{p_{2}})......(1-\frac{1}{p_{k}})ϕ(n)=n(1−p1​1​)(1−p2​1​)......(1−pk​1​)其中PkP_{k}Pk​代表n的质因数 。ACwing873#include

2021-08-14 20:12:32 115

原创 因数质数模板合集

目录试除法判定质数分解质因数质数线性筛试除法求约数约数个数(含证明)约数之和试除法判定质数bool is_prime(int n ){ if(n < 2) return false ; for(int i = 2 ; i <= n/i ; i ++){ if(n%i == 0) return false ; } return true ;}分解质因数void div_prime(int n){ for(int i = 2 ; i

2021-08-14 19:42:46 93

原创 最小生成树专题

最小生成树目录最小生成树定义Prim大致思想代码模板定义连通图:在一个无向图中,任何两顶点都可以一若干条边连通生成树:在一个连通图中(定点数n),取n-1条边,这n-1条边可以把n个点串起来。最小生成树:假设每条边都有一个权值,则最小权值的生成树是最下生成树。Prim大致思想代码与Dijsktra极其相似。先找到从当前所在点到相邻点权值最小的点,将其划进生成树,然后更新将这个点的相邻点走过去所需的权值进行更新进行更新。代码模板#include <iostream>usin

2021-08-07 15:07:04 69

原创 梯度下降算法

目录泰勒公式泰勒公式设f(x)f(x)f(x)在x0x_{0}x0​处有n阶导,则有公式:f(x)=f(x0)+f′(x0)1!(x−x0)+f"(x0)2!(x−x0)2+...+f(n)(x0)n!(x−x0)n+O[(x−x0)n]f(x) = f(x_{0}) + \frac{f'(x_{0})}{1!}(x - x_{0}) + \frac{f"(x_{0})}{2!}(x - x_{0})^{2} + ... + \frac{f^{(n)}(x_{0})}{n!}(x - x_{0})^

2021-08-05 17:40:55 98

原创 常见激活函数

常见激活函数目录常见激活函数sigmoid函数tanh函数ReLU函数softmax函数sigmoid函数f(x)=11+e−x;(0<f(x)<1)f(x) = \frac{1}{1 + e^{-x}} ; (0<f(x)<1)f(x)=1+e−x1​;(0<f(x)<1)sigmoid产生了一个0到1之间的平滑函数。有时需要观察在输入值略有变化时输出值发生的变化,而光滑的sigmoid函数能够做到这点。tanh函数f(x)=1−e−2x1+e−2x

2021-08-02 21:29:45 68

原创 监督学习与非监督学习简述(Updating)

监督学习与非监督学习简述目录监督学习与非监督学习简述监督学习监督学习算法的步骤监督学习算法:Delta学习规则监督学习监督训练是将将一组训练集送入网络,根据网络的实际输出与期望输出之间的差别来调整连接权监督学习算法的步骤从样本集合中取一个样本(AiA_{i}Ai​,BiB_{i}Bi​),其中AiA_{i}Ai​是输入,BiB_{i}Bi​是期望输出。计算网络的实际输出O求D = BiB_{i}Bi​-O根据D调整权矩阵W对每个样本重复以上过程,直到误差对整个样本集来说不超过规定范围为止

2021-08-01 19:54:54 162

原创 神经网络常用术语(Updating)

偏置除了权重之外,另一个被应用于输入的线性分量被称之为偏置。他的目的是改变输入与权重相乘结果的范围。b为偏置y=a×w+by = a\times w + by=a×w+b

2021-08-01 18:57:14 471

原创 最短路专题

最短路目录最短路序单源无负权最短路戴克斯特拉堆优化戴克斯特拉单源有负权最短路Bellman-FordSPFA多源汇最短路Floyd序在这篇文章中,n代表点的数量 ,m代表边的数量。单源无负权最短路戴克斯特拉适用于稠密图,且图中无负权的情况 。时间复杂度:O(n2)#include <iostream> #include <cstdio>#include <cstring>using namespace std ;const int N = 505

2021-08-01 15:49:50 102

原创 哈希散列表

哈希专题目录哈希专题哈希表定义整数哈希拉链法开放寻址法一次指针二次指针字符串哈希哈希表定义哈希表,又称为散列表,是一种根据键来直接访问内存位置的一种数据结构。它通过一个计算键值的函数(散列函数)来将所查询的数据映射到哈希表中的一个位置来查找该位置的内容,从而达到快速查找的目的。(存放记录的数组就称为哈希表)。**哈希函数:**每个元素原始值设为x,通过哈希函数h,我们可以得到一个映射值hash(x),记作 k = hash(x) 。**散列表:**以每个元素逗得哈希值的哈希值作为下标 ,对应到散

2021-07-27 20:03:33 64

原创 并查集 - 路径压缩 - 按秩合并

并查集目录并查集何为并查集并查集大致思想朴素并查集Build();Find(x);Union(x,y);何为并查集并查集是一种树形的数据结构,主要用于解决一些集合合并查询的问题。并查集森林是指将数据集合按树形的结构存储,即每一个节点都保存着对应的父节点,当父节点即本身是意味着到达根结点,根节点代表该集合。并查集大致思想每一个集合都设置一个代表元素。判断某个元素在某个集合就是找其代表元素,判断两个元素是否在同一个集合就是看其代表元素是否相同。每个元素都有一个指针,代表元素的指针指向自己,其他元素

2021-07-22 15:35:00 318

原创 自写Unique函数

C++ unique函数的意义此函数将vector中所有元素进行一个重新排列,将所有出现过的元素都按出现顺序排在前面且若有重复知排一个,剩下的重复元素放在vector最后,并且返回重复元素的首位置。例:01234原数组11223unique后数组12312返回坐标 3(返回类型是一个迭代器)自写uniquevector<int>:: iterator unique(vector<int>&a){ int

2021-07-15 14:18:00 376

原创 离散化(简单哈希)(数据压缩)

离散化目录离散化使用离散化的情况离散化的思想离散化的步骤例题ACwing802题目描述题目分析AC代码使用离散化的情况假设我们现在要对一些数据进行处理,而这些数据都有几个特征:数据数量不大:在一维数组可以开出来的大小之内。数据的值域很大:若以这个值域进行开辟数组会开不出来。满足这两个条件就可以使用离散化离散化的思想我们将这种数据进行映射,将我们要使用的不连续的值进行映射,映射到一片连续的地方。举例:现有5个数据分别为1,20,30000,50000000,1000000000。我们可

2021-07-14 21:01:54 570

原创 装载问题--回溯法解决

装载问题目录装载问题问题描述问题分析代码实现数据结构的设计代码问题描述有一批货物重量为wi ,需要将其装入两艘货轮,货轮限重c1、c2,现在问其能否成功全部装入货轮,若可以请输出一种装载方案。问题分析易知,如果我们先尽可能的将其中一艘货轮装满(使其装载量达到不超过其限重的最大值),剩下的重量如不能装入第二艘货轮,即不能装入。所以我们主要解决的是 要怎样使第一艘货轮达到最大值。这个问题的解决方案有许多种:动态规划深搜–回溯法广搜–分支限界法此文章主要讲解深搜–回溯法此问题与极大团的

2021-07-04 13:46:05 630

原创 极大团问题

极大团问题目录极大团问题极大团的定义回溯法算法大概思路数据结构代码极大团的定义团:一个点集,其中任何顶点之间都有一条边。极大团:最大的团。独立集:一个点集,其中任何两点之间都没有边。最大独立集:最大的独立集。极大团=补图的最大独立集最大独立集=补图的极大团回溯法算法大概思路假设现在途中有n个点,每个点都有两种处理方式,选取或者不选取。这么算下来,就共有2n种情况。而这么多情况很明显可以抽象成一棵二叉树,一边是选取这个点,一边是不选取这个点。那么我们可以选用一种剪枝方案:在不选这

2021-07-02 21:29:34 438

原创 N皇后问题

N皇后目录N皇后问题描述问题分析题解代码数据结构的设计问题描述在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。问题分析我们按行来摆放棋子,每一行都会有N种摆放方法,这样分析下去,每一种情况共同构造出了一棵树.所以可以用dfs来解这个题.题解代码数据结构的设计首先棋盘的设计不是一个二维数组;;而是一个一维数组:: 下标代表是哪一行,存储的值代表这一行的

2021-07-02 16:13:04 52

原创 最接近点对问题--分支法

最近接点对目录最近接点对一维问题描述问题分析代码二维一维问题描述现有一个一维坐标,上面有若干个点,要找到其中距离最近的点。问题分析在按位置升序排列的区间内,选取一个分界点mid,选取左右距离最小的,再选取mid和mid+1的距离,然后这三个值进行比较。最小的就是这个区间内最小距离点对。在一个区间只有两个或三个点时:要进行特殊处理:两点:直接返回距离三点:返回这三点的最小代码#include <iostream>#include <algorithm>us

2021-07-01 15:55:08 220

原创 快速排序算法

快速排序目录快速排序算法思想算法模板AC代码注意事项算法思想首先,此算法利用的是分治的思想。所以我们在处理递归最底层的时候(也就是只有两个数字的排序时),所用到的逻辑会将这两个数字进行排序,所以在往上一层递归的时候,在分界点前后的序列都是满足某一个性质的。要满足的性质:设置一个x值和一个分界点,在其前面的的数字必须满足小于等于x,在其后面的必须满足大于等于x。算法的三个部分:设置一个x分界值:可以是左边界、又边界、中位数(序列中间)、随机数进行序列的调整,使其目前递归的的区间满足以上下性质

2021-06-29 22:20:44 77

原创 图形覆盖问题

图形覆盖问题目录图形覆盖问题问题描述解题思路代码实现问题描述在一个2k×2k 个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。输入:三个整数,分别表示k,以及不可覆盖点的坐标输出:输出最终棋盘的样子,不可覆盖点为0,其他位置输出是第几块L块所覆盖的。解题思路首先我们选择利用分治法去解这个题。分支的规则是按照每个区域最中间的

2021-06-26 17:18:09 1169

原创 高精度专题

高精度目录高精度高精度数字的存储方法A+B的问题问题分析AC代码A-B问题问题分析AC代码A*a问题(一个大整数乘一个普通整数)问题分析AC代码A/a问题(一个大整数除一个普通整数)问题分析AC代码高精度乘高精度高精度的出现是为了解决计算机所不能存储的数据范围。当数字超出了这个范围,我们必须用一些算法来模拟人们计算的过程。高精度数字的存储方法通常采用数组存储数字的每一位。要注意的是尽量采用倒序存储,这是为了考虑进位问题:进位可以直接插到后面。A+B的问题问题分析高精度加法是一个最简单的高精度问

2021-06-26 14:47:19 162

原创 双指针算法

类型目录类型复杂度伪代码模板例题ACwing799题目大意:解法一:解法二(ACwing Y老师的方法)ACwing800:题目大意解题思路双指针算法主要可分两种:两数组双指针(代表:归并排序)单数组双指针(代表:快速排序)复杂度O(n): 确切说是2n。伪代码模板for(int i=1;i<=n;i++){ int j=i; while(j<=n&&[j]满足某周性质){ j++; } 接下来

2021-06-23 11:45:22 110

原创 M着色问题||算法设计与分析笔记

M着色问题||算法设计与分析笔记目录M着色问题||算法设计与分析笔记问题描述:问题分析:代码实现:代码所用到的数据结构:代码:问题描述:现有一无向连通图,相邻点不可着相同色,问其是否可以m着色,若可以输出方案与方案数。问题分析:可以将其构建成一个m叉子树,若不满足相邻点不同色,则剪枝。方案可行的条件:树的层数>点的个数。代码实现:代码所用到的数据结构:mm[][] 邻接矩阵记录无向图x[i] 记录i点的着色情况bestx[i] 记录可行的方案代码:#include <

2021-06-22 11:04:42 168

原创 前缀与差分

前缀:一维:原数组:a[i]前缀和数组:s[i]=a[1]+a[2]+...+a[i];作用:

2021-06-19 19:48:19 164

原创 整数二分模板

整数二分的本质不是单调性,有单调性可以用二分,无单调性也可以用二分。

2021-06-18 22:24:29 111

原创 ACwing 788 逆序对数量 分治法

题目大意:现有一个n长的无序数列,并且定义:若i<j,a[i]>a[j],则称无序对<a[i],a[j]>是逆序对。现求数列中

2021-06-16 14:58:20 75

原创 ACwing 796 二维前缀和

直接上图简单明了

2021-06-15 20:33:13 62

原创 acwing 787 归并排序模板

整体思想归并排序整体思想就是将一个长度为n的数组对半分,分成每个区间只有一个元素时进行每两个区间排序,然后合并。最后整个数组就是排序后的样子。

2021-06-15 19:48:49 103

原创 ACwing 789 二分查找区间

设要查找的区间左右分别为L,R。二分查找的左右边界为l,ryaocha第一次二分查找找的是L:如果[mid]<k

2021-06-15 10:33:28 109

原创 hdu1969 二分搜索

二分搜索所需要条件:有一个递增的序列 要查找到一个特殊的值 向上二分还是向下二分的判断条件

2021-06-10 16:34:43 152

原创 最优装载||算法设计与分析

这个问题乍一看跟非01的普通背包问题很像,但不一样的地方是没有提及限制,所以贪心策略不用拿密度去卡,而是要拿重量去卡,因为重量越小的话,可以放置的数量越多。

2021-06-07 20:42:12 191

原创 活动安排hdu2037||算法设计与分析笔记

这是一道经典的贪心,贪心策略就是按照结束时间来进行,结束越早的放到越前面,放的时候在判断一下容斥即可。#include <bits/stdc++.h> using namespace std;struct tv{ int s; int e;}a[105];int cmp(const void*a,const void*b){ if (((tv*)a)->e == ((tv*)b)->e) return ((tv*)a)-

2021-06-07 20:20:42 84

原创 hdu3826分解质因数加强版

大概题意:一个数去分解质因数,质因数有重复的直接时no,否则是yes 刚开始de思路是改进了一下分解质因数的模板,a[i]>1直接返回false。但是题上数据范围太大,提交之后tle。 后来去嫖网上的思路,大部分是直接给代码思路,没有给一个逻辑过程,想了一会才想出来,所以准备自己写一个逻辑推导过程。逻辑过程: 1.因为我们要判断的是质因数一旦为平方或以上之后就要判断为no,所以10^9是一个分界点(10^9^2==10^18); 2.因为大于10^6的...

2021-05-27 17:10:47 233

空空如也

空空如也

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

TA关注的人

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