自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 树状数组

1、楼兰图腾(树状数组简介)https://blog.csdn.net/Mr_Kingk/article/details/1058824922、区间修改,单点查询:https://blog.csdn.net/Mr_Kingk/article/details/1058936073、区间查询&&区间修改:https://blog.csdn.net/Mr_Kingk/articl...

2020-05-02 20:53:08 166

原创 环路运输(环形结构&&单调队列(滑动窗口))

在一条环形公路旁均匀地分布着N座仓库,编号为1~N,编号为 i 的仓库与编号为 j 的仓库之间的距离定义为 dist(i,j)=min⁡(|i-j|,N-|i-j|),也就是逆时针或顺时针从 i 到 j 中较近的一种。每座仓库都存有货物,其中编号为 i 的仓库库存量为Ai。在 i 和 j 两座仓库之间运送货物需要的代价为Ai+Aj+dist(i,j)。求在哪两座仓库之间运送货物需要...

2020-04-28 18:54:51 428

原创 城市游戏(求01矩阵中的最大1矩阵面积:递推&&单调栈---o(n*m))

有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。这片土地被分成N*M个格子,每个格子里写着’R’或者’F’,R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。现在freda要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着’F’并且面积最大。但是rainbow和freda的OI水平都弱...

2020-04-01 22:32:23 569

原创 最大子序和(前缀和&&单调队列)

输入一个长度为n的整数序列,从中找出一段长度不超过m的连续子序列,使得子序列中所有数的和最大。注意:子序列的长度至少是1。输入格式第一行输入两个整数n,m。第二行输入n个数,代表长度为n的整数序列。同一行数之间用空格隔开。输出格式输出一个整数,代表该序列的最大子序和。数据范围1≤n,m≤300000输入样例:6 41 -3 5 1 -2 3输...

2020-03-20 18:57:30 590

原创 计算n!中质因子p的个数&&分解质因子&&素数筛选法

一、计算n!中质因子p的个数int getNum(int n,int p)//返回n!中因子p的个数=n/p+n/p^2+n/p^3+...{ int res=0; while(n){ res+=n/p; n/=p; } return res;}二、分解质因子(将a分解成质数乘积的形式)for(int i=2;i...

2020-03-15 17:01:14 280

原创 排书(IDA*)

给定n本书,编号为1-n。在初始状态下,书是任意排列的。在每一次操作中,可以抽取其中连续的一段,再把这段插入到其他某个位置。我们的目标状态是把书按照1-n的顺序依次排列。求最少需要多少次操作。输入格式第一行包含整数T,表示共有T组测试数据。每组数据包含两行,第一行为整数n,表示书的数量。第二行为n个整数,表示1-n的一种任意排列。同行数之间用空格隔开。输出格...

2020-03-06 15:38:35 309

原创 第K短路(A*(astar)算法)

给定一张N个点(编号1,2…N),M条边的有向图,求从起点S到终点T的第K短路的长度,路径允许重复经过点或边。注意:每条最短路中至少要包含一条边。输入格式第一行包含两个整数N和M。接下来M行,每行包含三个整数A,B和L,表示点A与点B之间存在有向边,且边长为L。最后一行包含三个整数S,T和K,分别表示起点S,终点T和第K短路。输出格式输出占一行,包含一个整数,表示第K...

2020-03-03 21:47:37 827

原创 木棒(dfs+剪枝优化)

乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。输入格式输入包含多组数据,每组数据包括两行。第一行是一个不超过64的整数,表示砍断之后共有多少节木棍。第二行是截...

2020-02-26 19:21:32 643

原创 可达性统计(拓扑排序&&位运算)

给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量。输入格式第一行两个整数N,M,接下来M行每行两个整数x,y,表示从x到y的一条有向边。输出格式输出共N行,表示每个点能够到达的点的数量。数据范围1≤N,M≤300001≤N,M≤30000输入样例:10 103 82 32 55 95 92 33 94 82 104 9...

2020-02-24 21:02:25 350

原创 最大的和(最大子矩阵和:贪心&&前缀和+dp)

