自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 07 并查集问题之食物链问题(并查集维护额外信息)

发现问题性质以及解题思路记录每个点和根节点的关系,每个点到其父节点的距离代表它和根节点的一个关系,推出来一个关系,和父节点距离为1时候,代表这个点可以吃父节点,和父节点距离为2的时候,代表这个点被父节点吃,和父节点距离为3的时候,代表和父节点是同类。然后整理一下就是:...

2022-06-04 15:21:39 211

原创 06 算法竞赛进阶指南基本算法总结

文章目录基础算法位运算递归与递推前缀和与差分二分排序倍增贪心基础算法位运算补码表示法,理解c++无符号,有符号整数在计算机中的存储方式。各种按位运算,包括取位,置位,移位等,以及一些常见技巧。快速幂,64位整数乘法。二进制状态压缩,使用二进制数对状态进行压缩,提取的方法。位运算不进位的特点以及各位之间的独立性。递归与递推能想象问题“状态空间”,理解各种基本算法其实是对状态空间的遍历与映射。递推边界,目标,递推公式的发现与设计。理解递归思想,子问题,递归边界,回溯时还原现场。递归

2022-04-29 09:04:55 241

原创 2022年蓝桥杯:第十三届蓝桥杯大赛软件赛省赛(全部正解做法&代码 C/C++ B组)

文章目录试题 A: 九进制转十进制问题描述问题答案试题 B: 顺子日期问题描述问题答案试题 C: 刷题统计问题描述问题答案试题 D: 修剪灌木问题描述问题答案试题 E: X 进制减法问题描述问题答案试题 F: 统计子矩阵问题描述问题答案试题 G: 积木画问题描述问题答案试题 H: 扫雷问题描述问题答案试题 I: 李白打酒加强版问题描述问题答案试题 J: 砍竹子问题描述问题答案试题 A: 九进制转十进制问题描述九进制正整数 (2022)9 转换成十进制等于多少?问题答案答案为: 1478试题 B:

2022-04-10 18:49:53 5923 21

原创 05 算法竞赛进阶指南最短路习题+例题 (附代码+注释+思路)-01

文章目录acwing 340 通信线路题目思路解题代码acwing 341 最优贸易题目思路解题代码acwing 340 通信线路题目思路二分做法思路定义在[0,1000001] 这个区间中的性质如下:对于区间中的某一个点x。求出1走到N,最少经过的长度大于x的边的是否小于等于k。求出从1到N最少经过几条长度大于x的边。可以将所有的边权分类:大于等于x的为1,小于的为0。采用双端队列的BFS来求从1到N的最短路。解题代码#include <iostream>#inc

2022-04-06 22:46:02 525

原创 04 最小生成树 Kruskal算法& prim算法(附代码实现) 图论2

最小生成树给定一张边带权的无向图 G = (V,E), n = |V|,m = |E|。由 V 中全部 n 个顶点和 E 中 n-1 条边构成的无向连通子图被称为 G 的一颗生成树。边的权值之和最小的生成树被称为无向图 G 的最小生成树。定理:任意一颗最小生成树一定包含无向图中权值最小的边。证明:反证法。假设无向图 G = (V,E) 存在一颗最小生成树不包含权值最小的边。设e = (x,y,z)是权值最小的边。把 e 添加到树中, e 会和树上从 x 到 y的路径一起构成一个环,并且环上其他的边

2022-04-04 18:05:31 889 1

原创 03 最短路 dijkstra算法&spfa算法&floyd算法(附带实例代码) 图论-1

最短路对于一条有向图,我们一般采用邻接矩阵和邻接表两种存储方式。对于无向图,可以把看无向边看作两条方向相反的有向边。从而采用与有向图一样的存储方式。邻接表的图如下邻接矩阵如下图链表实现邻接表实现代码/// 加入有向边(a,b),权值为cvoid (int a,int b){ e[idx] = b,w[idx] = c,ne[idx] = h[a],h[a] = idx++; }/// 访问从a出发的所有边for(int i=h[a]; ~i; i = ne[i]){ i

2022-04-04 13:17:33 1260 2

原创 02 最近公共祖先(LCA)树上倍增法(附代码实现模板)

最近公共祖先(LCA)最近公共祖先解决的问题给定一颗有根树,若节点z即是节点x的祖先,也是节点y的祖先,则称z是x,y的公共祖先。在x,y的所有公共祖先中,深度最大(距离根节点的距离最远的)的一个称为x,y的最近公共祖先,记作LCA(x,y)。LCA(x,y)是x到根的路径与y到根的路径的交会点。它也是x与y之间的路径上深度最小的节点。求最近公共祖先的方法通常有以下三种。方法1 向上标记法从 x 向上走到根节点,并标记所有经过的节点。从y向上从到根节点,当第一次遇到已经标记的节点时,就找到了

