自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java类的修饰符

java的类修饰符作用java的第一篇博客类的修饰符范围java的第一篇博客类的修饰符范围SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:修饰符同一个类同一个包不同包的子类不同包的非子类public是是是是protected是是是默认(default)是是private是...

2020-11-14 20:31:53 119

原创 组合数C(M,N)

组合数求一个数的组合数C(M,N)C(M,N)=12… * m/n * (n-1) * (n-2) *… *(n-m+1)意思就是C(3,10)=1 * 2 * 3/8 *9 *10当M和N很大的时候就会爆精度,这个时候需要用到去除质因子来得到正确的答案。先将分母里面的质因子数量记住,然后拿分子里面质因子数量来抵消,最后把剩下的乘起来就行了。#include<stdio.h&gt...

2020-03-16 22:45:54 590

原创 逆元

逆元什么是逆元:逆元有什么用:逆元定理:逆元的求解方法:法一:费马小定理法二:扩展欧几里德(又叫辗转相除法在这里作逆运算)法三:扩展欧几里德(递归写法)什么是逆元:比如a/b%m=c;d是b的逆元则a*d%m=c,且bd=1;逆元有什么用:当你求解公式(a/b)%c的时候,b的值过大,可能会爆精度,因为除法不能分子和分母同取模一个数除出来的结果还是一样的,所以这个时候你就需要用到逆元,...

2020-03-13 22:27:20 324

原创 cf divD题题解

cf-div2D题题意:给你m个数,让其在一个长度为n的数组中排列,但是要保证先是单调递增,然后是单调递减,并且有两个元素是一样的。思路是推导出一个通项公式:(n-2)*C(n-1,m)*2n-3=ansC(n-1,m)的意思是从m个数里面拿出n-1个数出来,因为有俩个是一样的,所以只需要n-1即可n-2的意思是从n-1个数中能分出另一个和本身相同的数的个数,为什么是n-2呢,因为总个数...

2020-03-13 17:53:35 354

原创 最大子段和-动态规划

最大子段和-动态规划写法题目:法一:题目:给定长度为n的整数序列,a[1…n], 求[1,n]某个子区间[i , j]使得a[i]+…+a[j]和最大.或者求出最大的这个和.例如(-2,11,-4,13,-5,2)的最大子段和为20,所求子区间为[2,4]。有俩种dp做法:法一:用数组dp,这里可以假设dp[i]是最大字段和的最后一个,那么他肯定是前面的dp[i-1]和此位置的a[i]结...

2020-03-10 21:57:42 893

原创 七星瓢虫

七星瓢虫:今天搞了一个七星瓢虫的题:(这是个并查集的题)题目:有七星瓢虫n个,可以俩俩交配m组( 0<n<=2000, 0<m<=1000000)如果俩个交配为同性则输出:Suspicious bugs found!没有则输出:No suspicious bugs found!输入:第一行输入t ,表示t个用例接下来第一行输入n m后m行输入a b,代表a和...

2020-03-09 15:53:26 405

原创 全排列

全排列定义:无序全排列(1~9):字典序全排列:定义:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。鄙人不才,只学到了递归的全排列算法,全排列有俩种,一种是按照字典序排列,一种是无序的排列,下面我们对俩种进行讲解。无序全排列(1~9):首先需要定义一个标记,来将需要的换位置,无序全排列主...

2020-02-25 18:14:18 241

原创 最小生成树问题

最小生成树——Kruskal法题目:解法:题目:解法:此题是典型的最小生成树问题,题意为建设可以通向每个村庄的道路的最小花费,所以我们需要先对数据按花费排序,然后再最小生成树就行了,生成树的同时加上花费就可以了。#include<cstdio>#include<cmath>#include<iostream>#include<algori...

2020-02-24 15:49:31 451

原创 第五章

数据结构—排序定义基本排序:冒泡排序:选择排序:直接插入排序:希尔排序:桶排:快速排序:归并排序定义排序是将一些需要排序的数按指定的顺序摆放好,比如,从大到小,大小到大都是。基本排序:基本排序包括冒泡排序、选择排序、直接插入排序等。冒泡排序:泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大...

2020-02-20 17:17:05 155

原创 第四章

数据结构—树定义:二叉树:操作:分类:树、森林、二叉树之间的转换定义:树状一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树。树是...

2020-02-20 11:35:30 158

原创 第三章

数据结构——线性表定义:种类:数组:优:劣:在内存中的存储方式:链表:优:劣:在内存组的存储方式:二分查找算法:有序数组的插入:俩个有序链表合并:栈定义:操作:队列定义:操作:定义:线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一...

2020-02-20 10:44:09 199

原创 第二章

数据结构——算法算法定义:算法特性:输入输出:有穷性:确定性:可行性:算法设计的要求:正确性:可读性:健壮性:时间效率高和存储量:算法效率的度量方法:事后统计方法:事前分析估算方法:算法时间复杂度(大O阶):推导大O阶:算法定义:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。算法特性:输入输出:算法具有0个或多个输入,但是至少有一个或...

2020-02-16 22:03:01 158

