
Acwing
镇长1998
菜鸟升级。
展开
-
数论
质数的定义:对于大于1的自然数,如果它的因子中只有1和它本身,则是一个质数也称素数。从定义可以看出质数的取值范围是从2开始的,小于2的数肯定不是质数。质数的判定: 试除法 假设 d是n的一个因子,那么n/d 也是n的一个因子。因此我们只需要枚举小的因子,如果小的因子都除不尽,则是一个质数, d <= n/d 即 d <= 根号下n 时间复杂度 O(根号下n) ...原创 2019-08-29 09:44:28 · 397 阅读 · 0 评论 -
Acwing 244. 谜一样的牛
有n头奶牛,已知它们的身高为 1~n 且各不相同,但不知道每头奶牛的具体身高。现在这n头奶牛站成一列,已知第i头牛前面有Ai头牛比它低,求每头奶牛的身高。输入格式第1行:输入整数n。第2..n行:每行输入一个整数Ai,第i行表示第i头牛前面有Ai头牛比它低。(注意:因为第1头牛前面没有牛,所以并没有将它列出)输出格式输出包含n行,每行输出一个整数表示牛的身高。第i行输...原创 2020-03-29 20:26:00 · 168 阅读 · 1 评论 -
Acwing 1048. 鸡蛋的硬度
最近XX公司举办了一个奇怪的比赛:鸡蛋硬度之王争霸赛。参赛者是来自世界各地的母鸡,比赛的内容是看谁下的蛋最硬,更奇怪的是XX公司并不使用什么精密仪器来测量蛋的硬度,他们采用了一种最老土的办法–从高度扔鸡蛋–来测试鸡蛋的硬度,如果一次母鸡下的蛋从高楼的第a层摔下来没摔破,但是从a+1层摔下来时摔破了,那么就说这只母鸡的鸡蛋的硬度是a。你当然可以找出各种理由说明这种方法不科学,比如同一只母鸡下...原创 2020-03-17 22:53:21 · 198 阅读 · 0 评论 -
Acwing 756. 蛇形矩阵
输入两个整数n和m,输出一个n行m列的矩阵,将数字 1 到 n*m 按照回字蛇形填充至矩阵中。具体矩阵形式可参考样例。输入格式输入共一行,包含两个整数n和m。输出格式输出满足要求的矩阵。矩阵占n行,每行包含m个空格隔开的整数。数据范围1≤n,m≤100输入样例:3 3输出样例:1 2 38 9 47 6 5定义四个方向,沿着一个方向...原创 2020-03-15 23:43:12 · 363 阅读 · 0 评论 -
Acwing 算法进阶指南 165. 小猫爬山
翰翰和达达饲养了N只小猫,这天,小猫们要去爬山。经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<)。翰翰和达达只好花钱让它们坐索道下山。索道上的缆车最大承重量为W,而N只小猫的重量分别是C1、C2……CN。当然,每辆缆车上的小猫的重量之和不能超过W。每租用一辆缆车,翰翰和达达就要付1美元,所以他们想知道,最少需要付多少美元才能把这...原创 2020-03-07 10:39:14 · 391 阅读 · 0 评论 -
算法进阶指南 Acwing 137. 雪花雪花雪花
有N片雪花,每片雪花由六个角组成,每个角都有长度。第i片雪花六个角的长度从某个角开始顺时针依次记为ai,1,ai,2,…,ai,6。因为雪花的形状是封闭的环形,所以从任何一个角开始顺时针或逆时针往后记录长度,得到的六元组都代表形状相同的雪花。例如ai,1,ai,2,…,ai,6和ai,2,ai,3,…,ai,6,ai,1就是形状相同的雪花。ai,1,ai,2,…,ai,6和ai,6...原创 2020-03-06 22:29:45 · 357 阅读 · 0 评论 -
Acwing 149. 荷马史诗 K叉堆
追逐影子的人,自己就是影子。 ——荷马达达最近迷上了文学。她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的《荷马史诗》。但是由《奥德赛》和《伊利亚特》组成的鸿篇巨制《荷马史诗》实在是太长了,达达想通过一种编码方式使得它变得短一些。一部《荷马史诗》中有 n 种不同的单词,从 1 到 n 进行编号。其中第 i 种单词出现的总次数为wi。达达想要用 k 进制串...原创 2020-03-01 20:42:11 · 234 阅读 · 0 评论 -
算法进阶指南 64位整数乘法
求a乘b对p取模的值。输入格式第一行输入整数a,第二行输入整数b,第三行输入整数p。输出格式输出一个整数,表示a*b mod p的值。数据范围1≤a,b,p≤10^18输入样例:345输出样例:2思路: 采用和快速幂类似的思路b按照二进制位可以分成 Ck-1 * 2^(k -1) + Ck-2 * 2^(k -2) + Ck-...原创 2020-02-25 22:08:40 · 365 阅读 · 0 评论 -
Acwing 1299. 五指山
大圣在佛祖的手掌中。我们假设佛祖的手掌是一个圆圈,圆圈的长为n,逆时针记为:0,1,2,…,n−1,而大圣每次飞的距离为d。现在大圣所在的位置记为x,而大圣想去的地方在y。要你告诉大圣至少要飞多少次才能到达目的地。注意:孙悟空的筋斗云只沿着逆时针方向翻。输入格式有多组测试数据。第一行是一个正整数T,表示测试数据的组数;每组测试数据包括一行,四个非负整数,分...原创 2020-02-22 17:37:05 · 252 阅读 · 0 评论 -
Acwing 1326. 军训队列
有n名学生参加军训,军训的一大重要内容就是走队列,而一个队列的不整齐程度是该队中最高的学生的身高与最矮的学生的身高差值的平方。现在要将nn名参加军训的学生分成k个队列,每个队列的人数可以是任意非负整数。在安排队列时希望所有队列的不整齐度之和尽量小,请问不整齐度之和最小可以是多少?输入格式第一行两个整数n,k,表示学生人数和队列数。第二行n个整数,依次表示每名学...原创 2020-02-20 23:08:30 · 429 阅读 · 0 评论 -
Acwing 1324 五子棋
小A和小B在下五子棋。五子棋是在一个由网格构成的棋盘内进行的。网格有15行15列,共有225个交叉点。小A先手执黑棋,小B后手执白棋。两人轮流下棋,每次下棋都将一个自己的棋子放在棋盘上一个空白的交叉点上。然而,由于小A和小B都不知道五子棋的胜利条件,所以即使有一方已经胜利了,他们仍然会继续下棋。现在想请你帮忙分析一下,所下的棋局是在第几步...原创 2020-02-20 22:54:30 · 196 阅读 · 0 评论 -
Acwing 826. 单链表
实现一个单链表,链表初始为空,支持三种操作:(1) 向链表头插入一个数;(2) 删除第k个插入的数后面的数;(3) 在第k个插入的数后插入一个数现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入的数,第2个插入的数,…第n个插入...原创 2020-02-14 19:27:49 · 449 阅读 · 0 评论 -
蓝桥杯 1264. 动态求连续区间和
给定n个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列[a,b]的连续和。输入格式第一行包含两个整数n和m,分别表示数的个数和操作次数。第二行包含n个整数,表示完整数列。接下来m行,每行包含三个整数k,a,b (k=0,表示求子数列[a,b]的和;k=1,表示第a个数加b)。数列从1开始计数。输出格式输出若干行数字,表...原创 2020-01-18 12:13:58 · 318 阅读 · 0 评论 -
蓝桥杯 第四届蓝桥杯省赛C++B组 连号区间数
小明这些天一直在思考这样一个奇怪而有趣的问题:在1∼N的某个排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间 [L,R]里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R−L+1 的“连续”数列,则称这个区间连号区间。当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。...原创 2020-01-11 21:14:33 · 240 阅读 · 0 评论 -
第九届蓝桥杯省赛C++B组 递增三元组
给定三个整数数组A=[A1,A2,…AN],B=[B1,B2,…BN],C=[C1,C2,…CN],请你统计有多少个三元组(i,j,k) 满足:1≤i,j,k≤N Ai<Bj<Ck输入格式第一行包含一个整数N。第二行包含N个整数A1,A2,…AN。第三行包含N个整数B1,B2,…BN。第四行包含N个整数C1,C2,…CN。输...原创 2019-12-26 21:00:35 · 135 阅读 · 0 评论 -
第六届蓝桥杯省赛C++A组 饮料换购
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。输入格式输入一个整数n,表示初始买入的饮料数量。输出格式输出一个整数,表示一共能够喝到的饮料数量。数据范围0 < n &...原创 2019-12-17 20:20:20 · 217 阅读 · 0 评论 -
蓝桥杯 第七届蓝桥杯省赛C++A/B组 四平方和
四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去,就正好可以表示为4个数的平方和。比如:5=0^2+0^2+1^2+2^27=1^2+1^2+1^2+2^2对于一个给定的正整数,可能存在多种平方和的表示法。要求你对44个数排序:0≤a≤b≤c≤d并对所有的可能表示法按a,b,c,d 为联合主键升序排...原创 2019-12-15 14:39:36 · 211 阅读 · 0 评论 -
Acwing 99. 蓝桥训练 激光炸弹
一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标。现在地图上有N个目标,用整数Xi,Yi表示目标在地图上的位置,每个目标都有一个价值Wi。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个边长为R的正方形的边必须和x,y轴平行。若目标位于爆破正方形的边上,该目标不会被摧毁。求一颗炸弹最多能炸掉地图上总价值为多少的目标。输入格式第...原创 2019-12-15 14:28:07 · 212 阅读 · 0 评论 -
Acwing 蓝桥训练 790. 数的三次方根
给定一个浮点数n,求它的三次方根。输入格式共一行,包含一个浮点数n。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留6位小数。数据范围−10000 ≤ n ≤ 10000输入样例:1000.00输出样例:10.000000这道题明显的二分裸题,没什么好说的。但是有一个点,我一直容易犯错。就拿这个题来说: 对一个数 num ...原创 2019-12-08 16:49:29 · 355 阅读 · 0 评论 -
费解的开关
你玩过“拉灯”游戏吗?25盏灯排成一个5 x 5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字“1”表示一盏开着的灯,用数字“0”表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将...原创 2019-12-07 15:53:01 · 150 阅读 · 0 评论 -
Acwing 116. 飞行员兄弟
“飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有16个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个4х4的矩阵,您可以改变任何一个位置[i,j]上把手的状态。但是,这也会使得第i行和第j列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。输入格式输入一共包含四行,每...原创 2019-12-06 17:20:24 · 221 阅读 · 0 评论 -
Acwing 125. 耍杂技的牛
农民约翰的N头奶牛(编号为1..N)计划逃跑并加入马戏团,为此它们决定练习表演杂技。奶牛们不是非常有创意,只提出了一个杂技表演:叠罗汉,表演时,奶牛们站在彼此的身上,形成一个高高的垂直堆叠。奶牛们正在试图找到自己在这个堆叠中应该所处的位置顺序。这N头奶牛中的每一头都有着自己的重量Wi以及自己的强壮程度Si。一头牛支撑不住的可能性取决于它头上所有牛的总重量(不包括它自己)减去它的...原创 2019-11-24 23:02:08 · 232 阅读 · 0 评论 -
Acwing 886. 求组合数 II
给定n组询问,每组询问给定两个整数a,b,请你输出Cbamod(10^9+7)的值。输入格式第一行包含整数n。接下来n行,每行包含一组a和b。输出格式共n行,每行输出一个询问的解。数据范围1≤n≤10000,1≤b≤a≤10^5输入样例:33 15 32 2输出样例:3101a! / (b! * (a - b)!) 通过...原创 2019-10-21 23:43:09 · 322 阅读 · 0 评论 -
Acwing 876. 快速幂求逆元
给定n组ai,pi,其中pi是质数,求ai模pi的乘法逆元,若逆元不存在则输出impossible。注意:请返回在0∼p−1之间的逆元。乘法逆元的定义若整数b,m互质,并且b|a,则存在一个整数x,使得a/b≡a∗x(modm),则称x为b的模m乘法逆元,记为b^(−1)(modm)。b存在乘法逆元的充要条件是b与模数m互质。当模数m为质数时,b^(m−2)即为b的乘法逆元。...原创 2019-10-20 23:49:18 · 162 阅读 · 0 评论 -
Acwing 885. 求组合数 I
给定n组询问,每组询问给定两个整数a,b 请你输出Cbamod(10^9+7)的值。输入格式第一行包含整数n。接下来n行,每行包含一组a和b。输出格式共n行,每行输出一个询问的解。数据范围1≤n≤10000,1≤b≤a≤2000输入样例:33 15 32 2输出样例:3101组合数:从a个数中取出b个数,等于从a - 1个...原创 2019-10-19 23:58:33 · 147 阅读 · 0 评论 -
Acwing 860. 染色法判定二分图
给定一个n个点m条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。输入格式第一行包含两个整数n和m。接下来m行,每行包含两个整数u和v,表示点u和点v之间存在一条边。输出格式如果给定图是二分图,则输出“Yes”,否则输出“No”。数据范围1≤n,m≤10^5输入样例:4 41 31 42 32 4输出样例:Yes二...原创 2019-10-19 22:19:08 · 305 阅读 · 0 评论 -
Acwing 907. 区间覆盖
给定N个闭区间[ai,bi]以及一个线段区间[s,t],请你选择尽量少的区间,将指定线段区间完全覆盖。输出最少区间数,如果无法完全覆盖则输出-1。输入格式第一行包含两个整数s和t,表示给定线段区间的两个端点。第二行包含整数N,表示给定区间数。接下来N行,每行包含两个整数ai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示所需最少区间数。如果无解,则输出-1...原创 2019-10-16 12:32:59 · 381 阅读 · 0 评论 -
Acwing 905. 区间选点
给定N个闭区间[ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。位于区间端点上的点也算作区间内。输入格式第一行包含整数N,表示区间数。接下来N行,每行包含两个整数ai,bi 表示一个区间的两个端点。输出格式输出一个整数,表示所需的点的最小数量。数据范围1≤N≤10^5,−10^9≤ai≤bi≤10^9输...原创 2019-10-15 21:14:48 · 181 阅读 · 0 评论 -
Acwing 148. 合并果子
在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。假...原创 2019-10-12 23:47:04 · 327 阅读 · 0 评论 -
Acwing 900. 整数划分
一个正整数n可以表示成若干个正整数之和,形如:n=n1+n2+…+nk,其中n1≥n2≥…≥nk,k≥1。我们将这样的一种表示称为正整数n的一种划分。现在给定一个正整数n,请你求出n共有多少种不同的划分方法。输入格式共一行,包含一个整数n。输出格式共一行,包含一个整数,表示总划分数量。由于答案可能很大,输出结果请对10^9+7取模。数据范围1≤n≤1000输...原创 2019-10-12 23:09:17 · 217 阅读 · 0 评论 -
Acwing 278. 数字组合
给定N个正整数A1,A2,…,AN,从中选出若干个数,使它们的和为M,求有多少种选择方案。输入格式第一行包含两个整数N和M。第二行包含N个整数,表示A1,A2,…,AN输出格式包含一个整数,表示M。数据范围1≤N≤100,1≤M≤10000,1≤Ai≤1000输入样例:4 41 1 2 2输出样例:3前提: 分解方案中不考虑顺序 也就是...原创 2019-10-12 19:21:15 · 298 阅读 · 0 评论 -
Acwing 853. bellman_ford 有边数限制的最短路
给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。请你求出从1号点到n号点的最多经过k条边的最短距离,如果无法从1号点走到n号点,输出impossible。注意:图中可能存在负权回路。输入格式第一行包含三个整数n,m,k。接下来m行,每行包含三个整数x,y,z,表示点x和点y之间存在一条有向边,边长为z。输出格式输出一个整数,表示从1号点到n号...原创 2019-09-15 00:01:16 · 195 阅读 · 0 评论 -
Acwing 851 spfa求最短路
给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible。数据保证不存在负权回路。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示点x和点y之间存在一条有向边,边长为z。输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则...原创 2019-09-15 13:02:21 · 180 阅读 · 0 评论 -
Acwing 800. 数组元素的目标和
给定两个升序排序的有序数组A和B,以及一个目标值x。数组下标从0开始。请你求出满足A[i] + B[j] = x的数对(i, j)。数据保证有唯一解。输入格式第一行包含三个整数n,m,x,分别表示A的长度,B的长度以及目标值x。第二行包含n个整数,表示数组A。第三行包含m个整数,表示数组B。输出格式共一行,包含两个整数 i 和 j。数据范围数组长度不超过100...原创 2019-08-01 11:40:24 · 284 阅读 · 0 评论 -
剑指offer 49 LeetCode 264 Acwing 62. 丑数
我们把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。求第n个丑数的值。样例输入:5输出:5注意:习惯上我们把1当做第一个丑数。class Solution {public: int getUglyNumber(int n) { vector<int> q; ...原创 2019-09-14 18:17:27 · 229 阅读 · 0 评论 -
剑指offer 53(题目三) Acwing 69. 数组中数值和下标相等的元素
假设一个单调递增的数组里的每个元素都是整数并且是唯一的。请编程实现一个函数找出数组中任意一个数值等于其下标的元素。例如,在数组[-3, -1, 1, 3, 5]中,数字3和它的下标相等。样例输入:[-3, -1, 1, 3, 5]输出:3注意:如果不存在,则返回-1。单调递增的数组里的每个元素都是整数并且是唯一的 ---> 这句话就足够说明这是道用二分查找做...原创 2019-09-14 15:01:45 · 190 阅读 · 0 评论 -
剑指offer 23 Acwing 34. 链表中环的入口结点
给定一个链表,若其中包含环,则输出环的入口节点。若其中不包含环,则输出null。样例给定如上所示的链表:[1, 2, 3, 4, 5, 6]2注意,这里的2表示编号是2的节点,节点编号从0开始。所以编号是2的节点就是val等于3的节点。则输出环的入口节点3.采用hash的方式,将遍历过的结点的指针都记录下来,当出现重复的时候就是环的入口节点。class So...原创 2019-09-14 14:22:00 · 157 阅读 · 0 评论 -
剑指offer 57(2) Acwing 76. 和为S的连续正数序列
输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1~5、4~6和7~8。样例输入:15输出:[[1,2,3,4,5],[4,5,6],[7,8]]双指针算法解题class Solution {public: vector<vector<in...原创 2019-09-14 11:49:40 · 136 阅读 · 0 评论 -
Acwing 852. spfa判断负环
给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。请你判断图中是否存在负权回路。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示点x和点y之间存在一条有向边,边长为z。输出格式如果图中存在负权回路,则输出“Yes”,否则输出“No”。数据范围1≤n≤2000,1≤m≤10000,图中涉及边长绝对值均不超过10000。...原创 2019-09-17 20:13:16 · 221 阅读 · 0 评论 -
Acwing 858. Prim算法求最小生成树
给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。由V中的全部n个顶点和E中n-1条边构成的无向连通子图被称为G的一棵生成树,其中边的权值之和最小的生成树被称为无向图G的最小生成树。...原创 2019-09-22 01:01:13 · 287 阅读 · 0 评论