
题库
文章平均质量分 50
SuperRandi
听取wa声一片
展开
-
方豆子(递归)
所以为了知道这四个小正方形是如何由字符组成的,所以每次由当前这个正方形递归到这四个小正方形,dfs(r1,c1,rm,cm,-good),dfs(r1,cm+1,rm,c2,-good),dfs(rm+1,c1,r2,cm,-good),dfs(rm+1,cm+1,r2,c2,good)。赛后看了大佬的讲解知道要将这个图形看成由四个小正方形组成的大正方形,递归参数可以设置成(r1,c1,r2,c2,good)表示正方形的左上角坐标和右下角坐标以及当前这个正方形的状态(好/坏),如下图所示。原创 2025-01-27 20:03:07 · 261 阅读 · 0 评论 -
小A弹吉他(推公式+二分)
例如,我们想要让 MEX 等于 4,构造的总和最小的序列是 1,1,1,2,2,3,这样 t1=3,t2=2,t3=1。尽量大,我们应该让所有ti不为0的数都不一样,同时我们想要所有数的和尽量小,根据贪心策略,对于越大的。对于每个询问,可以二分出最大的一个不超过 M 的 vk,输出 k+1 即可。注意二分过程不要溢出了。P.S. 由于这个数这是 O(k3) 级别的,也可以暴力求出所有在 10^18以内的 vk。因此,当 MEX等于 k+1 时,M 的下限应该是。引用出题人思路:为了让。原创 2025-01-23 12:41:44 · 228 阅读 · 0 评论 -
新年好(Dijkstra+dfs/全排列)
2.计算以1为起点的这6个数的全排列,哪种排列方式所得距离最小,也可以使用dfs。思路: 1.先预处理出1,a,b,c,d,e到其他点的单元最短路,也就是进行6次Dijkstra。2.Dijkstra+全排列。原创 2025-01-22 23:09:23 · 419 阅读 · 0 评论 -
Graph Coloring I(Tarjan算法求奇环)
【代码】Graph Coloring I(Tarjan算法求奇环)原创 2024-11-22 10:22:27 · 428 阅读 · 0 评论 -
CF862B Mahmoud and Ehab and the bipartiteness(二分图的性质)
添加的边数就是cnt[1]*cnt[2]-n+1条。一个二分图最多有cnt[1]*cnt[2]条边。原创 2024-11-18 21:31:32 · 214 阅读 · 0 评论 -
P1197 星球大战(并查集+逆向思维)
这是今天写的比较有价值的一道题,晚上写了大概一个多小时,主要还是在debug,出得很妙,好题👍。原创 2024-11-15 20:54:13 · 470 阅读 · 0 评论 -
暑期算法训练
思路:贪心+排序,首先判断是否存在三个相同的数,因为三个相同的数会产生这种情况a[i]*a[i+1]=a[i+1]*a[i+2],若存在,则输出NO,反之从小到大排序,若存在两个0,则NO,反之则输出相应序列原创 2024-08-24 16:46:45 · 591 阅读 · 0 评论 -
Codeforces Round 903 (Div. 3)A~F
找规律,通过模拟样例可以发现三根线要一样长,那么最终长度肯定是要与最短的那根线一样长,如果某根线不能剪成最短长度,说明这根线不能被最短的长度整除,直接输出NO就可以了,如果能被整除,那么比较这两根线的长度和/最短长度得到的结果是否会大于3,大于就输出NO,反之YES。这道题我们要从后往前dp,定义dp[i]为从n到i的最少操作次数,由题意可知我们对一个数字有两种操作,删除:dp[i]=dp[i+1]+1,保留 :dp[i]=dp[i+a[i]+1],我们只需要在这两种操作中取最小值就可以了。原创 2024-07-06 16:44:59 · 897 阅读 · 0 评论 -
线段树例题
思路: 用线段树进行op=1的单点修改,用二分+区间查询进行op=2的查找Ax左边最后一个小于Ax的位置ans1,然后查找Ax右边第一个小于Ax的位置ans2,答案就是(x-ans1+1)*(ans2-x+1),这里的二分还是有许多细节需要注意,这里就不多说了,大家看代码理解吧。原创 2024-05-28 11:46:45 · 1145 阅读 · 0 评论 -
排序+观光之旅(Floyd算法)
题目描述给定 n 个变量和 m 个不等式。其中 n 小于等于 26,变量分别用前 n 的大写英文字母表示。不等式之间具有传递性,即若 A>B 且 B>C,则 A>C。原创 2024-03-24 16:08:45 · 826 阅读 · 0 评论 -
迷宫问题三种种解法(A*算法+BFS+双向广搜)
对于每组输入,输出从起点到终点的最短路程,如果不存在从起点到终点的路,则输出-1。输入包含多组测试数据。输入的第一行是一个整数T,表示有T组测试数据。接下来N行,每行输入M个字符,每个字符表示迷宫中的一个小方格。每组输入的第一行是两个整数N和M(1原创 2024-03-15 22:46:49 · 1819 阅读 · 0 评论 -
八数码(A*算法)+单词接龙(DFS)
在一个 3×3 的网格中,1∼8 这 8 个数字和一个x恰好不重不漏地分布在这 3×3 的网格中。在游戏过程中,可以把x与其上、下、左、右四个方向之一的数字交换(如果存在)。我们的目的是通过交换,使得网格变为如下排列(称为正确排列):把x与上下左右方向数字交换的行动记录为udlr。现在,给你一个初始网格,请你通过最少的移动次数,得到正确排列。原创 2024-03-14 18:48:49 · 751 阅读 · 0 评论 -
第K短路(A*算法)
接着就是从起点开始计算到终点的距离,我们需要将起点到终点距离小的优先出队,同一个点第几次出队就是第几短的路,那么就需要用到小顶堆了。N),M条边的有向图,求从起点 S到终点 T 的第 K 短路的长度,路径允许重复经过点或边。接下来 M 行,每行包含三个整数 A,B, 和 L,表示点 A 与点 B 之间存在有向边,且边长为 L。输出占一行,包含一个整数,表示第 K 短路的长度,如果第 K 短路不存在,则输出 −1−1。最后一行包含三个整数 S,T 和 K,分别表示起点 S,终点 T 和第 K 短路。原创 2024-03-13 13:43:19 · 868 阅读 · 0 评论 -
电路维修(双端队列广搜)
例如从坐标点(1,1)可以到到(0,2),(0,0),(2,0),(2,2),那么便可以很容易地写出坐标点的方向数组了,同时我们需要考虑坐标点在偏移的时候其跨越的格子中的斜线是否能连通,所以我们需要数组string cs来存储坐标点四个方向的路线形状,例如int dian_ne[4][2]={{-1,-1},{-1,1},{1,-1},{1,1}};根据Dijkstra算法的思想求最短步数,应将每次步数少的优先出队,本题也借用此思想来做,若边权为1,则放入双端队列的队尾,否则放入队头。原创 2024-03-12 15:46:49 · 991 阅读 · 0 评论 -
求区间的最大值(RMQ、线段树)
有n个数,给你m个询问,每次询问给你A,B个数,要求你编写程序求出[A,B]这个区间中的最大值。第三行读入一个 M,表示你看完那串数后需要被提问的次数。输出共 M行,每行输出一个数,表示对一个问题的回答。接下来 M行,每行都有两个整数 A,B。接下来一行为 N个数,表示数字序列。第一行一个整数 N表示数字的个数。原创 2024-03-11 17:58:35 · 651 阅读 · 0 评论 -
最少交换次数(求逆序对、树状数组、离散化)
解法一:树状数组+离散化。原创 2024-03-09 13:25:29 · 457 阅读 · 0 评论 -
拯救行动(BFS)
牢房用 N \times M (N, M \le 200)N×M(N,M≤200) 的矩阵来表示。现假设骑士可以向上、下、左、右四个方向移动,每移动一个位置需要 11 个单位时间,杀死一个守卫需要花费额外的 11 个单位时间。"@" 代表道路,"a" 代表公主,"r" 代表骑士,"x" 代表守卫, "#" 代表墙壁。解题思路:因为要求到达‘a'的最小值,所以求每一步时都用前一步的最小值来求,那么就需要使用优先队列来做了。给定牢房矩阵,公主、骑士和守卫在矩阵中的位置,请你计算拯救行动成功需要花费最短时间。原创 2024-03-08 22:39:01 · 596 阅读 · 0 评论 -
树状数组经典例题:楼兰图腾+一个简单的整数问题+一个简单的证书问题2+谜一样的牛
相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(V),一个部落崇拜铁锹(∧),他们分别用 V 和 ∧ 的形状来代表各自部落的图腾。如果三个点 (i,yi),(j,yj),(k,yk) 满足 1≤i原创 2024-03-05 21:44:46 · 727 阅读 · 0 评论 -
p节点(BFS)
给出一颗有根树,总共 n 个节点,如果一个节点的度不小于它所有的儿子以及他的父亲的度(如果存在父亲或者儿子),那么我们称这个点为 p 节点,现在给你一棵树你需要统计出 p 节点的个数。然后 n−1 行,每行两个数 x,y(0原创 2024-03-04 18:56:29 · 423 阅读 · 0 评论 -
第十五届蓝桥杯第三期模拟赛题单
a[n],如果 a[i] 满足 a[i]a[i+1],则称 a[i] 是一个极大值。例如,对于如下 3 行 4 列的矩阵,2 行 2 列的子矩阵的和的最大值是 8,对应的子矩阵为由最后两行最后两列组成的子矩阵。对于一个 n 行 m 列的矩阵,它的一个 k 行 k 列的子矩阵是指由矩阵中的连续 k 行、连续 k 列组成的矩阵。子矩阵的和是指子矩阵中所有元素的和。原创 2024-03-03 14:32:03 · 2379 阅读 · 2 评论 -
数据结构测试题
例如,若t=0,则应输出是“0:0:0”;第1行,两个整数n,m(5≤n≤5000,3≤m≤n),中间用一个空格隔开,其中n表示报名参加笔试的选手总数,m表示计划录取的志愿者人数。从第2行开始,每行包括两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。1. 找到{5, 3, 8, 2, 9}中最小的两个数,分别是2和3,从{pi}中删除它们并将和5加入,得到{5, 8, 9, 5},费用为5。请在这里写输入格式。原创 2024-03-02 14:01:58 · 1283 阅读 · 0 评论 -
查找最接近的元素(二分查找)
第一行包含一个整数n,为非降序列长度。1≤n≤100000。第二行包含n个整数,为非降序列各元素。所有元素的大小均在0∼1,000,000,0000∼1,000,000,000之间。第三行包含一个整数m,为要询问的给定值个数。1≤m≤10000。接下来m行,每行一个整数,为要询问最接近元素的给定值。所有给定值的大小均在0∼1,000,000,0000∼1,000,000,000之间。原创 2024-03-01 19:35:08 · 377 阅读 · 0 评论 -
蓝桥杯模拟赛第一期
十进制整数 2 在十进制中是 1 位数,在二进制中对应 10 ,是 2 位数。十进制整数 22 在十进制中是 2 位数,在二进制中对应 10110 ,是 5 位数。请问十进制整数 2022 在二进制中是几位数?这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。11小蓝每周六、周日都晨跑,每月的 1、11、21、31日也晨跑。其它时间不晨跑。已知 2022年1月1日是周六,请问小蓝整个2022年晨跑多少天?原创 2024-02-26 19:13:47 · 876 阅读 · 3 评论 -
素因数分解
就是数论中的求约数个数稍微改一下就可以了。原创 2024-02-19 16:36:30 · 260 阅读 · 1 评论 -
螺旋矩阵(C/C++)
【代码】螺旋矩阵(C/C++)原创 2024-01-11 16:10:40 · 413 阅读 · 0 评论 -
兰顿蚂蚁(蓝桥 模拟)
【代码】兰顿蚂蚁(蓝桥 模拟)原创 2024-01-11 14:54:17 · 420 阅读 · 0 评论 -
Fibonacci与黄金分割(蓝桥)
所以无论n取多大,只要它超过了20 ,就计算n=20的黄金分割比例,即F[ n ] / F[ n+1 ]。原创 2024-01-11 14:20:53 · 416 阅读 · 0 评论 -
蓝桥——次数差
国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?(当然,他不关心那些一次也没获胜的,认为他们在意工罢了。在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。要求输出一个数字,表示出现次数最多的字母比出现次数最少的字母多了多少次。x星球有26只球队,分别用a~z的26个字母代表。他们总是不停地比赛。输入,一个串,表示球队获胜情况(保证串的长度原创 2024-01-11 13:59:27 · 354 阅读 · 0 评论 -
串的处理(蓝桥杯)
【代码】串的处理(蓝桥杯)原创 2024-01-11 13:34:12 · 446 阅读 · 0 评论 -
日期问题(蓝桥杯C++)
小明正在整理一批历史文献。这些历史文献中出现了很多日期,小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。输出若干个不相同的日期,每个日期一行,格式是"yyyy -MM-dd"。多个日期按从早到晚排列。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。原创 2024-01-10 11:53:17 · 402 阅读 · 0 评论 -
合并区间(两种解法)
合并区间对于给定的区间,实现一个算法合并区间组的范围。介绍如下:·每个区间包含两个值,后一个值比前一个值大,用来表示范围。需要将连续的范围合并。两个区间的范围有重合,或者两个范围相接,则认为它们是连续的。将所有连续的范围合并,最终得到不连续的区间。·例如对于区间表[(2,3), (3,5) (7,9),(8,10)],合并范围后的结果为[(2,5),(7,10)]。输入描述第一行输入数字N(2≤N≤1000),表示区间的数目。原创 2024-01-10 10:54:21 · 706 阅读 · 0 评论 -
青蛙跳杯子(蓝桥杯省赛)
如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。输入为2行,2个串,表示初始局面和目标局面。我们约定,输入的串的长度不超过 15。本题的任务就是已知初始局面,询问至少需要几步,才能跳成另一个目标局面.其中,W字母表示白色青蛙,B表示黑色青蛙,*表示空杯子。2.隔着 1只其它的青蛙(随便什么颜色)跳到空杯子里。3.隔着 2只其它的青蛙(随便什么颜色)跳到空杯子里。X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。输出要求为一个整数,表示至少需要多少步的青蛙跳。原创 2024-01-10 10:23:25 · 538 阅读 · 0 评论 -
九宫重排(蓝桥杯国赛)
这道题与八数码的思路基本一样。原创 2024-01-09 14:48:51 · 334 阅读 · 0 评论 -
蓝桥杯-苏苏的幸运数字7
问题描述苏苏的家乡相传有这样一个说法,说是如果这个人是某月出生的,那么这个人的幸运数字就是这个月份,因此七月份出生的苏苏一直认为自己的幸运数字就是七。有一天,苏苏在翻看数学有趣知识笔记的时候,看到了这样一个有趣的题目,题目中写到,对于这样n个数字,1², 2²,3²,4²,...n²,一定有方法能够使得这n个数除以一个数字之后的余数被很快找出来,并且也能够快速找出这些余数出现的次数。原创 2024-01-09 14:37:33 · 414 阅读 · 0 评论 -
小明的字符串(蓝桥杯)
KMP写法原创 2024-01-09 08:40:11 · 613 阅读 · 0 评论 -
长草——蓝桥杯(有路数限制的最短路问题)
输出 n 行,每行包含 m 个字母,表示 k 个月后空地的状态。如果为小数点,表示为空地,如果字母为 g,表示长了草。这些草长得很快,每个月,草都会向外长出一些,如果一个小块种了草,则它将向自己的上、下、左、右四小块空地扩展,小明有一块空地,他将这块空地划分为 nn 行 mm 列的小块,每行和每列的长度都为 1。接下来 n 行,每行包含 m 个字母,表示初始的空地状态,字母之间没有空格。小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地。如果为小数点,表示为空地,如果字母为 g,表示种了草。原创 2024-01-08 14:29:22 · 796 阅读 · 0 评论 -
K倍区间-前缀和
给定一个长度为 N 的数列A1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…Aj 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K倍区间。你能求出数列中总共有多少个 K倍区间吗?原创 2024-01-08 13:49:39 · 554 阅读 · 0 评论