原创 第一章

第一章——认识数据结构数据结构定义:数据结构起源:基本概念和术语:数据:数据元素:数据项:数据对象:数据结构(这个和学科名可不一样):数据结构定义:“数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。数据结构是一门研究非数值计算的程序设...

2020-02-16 16:16:44 140

原创 二叉堆

二叉堆二叉堆定义二叉堆的插入二叉堆删除二叉堆定义二叉堆和完全二叉树很像,在某种意义上来说是一样的,但是处理不一样。二叉堆的节点大小没有按大小的要求,二叉堆是按优先级来定义的,列如根节点优先级最高,下面的其次,再下面的又低一点,这就是大根堆,而根节点优先级最小,下面的大一些,则是小根堆,也可以用数字代表优先级来应用到具体题目里面。因为堆是一棵完全二叉树,所以对于一个节点数为n的堆,它的高度...

2020-02-06 21:17:43 194

原创 快速乘

快速乘定义快速乘定义快速乘和快速幂的思路基本一致,为什么要用快速乘?一般快速乘是用于a * b%c的算法(a,b,c)是较大的数,因为a和b都是较大的数比如长整型( long long )。相乘的俩个数过大就会溢出,就会和需要的答案不符合,这个时候就需要运用到快速乘,来把俩个需要相乘的数乘起来,而且不会溢出,因为会需要取模一个数c。快速乘快速乘的思想就是化为二进制,列如:12 *...

2020-02-05 17:48:30 178

原创 字符串hash

字符串哈希(hashhash的定义字符串哈希例题题目:兔子与兔子题解:hash的定义Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。hash是一种思想。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值...

2020-02-02 20:26:09 541

原创 单调栈

单调栈的定义及应用前言单调栈的定义单调栈的性质单调栈的应用例题:题目: 直方图周最大的矩形输入格式输出格式数据范围前言单调栈即栈的一种。单调栈的定义既然是来学单调栈的,我相信进来看的都是理解栈的定义的人,所以关于栈是什么我就不多说了。单调栈,顾名思义,就是存进栈的数是以单调递增或者单调递减的形式存在的,并不是严格的单调递增或递减,是可以等于的。下面举个例子:{1 ,2 ,3 ,4 ...

2020-02-01 10:33:33 158

原创 并查集

并查集说明并查集定义并查集思路简单例题及解法题目:朋友圈解题:说明近几天在自学并查集,并且看了一些博客觉得他们讲的听清楚的,很容易懂,都是生动教学,把队首的那个下标比喻为掌门,我在这里就不比作掌门了,毕竟我和他们不一样。下面,开始说一下简单并查集是个什么东西,以及类似题目求解。并查集定义并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按...

2020-01-23 18:24:50 128

原创 总结1

总结1(1月15号~20号)刷题总结学到的知识感悟刷题总结这几天不止刷了每日一题,并且把每日一题的知识点搞懂了,需要每天花一些时间,还刷了栈和队列的一些题,觉得栈和队列的难度并不是很高,用时间写还是能写出来,kmp的题也刷了一些,比较难,除了那些很好找到规律的题意外,其他的kmp题基本上无法自己解决,这个是我的不足,贪心的题刷的比较少,贪心的题只要不是特别难还是能独立解决。关于西邮集训里面的题...

2020-01-21 11:05:57 192

原创 归并

归并与逆序数前言简介归并排序求逆序数前言归并排序是一种非常重要的排序,因此,我觉得学会归并排序十分重要。简介一般排序会用到冒泡排序,虽然冒泡排序是一种稳定的排序算法,但是时间复杂度是O(log(n2)),时间复杂度就有一点点高,也许你会说用快速排序,没错,快速排序也能很快的将一串数字排序好,但是快速排序针对一些数据很快,也会针对有些数据很慢,因为快速排序并不是稳定的排序算法,而今天我...

2020-01-21 10:51:19 383 1

原创 尺取

尺取前言题目详解前言近在网上看了好几篇博客,终于搞懂尺取是个什么东西了,关于尺取的时间复杂度为什么会低一些,我的见解就是去掉了回溯。题目详解列如给长度为n的数组和一个整数m,求总和不小于m的连续子序列的最小长度输入n = 10,m = 155 1 3 5 10 7 4 9 2 8输出2寻找过程为先将下标定位到最左边,然后找到第一个满足条件的序列,记住此处右边的下标值,即为右...

2020-01-17 22:04:58 141

原创 快速幂

快速幂的分析与代码实现前言说明一般的求幂解法快速幂解法(循环)快速幂解法(递归)快速幂取模解法前言本人第一次写博客,若有不当请见谅。说明最近在网上看了好几篇博客,也没看明白关于快速幂这个算法的时间复杂度是怎么优化的,这让数学差的人使劲挠头,后面又看了几篇快速幂的代码和思路,终于完全搞明白快速幂到底是个什么算法,下面写的是我个人对快速幂的看法和见解,关于原理的解释如果有错误请一定要评论我改正...

2020-01-15 21:57:13 224

空空如也

空空如也

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

TA关注的人

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