2022-04-01 13:17:31 1126 1

原创 01 快速幂 & 龟速乘(附带实现代码) 算法总结记录

快速幂快速幂用于解决的问题在我们的学习语法的时候,比如我们求一个2的十次方的数字,我们可以采用循环一下就是枚举一下循环从1~10,这样我们就可以求出我们想要的答案,当次方为一千,一万,十万,我们这个方法都可以做,但是当我们乘上一个上亿级的次方,我们这样的方法就行不通了,我们知道c++在运行程序时 1s的运行次数大概是10的8次方,当我们上亿次的次方,在采用循环的方式就会超时,快速幂就是基于解决这种问题的方法。我们采用一个例子,让我们更加通俗易懂。这类问题通常伴随着取模。快速幂样例解释 首先呢我们运

2022-03-26 13:15:41 917 1

原创 信息安全与技术--rsa算法详解(包括欧拉函数以及扩展欧几里得算法详解)

1.算法描述一,密钥对的产生 (1)选取两个大素数p和q。 (2)计算n = p*q以及n的欧拉函数值 φ(n) = (p-1)*(q-1)。 (3)然后随机选取整数e(1<e<φ(n)),且满足gcd(e,φ(n)) = 1(gcd表示最大公约数运算),就是说φ(n)和e互素。 (互素等价于两者的最大公约数为1。) (4)由扩展欧几里得算法求出d,使得 e*d =1 mod φ(n)。 (5)形成秘钥对,其中公钥为{e,n},私钥为{d,n}。p,q是秘密参数,需要保密,如不需要保

2021-12-25 13:13:37 3055

原创 牛客小月赛 j-洋灰三角 2021.11.09

在这里插入图片描述运用算法;矩阵乘法,乘法逆元。学习矩阵乘法+乘法逆元就 可以ac本题解题代码

2021-11-09 16:37:24 102

原创 牛客小月赛F-发电补题2021-11-08

解题思路以及方法,采用树状数组+上乘法逆元(费马定理)费马定理的性质,使用快速幂求逆元的时候b一定要是素数快速幂求逆元的核心 相当于把除变做乘解题代码#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N = 1e6+10,mod = 1e9+7;LL ar[N],n,m;int lowbit(int x){ return x&-x; }LL pw(LL.

2021-11-08 21:54:46 104

原创 Linux学习笔记2:tmux 和 vim

时间2021-11-05如果其中有些命令不可以用的话,可能是版本或者其他问题。功能:(1) 分屏。(2) 允许断开Terminal连接后,继续运行进程。结构:一个tmux可以包含多个session,一个session可以包含多个window,一个window可以包含多个pane。实例:tmux:session 0:window 0:pane 0pane 1pane 2…window 1window 2…session 1session 2…操作:(1) tmux

2021-11-05 21:51:55 101

原创 2021河南省ccpc欢度佳节题解+赛后总结

光棍节即将来临,小辣参加了某资本家的某游戏即四根光棍在如图场景进行游戏,每个格子有一个数值你可以掷若干次骰子,每次随机掷出 1 ~ 6 之间的整数值,加入糖果库存如果某次掷骰子后你的糖果库存大于某个格子的数值,且这个格子与你占领的格子相邻,那么你可以选择占领这个格子,占领后库存清 0我们称两个格子相邻当且仅当有一条边重合默认一开始你位于左下方(即图中显示“我方”的位置),也就是说只有左下方的格子与你相邻小辣用二十年单身换取了 n 次掷骰子的机会,你能告诉他最好情况下最多能占领几个格子吗输入

2021-11-04 10:03:31 2997 1

原创 c++的STL常用库的使用大总结

STL中的vector,queue,priority_queue,deque,set,multiset,map,bitset,常用的算法容器c++一些运算符的优先级从高到低的顺序如下表示加减 移位 比较大小 位与 异或 位或± <<,>> <,>,==,!= & xor(c++^) |#include vector 可理解为变长数组,它的内部实现基础倍增思想。v

2021-10-24 17:04:10 1884 1

原创 c++抽奖小程序 源码 简单易懂

看b站上许多up主没有达到互动抽奖的资格 很多都用采取评论,然后按评论数量,然后去找个随机数生成器,然后生成几个随机数字然后对应第几次的评论。然后类,我就想着做一些不一样的吧,就写了个自己设定抽奖人数,奖励个数,但是此程序需要输入ID,这是一个比较麻烦的事情(如果用python爬起下来会更好一些),但是我这个中奖显示的会是中奖的ID,我认为这是相对于随机数更好的一点。 嘿嘿 自己写的小玩意 大家看看就好啦#include <bits/stdc++.h>#include <time.h

