自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (17)
  • 收藏
  • 关注

原创 初等数论(整除,模运算...)

整除定义设a,ba,ba,b为整数a≠0a≠0a​=0,如果存在一个整数qqq,使得a∗q=ba*q=ba∗q=b,则 bbb能被aaa整除,记为a∣ba|ba∣b,且称bbb是aaa的倍数,aaa是bbb的因子.整除的几个性质传递性:如果a∣ba|ba∣b且b∣cb|cb∣c,则a∣ca|ca∣ca∣ba|ba∣b且a∣ca|ca∣c等价于对于任意的整数x,yx,yx,y,有a∣(bx+cy)a|(bx+cy)a∣(bx+cy)设mmm不为0,则a∣ba|ba∣b等价于ma∣mbma|mb

2020-11-24 19:25:50 676 1

原创 2020CSP-J普及组复赛(民间数据)题解

T1 优秀的拆分这一道题就是一道签到题这道题我们可以很快速的发现,若n为奇数(即n%2==1),则n必定无法拆分;若n为偶数,其实就只需要有以下操作:1.先通过计算2的k次幂,找到第一个满足大于等于n的值2.计算当n-k>=0时,输出k,随后将k = k/2 最后当n等于0,则输出即为其优秀拆分还可以直接把2的次幂打出来,再枚举代码#include<cstdio>#include<algorithm>#include<cstring>#inc

2020-11-13 19:23:17 1862

原创 「总结」树形DP

什么是树形DP?概念:给定一棵有N个节点的树(通常是无根树,也就是有N-1条无向边),我们可以任选一个节点为根节点,从而定义出每个节点的深度和每棵子树的根。在树上设计动态规划算法时,一般就以节点从深到浅(子树从小到大)的顺序作为DP的“阶段”。DP的状态表示中,第一维通常是节点编号(代表以该节点为根的子树)。大多数时候,我们采用递归的方式实现树形动态规划。对于每个节点x,先递归在它的每个子节点上进行DP,在回溯时,从子节点向节点x进行状态转移。如何树形DP?树形DP一般可以解决三类问题:

2020-10-04 14:48:10 1905 4

原创 谜一样的牛 - 题解

题目描述有n头奶牛,已知它们的身高为 1~n 且各不相同,但不知道每头奶牛的具体身高。现在这n头奶牛站成一列,已知第i头牛前面有Ai头牛比它低,求每头奶牛的身高。输入格式第1行:输入整数n。第2…n行:每行输入一个整数Ai,第i行表示第i头牛前面有Ai头牛比它低。 (注意:因为第1头牛前面没有牛,所以并没有将它列出)输出格式输出包含n行,每行输出一个整数表示牛的身高。第i行输出第i头牛的身高。样例样例输入51210样例输出24531算法分析这道

2020-08-23 22:08:08 273 2

原创 快餐店 题解

题目描述由于厌倦了家里工作(家里蹲)的生活,阿波罗决定去开一家名叫KabaleoLiteKabaleoLiteKabaleoLite的快餐店。这家快餐店内共有nnn种食物,从111到nnn编号,第iii种食物的利润为aiaiai。由于某些菜用了比较昂贵的食材,所以,有些食物的利润有可能为负。在第一天,阿波罗准备了bibibi盘第种食物。阿波罗的餐厅有一个十分神奇的点餐方法。对于每一位顾客,阿波罗都会亲自挑选一盘菜给这位顾客享用。当阿波罗这样做时,会遵守以下规定:1、每一位顾客至少会得到一盘菜。2

2020-08-22 22:13:24 409 1

原创 「一本通 3.7 练习 2」Ant Trip 题解

题目描述原题来自:2009Multi−UniversityTrainingContest12−HostbyFZU原题来自:2009 Multi-University Training Contest 12 - Host by FZU原题来自:2009Multi−UniversityTrainingContest12−HostbyFZU给你无向图的NNN个点和MMM条边,保证这MMM条边都不同且不会存在同一点的自环边,现在问你至少要几笔才能所有边都画一遍。(一笔画的时候笔不离开纸)输入格式多

2020-08-20 21:38:39 293 1

原创 病毒(virus) 题解 - 拓扑排序