给定一个包含整数的二维矩阵,子矩形是位于整个阵列内的任何大小为1 * 1或更大的连续子阵列。矩形的总和是该矩形中所有元素的总和。在这个问题中,具有最大和的子矩形被称为最大子矩形。例如,下列数组:0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 其最大子矩形为:9 2 -4 1 -1 8 它拥有最大和15。输入格式输入...

2020-02-22 16:58:23 494

原创 数的进制转换(任意两个进制之间的转换)

编写一个程序,可以实现将一个数字由一个进制转换为另一个进制。这里有62个不同数位{0-9,A-Z,a-z}。输入格式第一行输入一个整数,代表接下来的行数。接下来每一行都包含三个数字,首先是输入进制(十进制表示),然后是输出进制(十进制表示),最后是用输入进制表示的输入数字,数字之间用空格隔开。输入进制和输出进制都在2到62的范围之内。(在十进制下)A = 10,B = 11...

2020-02-21 20:04:20 1570

原创 高精度( 大数*数&&大数/数&&max(大数,大数) )

注:这里用vector<int>来存一个大数,并且是按从低位到高位来存的1、大数*数vector<int> mul(vector<int>a,int b){ vector<int>c; int res=0; for(int i=0;i<a.size();i++){//a从低位到高位每次*b r...

2020-02-18 15:27:54 201

原创 约数之和(分解质因子&&分治递归求约数之和)

假设现在有两个自然数A和B,S是AB的所有约数之和。请你求出S mod 9901的值是多少。输入格式在一行中输入用空格隔开的两个整数A和B。输出格式输出一个整数,代表S mod 9901的值。数据范围0≤A,B≤5×107输入样例:2 3输出样例:15注意: A和B不会同时为0。思路:可以将a用所有质因子的乘积表示,即:a=p1^k1...

2020-02-13 15:42:18 517

原创 滑动窗口(单调队列)

给定一个大小为n≤106的数组。有一个大小为k的滑动窗口,它从数组的最左边移动到最右边。您只能在窗口中看到k个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为[1 3 -1 -3 5 3 6 7],k为3。窗口位置 最小值 最大值 [1 3 -1] -3 5 3 6 7 -1 3 1 [3 -1 -3] 5 3 6 7 -3...

2020-02-12 18:59:41 560

原创 Football(概率dp+按位亦或运算的应用)

题目:POJ 3701DescriptionConsider a single-elimination football tournament involving 2nteams, denoted 1, 2, …, 2n. In each round of the tournament, all teams still in the tournament are placed in a ...

2020-02-10 17:04:34 377

原创 a^b&&64位整数乘法(快速幂:o(logn))

一、a^b求a的b次方对p取模的值。输入格式三个整数a,b,p ,在同一行用空格隔开。输出格式输出一个整数,表示a^b mod p的值。数据范围0≤a,b,p≤109输入样例:3 2 7输出样例:2思路:快速幂就是将幂次b转化成二进制,然后按照二进制,每次乘上基数(0或1)*位权来算,这样就乘了logb(log以2为底)次(b的二...

2020-02-08 16:06:16 676

原创 深入虎穴(dfs)

著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报。已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门。每一扇门背后或者是一个房间,或者又有很多条路,同样是每条路通向一扇门…… 他的手里有一张表格,是其他间谍帮他收集到的情报,他们记下了每扇门的编号,以及这扇门背后的每一条通路所到达的门的编号。007 发现不存在两条路通向同一扇门。内线告诉他,情报就藏在迷...

2020-02-05 18:10:28 834

原创 小字辈(bfs+一维数组记录深度+set记录当前层的元素)

7-81小字辈本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。输入格式:输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,其中第 i 个编号对应第 i 位成员的父/母。家谱中辈分最高的老祖宗对应的父/母编号为 -1。一行中的数字间以空格分隔。输出格式:首先输出最小的辈分(...

2020-02-03 15:17:17 315

原创 背包问题(完整版:背包九讲)

1、01背包问题:https://blog.csdn.net/Mr_Kingk/article/details/1039648372、完全背包问题:https://blog.csdn.net/Mr_Kingk/article/details/1040107093、多重背包问题(三个版本链接):https://blog.csdn.net/Mr_Kingk/article/details/10...

2020-02-01 17:23:25 577

原创 并查集模板+(路径压缩&&秩的合并)优化

一、初始化函数:void init(){ for(int i=1;i<=n;i++){ pre[i]=i;//每个人的上一个人的编号初始化为自身的编号 }}二、找根函数:1、初始版本:int findRoot(int x){ if(pre[x]==x){//找到最顶层的根节点,则返回其编号,作为当前结点的根结点编号 ...

2020-01-21 16:02:38 304

原创 gcd&&extend_gcd

一、gcd:int gcd(int a,int b){return b==0?a:gcd(b,a%b);}二、extend_gcd:int extend_gcd(int a,int b,int &x,int &y){ if(b==0){ x=1;y=0; return a; } else{ i...

2019-12-08 21:18:50 269

原创 Highway(用dfs求树的直径)

链接:https://ac.nowcoder.com/acm/contest/1109/H来源:牛客网题目描述In ICPCCamp there were n towns conveniently numbered with 1,2,…,n1, 2, \dots, n1,2,…,nconnected with (n - 1) roads.The i-th road connect...

2019-10-05 00:58:13 550 1

原创 lower_bound(+greater)&&upper_bound(+greater)

三个参数的lower_bound&&upper_bound:lower_bound(要查找数组中区间的起始位置,要查找数组中区间的末尾位置,数x)//前闭后开,返回数组a[]的起始位置到(末尾位置-1)中第一个大于等于x的值的编号upper_bound(要查找数组中区间的起始位置,要查找数组中区间的末尾位置,数x)//前闭后开,返回数组a[]的起始位置到(末尾位置-1)中...

2019-09-28 17:01:42 925

原创 洛谷P4779 【模板】单源最短路径(标准版)(dijkstra+优先队列-堆优化:时间复杂度o((m+n)logn))

题目背景2018 年 7 月 19 日,某位同学在NOI Day 1 T1 归程一题里非常熟练地使用了一个广为人知的算法求最短路。然后呢?100 \rightarrow 60100→60;Ag \rightarrow CuAg→Cu;最终,他因此没能与理想的大学达成契约。小 F 衷心祝愿大家不再重蹈覆辙。题目描述给定一个NN个点,MM条有向边的带非负权图,...

2019-08-31 20:12:17 675

原创 P3379 【模板】最近公共祖先(LCA)

题目描述如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。输入格式第一行包含三个正整数N、M、S,分别表示树的结点个数、询问的个数和树根结点的序号。接下来N-1行每行包含两个正整数x、y,表示x结点和y结点之间有一条直接连接的边(数据保证可以构成树)。接下来M行每行包含两个正整数a、b,表示询问a结点和b结点的最近公共祖先。输出格式输出包含M行,每行包含一个...

2019-08-15 11:16:16 272

原创 线段树的区间修改模板(含懒惰标记)

#include <bits/stdc++.h>#define int long longconst int maxn=1e5+5;using namespace std;typedef struct tree{ int l,r,sum,add,len;//l,r区间左右界,sum是维护的区间和,add是懒惰标记,len是区间长度} tr;tr tree[max...

2019-08-14 17:36:05 326

原创 洛谷P3384 【模板】树链剖分

题目描述如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作:操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节点的值都加上z操作2: 格式: 2 x y 表示求树从x到y结点最短路径上所有节点的值之和操作3: 格式: 3 x z 表示将以x为根节点的子树内所有节点值都加上z操作4: 格式: 4 x 表示求以x为根节点的子树...

2019-08-14 17:28:24 257

原创 (动态可修改主席树模板:树状数组套静态主席树)洛谷P2617 Dynamic Rankings

题目描述给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1),并且,你可以改变一些a[i]的值,改变后,程序还能针对改变后的a继续回答上面的问题。你需要编一个这样的程序,从输入文件中读入序列a,然后读入一系列的指令,包括询问指令和修改指令。对...

2019-08-07 16:50:21 214

原创 链式前向星存图模板

#include <bits/stdc++.h>#define int long longconst int inf=0x3f3f3f3f;const int maxn=1e5+10;typedef struct edge{ int to,next;//to为终点编号,next是同起点的上一条边的编号}edg;edg e[maxn];//e[]是代表边的结构体,...

2019-07-27 16:29:46 221

原创 洛谷P3834 【模板】可持久化线段树 1(静态主席树模板)

题目背景这是个非常经典的主席树入门题——静态区间第K小数据已经过加强,请使用主席树。同时请注意常数优化题目描述如题,给定N个整数构成的序列,将对于指定的闭区间查询其区间内的第K小值。输入输出格式输入格式:第一行包含两个正整数N、M,分别表示序列的长度和查询的个数。第二行包含N个整数,表示这个序列各项的数字。接下来M行每行包含三个整数l, r, kl,r,k...

2019-07-24 20:19:00 226

原创 I Hate It (线段树维护区间最大值+单点修改)

这道题用到了线段树,之前看了相关的视频,对算法思路基本理解,但代码实现还有些困难,后来问了学长,自己又研究了一波,最后终于搞明白了。线段树视频地址:https://www.bilibili.com/video/av44354587点击此处查看题目线段树如图所示:完整代码:#include <iostream>#include <cstdio>#i...

2019-06-01 16:23:52 410

原创 leetcode105. 从前序与中序遍历序列构造二叉树

105. 从前序与中序遍历序列构造二叉树难度中等1404收藏分享切换为英文接收动态反馈给定两个整数数组preorder和inorder,其中preorder是二叉树的先序遍历,inorder是同一棵树的中序遍历,请构造二叉树并返回其根节点。示例 1:输入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]输出: [3,9,20,null,null,15,7]示例 2:输入: preorder = ...

2022-02-03 20:53:30 1042

原创 D. Extreme Subtraction(思维 差分 构造)

D. Extreme Subtractiontime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given an arrayaaofnnpositive integers.You can use the following operation as many times as you like:...

2020-11-05 21:11:17 362 2

原创 2020牛客国庆七天乐day02 CHEAP DELIVERIES(最短路+状压dp)

链接:https://ac.nowcoder.com/acm/contest/7818/B来源:牛客网题目描述Abu runs a delivery service where he deliver items from one city to another. As with any business, Abu wants to decrease his cost as much as possible. The further he travel, the more fuel he wil.

2020-10-15 00:55:00 1174

原创 Zeldain Garden(除法分块:o(sqrt(n)))

链接:https://ac.nowcoder.com/acm/contest/7817/E来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述Boris is the chief executive officer of Rock Anywhere Transport (RAT) company which specializes in supporting music ind.

2020-10-01 16:19:27 276

原创 Junk-Mail Filter(并查集+删点)

Junk-Mail FilterTime Limit: 15000/8000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14453Accepted Submission(s): 4357Problem DescriptionRecognizing junk mails is a tough task. The method used here consists ...

2020-09-30 21:19:23 390

原创 Be the Winner(反Nim博弈)

Be the WinnerTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5493Accepted Submission(s): 3045Problem DescriptionLet's consider m apples divided into n groups. Each group contains no more ...

2020-09-27 21:16:50 304

原创 Josephus again(约瑟夫环+优化)

Josephus againTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1124Accepted Submission(s): 326Problem DescriptionIn our Jesephus game, we start with n people numbered 1 to n around a circl...

2020-09-11 20:46:18 235

原创 Line belt(三分算法:三分套三分)

Line beltTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5801Accepted Submission(s): 2301Problem DescriptionIn a two-dimensional plane there are two line belts, there are two segments AB ...

2020-09-09 21:12:54 673 1

原创 Bob‘s Poor Math(字典树:Trie)

链接:https://ac.nowcoder.com/acm/problem/202301来源:牛客网题目描述Bob's math is really poor. He even doesn't know how does `carry' works in plus operation. In his world, the `plus' operation performed like this : 9+5=4{9+5=4}9+5=4, 99+99=88{99+99=88}99+99=88, .

2020-08-24 21:17:10 373

空空如也

空空如也

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

TA关注的人

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