- 博客(53)
- 收藏
- 关注
原创 牛客周赛 Round 30
我们可以先将 x,y 除以最大公约数,使它们变为最小质数,然后求l到r的最大下界和最小上界。前面几道签到题用最近学的java写的,学得不多只能用java写前两题🤣。——一个数a在区间[1,x]中的倍数个数为x/a个。
2024-09-13 14:38:12 299
原创 PTA团体程序设计天梯赛
L1-2 九牛一毛L1-3 小孩子才做选择,大人全都要12 18输出样例:18 30^_^输入样例:12 -18输出样例:12 0T_TL1-5 试试手气。
2024-08-26 22:53:08 802
原创 暑期算法训练
思路:贪心+排序,首先判断是否存在三个相同的数,因为三个相同的数会产生这种情况a[i]*a[i+1]=a[i+1]*a[i+2],若存在,则输出NO,反之从小到大排序,若存在两个0,则NO,反之则输出相应序列
2024-08-24 16:46:45 559
原创 Educational Codeforces Round 168 (Rated for Div. 2)
据说这场比赛非常简单,但本蒟蒻却认为比以往还要难(;注意题目保证给定网格中最多有一个连通块。
2024-07-31 12:02:14 303
原创 牛客周赛 Round 51
思路:签到题,别看成逆元题就行思路:签到题,如果这个数能被三整除,则这个数每一位的数相加得到的和也能被三整除思路:总共分两种情况讨论:①xt 时,计算先玩到电量为t时启用超级快充更快还是直接充电更快思路:可以迭代线性遍历a,来求解a%b的值,然后在求gcd(a%b, b)
2024-07-17 16:01:13 708
原创 Codeforces Round 900 (Div. 3)
一开始只用了二分,每次查一个区间就reversse一次,没想到TLE了(/(ㄒoㄒ)/~~,事实证明我就是蒟蒻🤣),然后改了一个多小时,改不动了直接看大佬的代码,发现要用差分和前缀和做,而且我们还可以发现区间[a,b]在[Li,Ri]中是对称存在的,比如Li=1,Ri=4,x=2,那么a=2,b=3(当时做题的时候怎么就没想到呢😱),接下来就是计算每个位置要翻转的次数,如果是奇数次则与对称得位置翻转,详情请看代码。:如果S(n)==x,说明只有取走所有数才会成立,即k==n输出YES,反之NO。
2024-07-07 15:29:45 349
原创 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 816
原创 线段树例题
思路: 用线段树进行op=1的单点修改,用二分+区间查询进行op=2的查找Ax左边最后一个小于Ax的位置ans1,然后查找Ax右边第一个小于Ax的位置ans2,答案就是(x-ans1+1)*(ans2-x+1),这里的二分还是有许多细节需要注意,这里就不多说了,大家看代码理解吧。
2024-05-28 11:46:45 1056
原创 排序+观光之旅(Floyd算法)
题目描述给定 n 个变量和 m 个不等式。其中 n 小于等于 26,变量分别用前 n 的大写英文字母表示。不等式之间具有传递性,即若 A>B 且 B>C,则 A>C。
2024-03-24 16:08:45 799
原创 最优乘车+最小花费(Dijkstra写法)
H 城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。一名旅客最近到 H 城旅游,他很想去 S公园游玩,但如果从他所在的饭店没有一路巴士可以直接到达 S 公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士,这样换乘几次后到达 S 公园。
2024-03-19 15:43:00 781
原创 字符串变换(双向广搜)
已知有两个字串 A, B 及一组字串变换的规则(至多 66 个规则):A1→B1A2→B2规则的含义为:在 A 中的子串 A1 可以变换为 B1、A2 可以变换为 B2…。例如:A=abcdB=xyzabc→xuud→yy→yzabcd→xud→xy→xyz共进行了三次变换,使得 A 变换为 B。注意,一次变换只能变换一个子串,例如 A=aaB=bba→b此时,不能将两个a在一步中全部转换为b,而应当分两步完成。
2024-03-18 19:13:32 516
原创 迷宫问题三种种解法(A*算法+BFS+双向广搜)
对于每组输入,输出从起点到终点的最短路程,如果不存在从起点到终点的路,则输出-1。输入包含多组测试数据。输入的第一行是一个整数T,表示有T组测试数据。接下来N行,每行输入M个字符,每个字符表示迷宫中的一个小方格。每组输入的第一行是两个整数N和M(1
2024-03-15 22:46:49 1314
原创 八数码(A*算法)+单词接龙(DFS)
在一个 3×3 的网格中,1∼8 这 8 个数字和一个x恰好不重不漏地分布在这 3×3 的网格中。在游戏过程中,可以把x与其上、下、左、右四个方向之一的数字交换(如果存在)。我们的目的是通过交换,使得网格变为如下排列(称为正确排列):把x与上下左右方向数字交换的行动记录为udlr。现在,给你一个初始网格,请你通过最少的移动次数,得到正确排列。
2024-03-14 18:48:49 567
原创 第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 762
原创 电路维修(双端队列广搜)
例如从坐标点(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 962
原创 求区间的最大值(RMQ、线段树)
有n个数,给你m个询问,每次询问给你A,B个数,要求你编写程序求出[A,B]这个区间中的最大值。第三行读入一个 M,表示你看完那串数后需要被提问的次数。输出共 M行,每行输出一个数,表示对一个问题的回答。接下来 M行,每行都有两个整数 A,B。接下来一行为 N个数,表示数字序列。第一行一个整数 N表示数字的个数。
2024-03-11 17:58:35 459
原创 拯救行动(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 533
原创 树状数组经典例题:楼兰图腾+一个简单的整数问题+一个简单的证书问题2+谜一样的牛
相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(V),一个部落崇拜铁锹(∧),他们分别用 V 和 ∧ 的形状来代表各自部落的图腾。如果三个点 (i,yi),(j,yj),(k,yk) 满足 1≤i
2024-03-05 21:44:46 674
原创 p节点(BFS)
给出一颗有根树,总共 n 个节点,如果一个节点的度不小于它所有的儿子以及他的父亲的度(如果存在父亲或者儿子),那么我们称这个点为 p 节点,现在给你一棵树你需要统计出 p 节点的个数。然后 n−1 行,每行两个数 x,y(0
2024-03-04 18:56:29 372
原创 第十五届蓝桥杯第三期模拟赛题单
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 2240 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 1184
原创 查找最接近的元素(二分查找)
第一行包含一个整数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 335
原创 单链表分段逆转(画图分析)
其中List/* 存储结点数据 *//* 指向下一个结点的指针 *//* 定义单链表类型 */L是给定的带头结点的单链表,K是每段的长度。函数K_Reverse应将L中的结点按要求分段逆转。
2024-02-29 13:27:26 740 1
原创 蓝桥杯模拟赛第一期
十进制整数 2 在十进制中是 1 位数,在二进制中对应 10 ,是 2 位数。十进制整数 22 在十进制中是 2 位数,在二进制中对应 10110 ,是 5 位数。请问十进制整数 2022 在二进制中是几位数?这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。11小蓝每周六、周日都晨跑,每月的 1、11、21、31日也晨跑。其它时间不晨跑。已知 2022年1月1日是周六,请问小蓝整个2022年晨跑多少天?
2024-02-26 19:13:47 849 3
原创 最长连续递增子序列(朴素做法)
给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。
2024-02-19 16:28:05 203 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人