题目有一天,小y突然发现自己的计算机感染了一种病毒!还好,小y发现这种病毒很弱,只是会把文档中的所有字母替换成其它字母,但并不改变顺序,也不会增加和删除字母。现在怎么恢复原来的文档呢!小y很聪明,他在其他没有感染病毒的机器上,生成了一个由若干单词构成的字典,字典中的单词是按照字母顺序排列的,他把这个文件拷贝到自己的机器里,故意让它感染上病毒,他想利用这个字典文件原来的有序性,找到病毒替换字母的规律,再用来恢复其它文档。现在你的任务是:告诉你被病毒感染了的字典,要你恢复一个字母串。输入格式第一

2020-08-19 21:46:01 820 1

原创 拓扑排序(详细分析)

什么是拓扑排序?拓扑排序,对一个有向无环图(DirectedAcyclicGraph简称DAG)(Directed Acyclic Graph简称DAG)(DirectedAcyclicGraph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G)<u,v>∈E(G)<u,v>∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(TopologicalOrder)(Topologi

2020-08-18 19:54:43 912 1

原创 Star Way To Heaven 题解

题目描述小www伤心的走上了 StarwaytoheavenStar way to heavenStarwaytoheaven。到天堂的道路是一个笛卡尔坐标系上一个n∗mn*mn∗m的长方形通道 顶点在(((顶点在(0,0)(0,0)(0,0)和(n,m))(n,m))(n,m)) 。小www从最左边任意一点进入,从右边任意一点走到天堂,最左最右的距离为nnn,上下边界距离为mmm。其中长方形有kkk个StarStarStar,每个StarStarStar都有一个整点坐标,StarStarStar

2020-08-17 20:27:38 436

原创 最小生成树之 prim算法、kruskal算法(详细分析)

最小生成树知识点什么是最小生成树?生成树:一个连通图含有图中全部nnn个顶点,但只有足以构成一棵树的n−1n-1n−1条边。一颗有nnn个顶点的生成树有且仅有n−1n-1n−1条边,如果生成树中再添加一条边,则必成环。最小生成树:在连通的所有生成树中,所有边的代价和最小的生成树,称为最小生成树。如何求到最小生成树?① Prim算法原理:从起始顶点出发,选择当前可用的最小权值边,把对应的顶点加入到当前建立的生成树中来。令初始状态为www,所有顶点的结合为VVV,当前剩余没用的顶点集合

2020-08-15 14:53:22 224

原创 「樱花」 题解

题目背景又到了一年樱花盛开的时节。Vani 和妹子一起去看樱花的时候,找到了一棵大大的樱花树,上面开满了粉红色的樱花。Vani 粗略估计了一下,一共有足足 n!n! 片花瓣。Vani 轻柔地对她说:“你知道吗?这里面的一片花瓣代表着你,我从里面随机摘一片,能和你相遇的概率只有 1/n!1/n! 那么小。我该是多么的幸运,才让你今天这么近地站在我面前。相信我,我一定会把这亿万分之一的缘分变为永远。”粉红的樱花漫天飞舞,妹子瞬间被 Vani 感动了。她轻轻地牵起了他的手,和他相依而坐。这时,她突然看到田野

2020-08-11 21:08:50 243

原创 「CF230A」龙的战争(详细分析)

题目描述Kirito现在被困在一个MMORPG游戏当中,为了离开这个游戏,他现在必须和n条龙进行战斗,Kirito和这n头龙都有一个力量值,用整数表示,Kirito最初的力量值为s。如果在Kirito和第i头龙(1 ≤ i ≤ n)的对决当中,Kirito的力量不大于龙的力量xi,那么,Kirito将输掉对决并死亡。如果Kirito的力量大于龙的力量,那么,Kirito将打败这条龙并且升级获得额外的力量提升。现在,Kirito可以按照任意顺序和这些龙进行决斗,请问,Kirito能否离开这个游戏,即Ki

2020-08-11 19:07:11 389

原创 【题解】质数距离

题目描述题目描述给定两个整数 ,求闭区间[L,R][L,R][L,R]中相邻两个质数差值最小的数对与差值最大的数对。当存在多个时,输出靠前的素数对。输入格式多组数据。每行两个数L,RL,RL,R。输出格式详见输出样例。样例样例输入2 1714 17样例输出2,3 are closest, 7,11 are most distant.There are no adjacent primes.题目分析这一道题很明显是素数筛的题,一般做素数筛都用线筛,因为要快一些,这

2020-08-10 21:01:56 936

原创 【总结】数论素数筛之 线筛、埃筛

一、朴素筛法根据素数的定义而每个数都进行一次2到(i−1)2到(i-1)2到(i−1)的ModModMod,如果被整除则不是质数。代码bool Prime(int a){ for(int i=2;i<a;i++){ if(a%i==0){ return false; } } return true;}优化这个朴素判断质数中还可以进行优化,使代码的时间复杂度减少很多。对于每个小于根号i根号i根号i的因数,一定有一个大于根号i根号i根号i的因数与之配对,使得两个数的积为

2020-08-10 20:17:11 260

原创 图论最短路之Floyd、Dijkstra、Bellman-Ford、Spfa(详细分析)

这一篇博客主要是最短路四大方法模板的归纳一、Floyd佛洛伊德是最简单的最短路径算法,可以计算图中任意两点间的最短路径。时间复杂度为O(N3),适用于出现负边权的情况。算法描述:( a )初始化:点u、v如果有边相连,则dis[u][v]=w[u][v]如果不相连,则dis[u][v]=0x3f( b )模板:for(k=1;k<=n;k++){ for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ if(dis[i][j]>dis[i

2020-08-09 16:23:28 383 3

原创 【题解】图论最短路之 分糖果(candy)

题目描述童年的我们,将和朋友分享美好的事物作为自己的快乐。这天,C小朋友得到了Plenty of candies,将要把这些糖果分给要好的朋友们。已知糖果从一个人传给另一个人需要1 秒的时间,同一个小朋友不会重复接受糖果。由于糖果足够多,如果某时刻某小朋友接受了糖果,他会将糖果分成若干份,分给那些在他身旁且还没有得到糖果的小朋友们,而且自己会吃一些糖果。由于嘴馋,小朋友们等不及将糖果发完,会在得到糖果后边吃边发。每个小朋友从接受糖果到吃完糖果需要m秒的时间。那么,如果第一秒C小朋友开始发糖,第多少秒所有

2020-08-07 20:39:55 1267

原创 图论最短路之 信使(msner)(详细分析)

题目描述战争时期,前线有n个哨所,每个哨所可能会与其他若干个哨所之间有通信联系。信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位)。指挥部设在第一个哨所。当指挥部下达一个命令后,指挥部就派出若干个信使向与指挥部相连的哨所送信。当一个哨所接到信后,这个哨所内的信使们也以同样的方式向其他哨所送信。直至所有n个哨所全部接到命令后,送信才算成功。因为准备充足,每个哨所内都安排了足够的信使(如果一个哨所与其他k个哨所有通信联系的话,这个哨所内至少会配备k个信使)。现在总指挥请你编一个程序,计算

2020-07-30 21:26:09 894

原创 图论最短路 之 弗洛伊德Floyd(详细分析)

什么是Floyd算法佛洛伊德是最简单的最短路径算法,可以计算图中任意两点间的最短路径。时间复杂度为O(N3),适用于出现负边权的情况。怎么用代码实现?算法描述:( a )初始化:点u、v如果有边相连,则dis[u][v]=w[u][v]如果不相连,则dis[u][v]=0x3f( b )模板:for(k=1;k<=n;k++){ for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ if(dis[i][j]>dis[i][k]+di

2020-07-29 20:46:01 651

原创 树状数组 之 冒泡排序(详细分析)

题目描述clj 想起当年自己刚学冒泡排序时的经历,不禁思绪万千当年,clj 的冒泡排序(伪)代码是这样的:flag=falsewhile (not flag): flag=true for i = 0 to N-2: if A[i+1] < A[i]: swap A[i], A[i+1] flag=false现在的 clj 想知道冒泡排序究竟有多慢,所以在(伪)代码的第三行下面加入了这么一句:printf(“LJS NB

2020-07-28 21:58:19 237

原创 模拟 之 神奇的幻方游戏(详细分析)

题目描述输入格式输入只有一行,包含一个整数,即幻方的大小。输出格式输出包含N行,每行N个整数,即按上述方法构造出的N*N的幻方。相邻两个整数之间用单个空格隔开。样例输入样例3输出样例8 1 63 5 74 9 2算法分析这一题非常的简单。幻方这道模拟题,主要是条件是否...

2020-07-27 18:59:04 497

原创 【总结】树状数组 之 区间、单点问题(详细分析)

①题目描述输入格式输出格式对于每个 2 l r 操作输出一行,每行有一个整数,表示所求的结果。样例样例输入3 21 2 31 2 02 1 3样例输出6算法分析

2020-07-26 20:44:08 190

原创 【题解】模拟 之 火柴棒等式(详细分析)

题目描述给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示:注意:1.加号与等号各自需要两根火柴棍2.如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0)3.n根火柴棍必须全部用上输入格式输入文件matches.in共一行,又一个整数n(n<=24)。输出格式输出文件matches.out共一行,表示能拼成的不同等式的数目。样例

2020-07-25 20:41:30 715 1

原创 【题解】模拟、字符串 之 字符串的展开(详细分析)

题目描述在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数字串替代其中的减号,即,将上面两个子串分别输出为“defgh”和“45678”。在本题中,我们通过增加一些参数的设置,使字符串的展开更为灵活。具体约定如下:(1)遇到下面的情况需要做字符串的展开:在输入的字符串中,出现了减号“-”,减号两侧同为小写字母或同为数字,且按照ASCII码的顺序,减号右边的字符严格

2020-07-25 19:58:15 179

原创 【题解】搜索 之 细胞、最好的草(详细解析)

①细胞 题目描述题目描述一个矩形阵列由数字0~9组成,数字1 ~9代表细胞,如果一个数的上下左右有相同的数,则它们属于同一个细胞,求给定的矩形阵列的细胞个数 如:138332125322235312一共有10个细胞。输入格式•第一行两个整数n,m。(n<=1000,m<=1000)表示矩阵有n行m列。接下来是这个矩阵。输出格式有多少细胞样例##样例输入3 5323722527519145##样例输出13算法分析这一道题算是一个搜索的板题

2020-07-23 20:58:32 552 1

原创 STL 之 优先队列、Vector、Set及其重要经典例题 3——Set(详细分析)

可以观看此ppt,里面的题解析详细。点这里接着 上一篇 说…三、Set基础内容概念set翻译为集合,是一个内部自动有序且不含重复元素的容器。set最主要的作用就是自动去重并按升序排序,因此遇到需要去重但是又不方便直接开数组的情况,比如元素比较多或者类型不是int,可以尝试用set解决。set中的元素是唯一的,其内部采用“红黑树”实现。使用set,也必须加#include < set>及using namespace std;。Set 访问set只能通过迭代器访问,即

2020-07-23 19:42:04 150

原创 STL 之 优先队列、Vector、Set及其重要经典例题2——优先队列 priority_queue(详细分析)

可以观看此ppt,里面的题解析详细。点这里接着 上一篇 说…二、优先队列基础内容概念priority_queue翻译为优先队列,一般用来解决一些贪心问题,其底层是用堆来实现的。在优先队列中,任何时刻,队首元素一定是当前队列中优先级最高的那一个。使用优先队列,也必须加#include < queue>及using namespace std;。注意:和queue不一样的是,priority_queue没有front()和back(),而只能通过top()或pop()访问队

2020-07-22 21:05:43 329

原创 STL 之 优先队列、Vector、Set及其重要经典例题1——Vector(详细分析)

可以观看此ppt,里面的题解析详细。点这里一、Vector基本内容定义:vector直译为“向量”,一般说成“变长数组”,也就是长度根据需要而自动改变的数组,有些题目需要开很多数组,往往造成内存超限,使用vector简单方便,还可节省空间,使用vector,必须加 #include< vector> 及using namespace std;。。。。其余基础请观看ppt 点这里终于来到例题环节。。。①上网统计题目描述在一个网络系统中有N个用户1≤N≤1000、

2020-07-21 21:50:26 397

原创 【题解】区间DP之 分离与合体 (详细分析)

题目描述经过在机房里数日的切磁,LYD从社神牛那里学会了分离与合体,出关前,杜神牛给了他一个测试杜神牛造了个区域,它们紧邻着排成了一行,编号1-n。在这經个区域里都放着一把OI界的金钥匙,每一把都有一定的价值,LYD当然想得到它们了。然而杜神牛规定LYD不可以一下子把它们全部拿走,而是每次只可以拿一把。为了尽快地拿到所有的金钥匙,LYD自然就用上了刚学的分离与合体特技。开始LYD可以选择从1~n-11~n-11~n-1的任何一个区域(记为K)进入,进入后LYD会在K区域发生分离,从而分离为两个小

2020-07-20 16:41:29 198

原创 字符串、区间DP之 删除字符串、最长回文串、乘积最大(详细分析)

①删除字符串题目描述题目描述给出一个长度为n的字符串,每次可以删除一个字母相同的子串,问最少需要删多少次。 数据规模:n <= 500输入格式第1行:1个整数,表示字符串的长度第2行:n个字符的字符串输出格式第1行:1个整数,表示答案样例样例输入5abaca样例输出3算法分析此题即为典型的区间DP题,根据题目可以设以 dp[l,r]是为 l 到 r区间删除完字符串的最小次数,可分两种情况讨论:一般情况下,dp[l,r]由长度可以通过 dp[l+1,

2020-07-19 20:42:12 1229 2

原创 区间DP之 能量项链 (详细分析)

这一题最好先观看 石子合并2题目描述在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为m×r×n(Mars单位)

2020-07-19 18:49:02 279 2

原创 DP之 石子合并1、2 (详细分析)

石子合并1题目描述设有N堆石子排成一排,其编号为1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有4堆石子分别为 1 3 5 2, 我们可以先合并1、2堆,代价为4,得到4 5 2, 又合并 1,2堆,代价为9,得到9 2 ,再合并得到11,总代价为4+9+11=24;如果第二步是先合并2,3堆,

2020-07-18 21:41:41 1626 2

原创 贪心之旅行家的预算(详细分析)

题目描述一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(0<=N<=100),油站i离出发点的距离Di、每升汽油价格Pi(i=1,2,……N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No solution”。输入格式第1行:5个空格分开的数据,分别表示D1 C D2 P N 第2…N+1行:每行3个空格分开的数

2020-07-13 15:19:52 515 1

原创 搜索之抓住那头牛(详细分析)2

抓住那头牛1上次在抓住那头牛1(见上链接)中说到要用到bfs,思路正确,但是却要超时,所以必须缩短时间而缩短时间的方法就是用二分,在所有可能中通过二分寻找正确答案。#include<cstdio>#include<algorithm>using namespace std;const int M=1000005;int a[M],b[M];int ans;bool flag[M];void bfs(int n,int k){ if(n==k){ prin

2020-07-09 12:33:20 212 1

原创 二分、搜索之扩散(详细分析)

题目描述一个点每过一个单位时间就会向四个方向扩散一个距离,如图。两个点a、b连通,记作e(a,b),当且仅当a、b的扩散区域有公共部分。连通块的定义是块内的任意两个点u、v都必定存在路径e(u,a0),e(a0,a1),…,e(ak,v)。给定平面上的n给点,问最早什么时刻它们形成一个连通块。输入格式第一行一个数n,以下n行,每行一个点坐标。输出格式输出仅一个数,表示最早的时刻所有点形成连通块。样例样例输入20 05 5样例输出5【数据规模】对于20%的数据,满足

2020-07-09 10:46:16 201 1

原创 搜索、贪心之马里奥的梯子(详细分析)

题目描述马里奥是有趣的小游戏。在这个游戏的场景里,整个画面被分成N行M列,从上到下分别是1到N行,从左到右分别是1到M列。地面是第N行,它是完整的平台,初始时,马里奥站在地面上,他在地面上可以安全地左右行走。在地面上方的一些行上,可能有不连续的平台。马里奥在任一段平台上可以安全地左右行走。马里奥有一架梯子。他可以用梯子在不同高度的平台之间爬上爬下。马里奥从高的平台不能往下跳,也必须用梯子。他可以在任意位置使用梯子,次数无限制。准确地说,如果梯子的高度为L,马里奥可以从位置(i1, j) 爬到位置 (i

2020-07-07 14:09:09 304

原创 搜索之抓住那头牛(详细分析)

题目描述农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:1、从X移动到X-1或X+1,每次移动花费一分钟2、从X移动到2*X,每次移动花费一分钟假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?输入格式两个整数,N和K输出格式一个整数,农夫抓到牛所要花费的最小分钟数样例样例1输入5 17样例1输出4样例2

2020-07-06 13:50:46 1032

原创 贪心之老鼠与猫的交易(详细分析)

题目描述有一只老鼠很喜欢奶酪,但是奶酪被分别放在N个房间里,而且这些房间都有一只猫咪看守,现在它准备和猫咪们做个交易。它有M磅的猫食,想用这M磅猫食换取奶酪。在猫咪看守的每一个房间里有奶酪J[i]磅,同时猫咪需要F[i]磅的食物,如果老鼠给猫咪F[i](a)%的猫食,那么它就可以得到J[i](a)%的奶酪。现在已知每只猫咪对猫食的需求量和每个房间的奶酪数,那老鼠怎样才能换得最多的奶酪呢?输入格式第一行输入两个正整数M和N(M和N不大于10000),后面跟N行(每个房间的奶酪数和猫食的需求量)。

2020-07-05 09:51:06 2231 5

原创 贪心之补丁数组(详细分析)

题目描述给定一个长度为l的有序非负整数列nums和一个整数n,最少需要添加多少个数可以使得[1,n]间的每一个数都可以被数列中若干个数的和来表示。(数组中的元素不能重复使用)输出最少需要添加多少个数字。输入格式共计两行。第一行:两个整数l和n,分别代表数列nums的长度和整数n。(l不大于10^5,n不大于INT_MAX)第二行:l个有序非负整数。(每个数不大于10^4)输出格式最少需要添加的数字个数样例样例1输入2 61 3样例1输出1样例2输入3 201

2020-07-01 13:28:32 348

原创 DP之拦截导弹(详细分析)

第一次写博客,大佬勿喷题目描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度,计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。输入格式第1行:依次输入若干个导弹的高度H(1≤H≤30000),导弹的个数N≤5000

2020-06-30 13:40:44 475 1

模运算的定律.pptx

BSNY 在学等差数列和等比数列,当已知前三项时,就可以知道是等差数列还是等比数列。现在给你序列的前三项,这个序列要么是等差序列,要么是等比序列,你能求出第 项的值吗。 如果第 项的值太大,对 取模。

2020-09-04

RMQ知识点.pptx

号从1到N,每种食材有自己的美味度Di。食堂的厨师很奇怪,他只会用编号连续的食材做菜,并且一道菜包含的食材种类数至少是L种,但又不能超过R种。一道菜的美味度等于它包含的所有种类食材的美味度之和。如果两道菜包含的食材种类完全一致,那么就被认为是相同的。 现在厨师要准备M道不同的菜,你能告诉他这M道菜的美味度之和最大是多少吗?

2020-08-24

倍增知识点.pptx

倍增知识点.pptx

2020-08-23

欧拉回路知识点.pptx

有一天一位灵魂画师画了一张图,现在要你找出欧拉回路,即在图中找一个环使得每条边都在环上出现恰好一次。 一共两个子任务: 无向图。 有向图。 输入格式 第一行一个整数 t,表示子任务编号。t∈{1,2},如果 t=1 则表示处理无向图的情况,如果 t=2 则表示处理有向图的情况。 第二行两个整数 n,m,表示图的结点数和边数。

2020-08-20

拓扑排序知识点.pptx

为了涂色,APM 需要使用一组刷子。每个刷子蘸了颜色 。APM 拿起一把蘸有颜色 的刷子,并给所有颜色为 的矩形涂色。请注意,涂色有顺序要求:为了避免颜料渗漏使颜色混合,一个矩形只能在所有紧靠它上方的矩形涂色后,才能涂色。例如图中矩形 必须在 和 涂色后才能涂色。注意,每一个矩形必须立刻涂满,不能只涂一部分。 写一个程序求一个使 APM 拿起刷子次数最少的涂色方案。注意,如果一把刷子被拿起超过一次,则每一次都必须记入总数中。

2020-08-18

最小生成树.pptx

我也要用 只看原创 排序: 按最后发布时间 按访问量 RSS订阅 原创 最大公约数和最小公倍数 文章目录1.最大公约数欧几里得算法证明gcd(a,b)=gcd(b,bmod  &nbsp;a)gcd(a,b)=gcd(b,b\mod\ a)gcd(a,b)=gcd(b,bmod&nbsp;a)1.最大公约数最大公约数的英文是Greatest Common Divisor,常缩写为 gcd。我们首先先了解一下约数的概念:如果存在一个整数kkk,使得a=kda=kda=kd ,则ddd称aaa整除,记做d∣ad|ad∣a,称aaa是ddd的倍数,如果d&gt;0d&gt;0d&gt;0,称ddd是 2020-08-13 19:10:01 15 原创 素数与素数筛 文章目录素数的定义素数的判断从2到x\sqrt xx​的证明:素数筛法:1.Eratosthenes 筛法线性筛法素数的定义啊,耳熟能详。素数又称质数,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。啊!1不是素数啊素数的判断啊,也耳熟能详了,暴力枚举一下除1和本身的自然数是否会被整除。bool is_prime(int x) { for(int i=2;i&lt;x;i++) if(x%i==0) return 2020-08-10 17:37:09 13 原创 高精度算法 文章目录1.原理接受:进位,借位处理:1.加法进位:2.减法借位:3.乘法进位:加法代码:减法代码:乘法代码:除法代码:福利:四则运算压位:听lhy说,高精度要考试,所以写一篇来临时抱佛脚在某些题中,有可能数据范围非常大,我们无法用一个变量来存,我们就需要用高精度。1.原理简单,我们就是用一个数组来进行存储一个数,你可以一个变量存一个数位,也可以一个变量存多个数位,也叫压位(只要不超过其范围即可)。接受:int a[1005],len;void inin() { char al[1005]; 2020-08-09 20:06:17 6 原创 引水入城题解 目录题目描述:输入格式:输出格式:样例:思路:代码:题目描述:在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政区划十分特殊,刚好构成一个 行 列的矩形,如上图所示,其中每个格子

2020-08-13

并查集复习及其重要例题.pptx

如果给出各个元素之间的联系,要求将这些元素分成几个集合,每个集合中的元素直接或间接有联系。在这类问题中主要涉及的是对集合的合并和查找,因此将这种集合称为并查集

2020-08-12

并查集重要知识点及例题.pptx

如果给出各个元素之间的联系,要求将这些元素分成几个集合,每个集合中的元素直接或间接有联系。在这类问题中主要涉及的是对集合的合并和查找,因此将这种集合称为并查集

2020-08-12

素数筛法总结.pptx

素数一般指质数。质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。质数只有两个正因数(1和自己)的自然数即为质数。比1大但不是素数的数称为合数。1和0既非素数也非合数。

2020-08-10

NOIP图论最短路.pptx

算法描述: 设起点为s,dis[v]表示从指定起点s到v的最短路径,pre[v]为v的前驱,用来输出路径 (a)初始化 memset(dis,+∞),memset(vis,0); (v:1~n)dis[v]=w[s][v],bool vis[v]=0; dis[s]=0;pre[s]=0;vis[s]=1; (b)for(i=1;i<=n-1;i++)

2020-07-30

图的概念、表示与遍历.pptx

深度优先遍历(dfs) 访问标记避免重复vis[N]、add_edge(起点,终点){G[v].push_back(u);无向反向} 广度优先遍历(bfs) 队列、优先队列(字典序) 拓扑排序 判定有向无环图(DAG)

2020-07-29

NOIP图论最短路.pptx

最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。

2020-07-29

树状数组精品内容详细.pptx

树状数组(Binary Indexed Tree(B.I.T)也称作Fenwick Tree)是一个区间查询和单点修改复杂度都为log(n)的数据结构。主要用于查询任意两点之间的所有元素之和。

2020-07-26

hash概念及其重要题型.pptx

Hash函数: 根据关键字直接计算出元素所在位置的函数根据设定的哈希函数 H(key) 和处理冲突的方法将一组关键字映象到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“象”作为记录在表中的存储位置,这种表便称为哈希表,这一映象过程称为哈希造表或散列,所得存储位置称为哈希地址或散列地址。

2020-07-23

STL概念及其应用.pptx

STL 之 优先队列、Vector、Map及其重要经典例题我们可以根据格式直接调用,而不用去关心其内部实现的原理和具体代码,十分方便快捷!常见的容器有vector、stack、queue、map、set等。

2020-07-21

二叉堆的概念及其应用.pptx

二叉堆的概念及其应用,里面包含果子合并、堆排序、鱼塘钓鱼、最小函数值、Sequence等重要题型的详细解析

2020-07-21

c++区间DP重要知识点与问题.pptx

区间dp课程ppt。内容包含石头合并1、2,删除字符串、最大回文数、能量项链、乘积最大问题,等区间dp重要内容。

2020-07-19

空空如也

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

TA关注的人

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