2021-07-27 17:39:08 4015

原创 codeforces div2 PriceFixed 补题

思路:贪心 + 排序 + 双指针算法先按bi的数量从大到小排序,然后排序ai,然后运用双指针,如果购买的商品数可以买最低需要的商品数打折就一直买,否则的话从最后面购买商品使得前面的商品可以构成打折,然后把后面的买完的数量就清除掉。代码:```cpp#include <bits/stdc++.h>using namespace std;typedef unsigned long long LL;const int N = 2e5+10;int t;typedef pai..

2021-06-21 20:46:33 181

原创 Eclipse(JavaEE)开发环境配置(JDK篇)

标题 自我记录因为这学期有java web 的课程,所以需要用到java ee 软件进行使用,为了以后自己的使用方便,特记录一下java ee 环境配置来进行自己以后的复习使用。(1)jdk 下载与配置(1)进入官网下载 需要注册才能下载 注册登录后可以自动下载。官网链接:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html.(2)上面有一个锁 需要登录后进行下载。二 找到下载后jdk的位置

2021-06-07 18:36:31 718

原创 java复习之java语言基础

java语言的特点1 面向对象2 简单性java取消了许多语言中十分繁琐和难以理解呢内容,如c++指针,运算符重载,类的多继承等。3 跨平台4 健壮性5 安全性6 可移植性7 多线程机制8 动态性java的一些简单程序样例package package1;public class S1_1 { public static void main(String args[]) { System.out.println("6 + 6 = "+ (6+6)); }}运行结果

2020-12-06 20:18:57 193

原创 数据结构第二章 线性表

线性表及其逻辑结构线性表的定义线性表是具有相同特性的数据元素的一个有限序列。线性表的特性1 有穷性:一个线性表中的元素个数是有限的。2 一致性:一个线性表中的所有元素的性质相同。从实现的角度看,所有元素具有相同的数据类型。3 序列性线性表的顺序存储结构...

2020-12-06 18:52:51 102

原创 数据结构 第一章

数据结构的定义(1)分析问题,确定数据类型。(2)设计相应算法。(3)编写程序,运行并调试程序,直至得到正确的结果。数据是描述客观事物的数和字符的集合。数据项是具有独立含义的数据的最小单位,也成为字段或域。数据对象是指性质相同的数据元素的集合,他是数据的一个子集。数据结构是指所有数据元素以及数据元素之间的关系,可以看作是相互之间存在着某种特定关系的数据元素的集合。数据结构通常包括以下几个方面(1)数据的逻辑结构:由数据元素之间的逻辑关系构成。(2)数据的存储结构:数据元素及其关系在计算机

2020-12-03 21:29:28 413 1

原创 甘特图学习笔记

甘特图甘特图又称为横道图、条状图。其通过条状图来显示项目,进度,和其他时间相关的系统进展的内在关系随着时间进展的情况。以提出者亨利·劳伦斯·甘特先生的名字命名。甘特图——生产计划进度图在图上,项目的每一步在被执行的时间段中用线条标出。完成以后,甘特图能以时间顺序显示所要进行的活动,以及那些可以在同时进行的活动。个人甘特图和时间表是两种不同的任务表达方式,个人甘特图使用户可以直观地知道有哪些任务在什么时间段要做,而时间表则提供更精确的时间段数据。此外,用户还可以在时间表中直接更新任务进程。甘特图的含

2020-11-30 22:12:54 2182

原创 2020 11.25python学习笔记2

数据类型转换为什么需要数据类型转换?将不同数据类型拼接到一起。几种数据转换的方式图。python中的注释在代码中对代码的功能进行解释说明的标注性文字,可以提高代码的可读性。注释的内容会被python解释器忽略通常包括三种类型的注释单行注释——》以#开头,直到换行结束多行注释——》以一对三引号之间的代码称为多行注释中文编码声明注释——》在文件开头加上中文声明注释,用以指定源码文件的编码格式。知识点总结input函数的使用1,python的输入函数input()2,python

2020-11-26 22:28:46 157

原创 2020-11-24 python学习笔记1

python中的标识符和保留字保留字:import keywordprint(keyword.kwlist)标识符的规则变量,函数,类和模块和其他对象起的名字就叫标识符规则:字母,数字,下划线。不能以数字开头。不能使用保留字。严格区分大小写。...

2020-11-24 21:37:13 134 1

空空如也

空空如也

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

TA关注的人

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