- 博客(25)
- 收藏
- 关注
原创 P3392 涂条纹
现有一个棋盘状的布,分成了 N 行 M 列的格子,每个格子是白色蓝色红色之一,小 a 希望把这个布改成合法图案,方法是在一些格子上涂颜料,盖住之前的颜色。用例范围比较小,我们枚举每一种情况,将每一种对应的对应的涂色的数量存进数组中,然后在数组中求出最小的值即可。只要一个由 N×M 个小方块组成的旗帜符合如下规则,就是合法的图案。小 A 很懒,希望涂最少的格子,使这块布成为一个合法的图案。接下来 N 行是一个矩阵,矩阵的每一个小方块是。一个整数,表示至少需要涂多少块。第一行是两个整数 N,M。
2025-04-04 22:05:50
138
原创 P1088 [NOIP 2004 普及组] 火星人
如果把五根手指――拇指、食指、中指、无名指和小指分别编号为 1,2,3,4 和 5,当它们按正常顺序排列时,形成了 5 位数 12345,当你交换无名指和小指的位置时,会形成 5 位数 12354,当你把五个手指的顺序完全颠倒时,会形成 54321,在所有能够形成的 120 个 5 位数中,12345 最小,它表示 1;这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这个数字的含义后,再把一个很小的数字加到这个大数上面,把结果告诉火星人,作为人类的回答。
2025-04-04 16:13:46
78
原创 P1706 全排列问题
按照字典序输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。的方式来实现,这个过程中要注意题目的要求是一个序列中的数要。由 1∼n 组成的所有不重复的数字序列,每行一个序列。这道题也是一道枚举的问题,我们通过使用。来记录每个数的状态,且在使用的过程中要注意。每个数字保留 5 个场宽。bool类型的used数组。
2025-04-02 17:21:55
132
原创 D. Mishkin Energizer-Codeforces Round 1014 (Div. 2)
对于左边情况如果说字符‘T’的数量多于字符‘I’的数量,则可以像这样一样满足题目操作条件的增加L和I的数量,来“减少”T的数量,要想减少一个T的数量则增加一对I和L。对于右边情况如果说字符‘I’的数量多于字符‘T’的数量,则可以像这样一样满足题目操作条件的增加I和T的数量,来“减少”I的数量,要想减少一个I的数量则增加一对I和L。输入一个长度为n的字符串,要求在字符串中,通过在两个不相同的字符中间添加另外一个字符来改变其中三个字符的数字来实现三个字符数相同。灵活使用动态数组的扩容函数。
2025-04-01 22:01:02
795
原创 P1036 [NOIP 2002 普及组] 选数
已知 n 个整数 x1,x2,⋯,xn,以及 1 个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。通过DFS来筛选所有的可能,用used函数来存储是否选过了。为了使得所有可能中不出现相同数,顺序不同的情况,因此通过定义for循环中变量的初始值为1,并且随着DFS递增。第二行 n 个整数,分别为 x1,x2,⋯,xn(1≤xi≤5×106)。第一行两个空格隔开的整数 n,k(1≤n≤20,k<n)。例如上例,只有一种的和为素数:3+7+19=29。
2025-03-31 22:13:15
310
原创 P1618 三连击(升级版)
代码1:因为数据量比较小,我是直接进行遍历(最小为123,最大987,当然到不了987因为比例是升序),使用一个bool类型的数组用于检查数字是否被使用了,若使用了就跳过这个例子,读取数字的每一位使用while循环。,9 共 9 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:C,试求出所有满足条件的三个三位数,若无解,输出。若干行,每行 3 个数字。按照每行第一个数字升序排列。代码2:dfs,将三个3位数合并成一个数组。三个数,A,B,C。
2025-03-31 21:50:29
190
原创 C. Asuna and the Mosquitoes-Codeforces Round 1014 (Div. 2)
然而,如果要想使得自己保持偶数,就可以使得操作的对面的数减少到1就停止,自己还就是偶数,然后就能去接着操作其他奇数。如果后面还有其他偶数的话可以选择一个1把自己变成奇数去操作其他的偶数。我们使用这个规律并且通过整理分析数据得到,最后除了最大值有k-1个1,其他都是0,且最后的最大值为。操作:因为相加是奇数才能进行操作,所以只有一个奇数和一个偶数之间能够进行一个加1和一个减1操作。(1)如果全部都是偶数或者都是奇数则不能进行操作,直接输出数组中的最大值。加到自己身上,使得自己变成奇数。
2025-03-31 00:21:27
982
1
原创 P2640 神秘磁石
显然,两磁石间最大破坏力取决于磁力大小和磁石间距,那么请问给出长度不超过 n 的一维坐标系,有哪几对坐标间磁石破坏力最大。两个点之间的距离为k,都 <= n并且都是素数。输出所有满足这些要求的数对,如果没有就输出“empty”。所有小于等于 n 的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出。在遥远的阿拉德大陆,有一种神秘的磁石,是由魔皇制作出来的,两个正整数 n,k。
2025-03-30 23:17:58
227
原创 B. Lady Bug -Codeforces Round 1014 (Div. 2)
以上述图为例,红色线构成了一条路线,1的数量就不能超过2,并且蓝色路线上1的数量就不能超过3。我们利用这个规律来编写代码。因为交换次数是无限的,只要位置满足“要求通过将字符串中的数全变成0。”就能够交换,因此如果字符b中的位置中能够。i的取值范围为[2,n]交换路径上的所有的“1”就行。
2025-03-30 21:44:29
913
原创 C. Two Colors-Educational Codeforces Round 176 (Rated for Div. 2)
(3)假设第一部分要达到的木板颜色数量为i,则第二部分为n-i。第一部分的的数量为数组a中>=i的种类数量,第二部分为数组a中>=n-i的种类数量。(4)然而,题目要求必须是两种不同的颜色,上述我们思路中包含了前后两部分相同的情况,因此需要减去。的最小值的地址,而前面(a+m)则数组最后一个元素再向后一个元素的地址,相减的话就能得到大于等于i的元素数量。我们减去满足这种情况的所有数量就能得到这种i下的所有排列数量。来给栅栏的n个木板染色,且颜色相同的木板是。,返回的是指针,即返回的是大于等于。
2025-03-29 14:10:52
728
原创 B. Array Recoloring-Educational Codeforces Round 176 (Rated for Div. 2)
这种情况是最后一个染色点要么是最左边的,要么是最右边的,另外一个最大值(及刚开始就选的最值)则是最左边的右边的n-1个点中的最大值,要么就是最后边的点的左边的n-1个点中的最大值。:这种情况是无论如何都能够使得最先染的k个点和最后一个点是最大的k+1个点,因此我们从进行排序,直接累加得到最大的k+1个数的和。(3)我们需要遵守染色的规律并且得到最先染色的前面k个点的值和最后染色点的值的总和。(2)将数组中所有的数看作点,所有的点都是红色的。=>因此需要去分析什么情况下值是最优的(根据染色的规律)。
2025-03-29 00:11:27
648
原创 14. 走迷宫 ----蓝桥杯
因为BFS是(利用队列)逐层的“扩散”开的,先到达的话就直接更改他的位置数据了,并且会将用于判断她是否被访问的visited[X2][Y2]变成true了,后面有其他路径能够到达这个点也访问不了了,所以这个时候是最小的步数。
2025-03-23 16:55:25
278
原创 P1249 最大乘积--洛谷
一个正整数一般可以分为几个互不相同的自然数的和,如 3=1+2,4=1+3,5=1+4=2+3,6=1+5=2+4。现在你的任务是将指定的正整数 n 分解成若干个互不相同的自然数(也可以不分解,就是这个数字本身)的和,且使这些自然数的乘积最大。
2025-03-23 11:14:38
298
原创 P1331 海战
一行一个字符串,如果船的位置放得正确(即棋盘上只存在相互之间不能接触的方形,如果两个 `#` 号上下相邻或左右相邻却分属两艘不同的船只,则称这两艘船相互接触了)。在一个方形的盘上,放置了固定数量和形状的船只,每只船却不能碰到其它的船。在本题中,我们认为船是方形的,所有的船只都是由图形组成的方形。这样的话就能够将输出这艘船的所有#都标记完,全部标记完后就船数加一。接下来 R 行,每行 C 个字符,为 `#` 或 `.`。`#` 表示船只的一部分,`.` 表示水。求出该棋盘上放置的船只的总数。
2025-03-20 16:51:38
403
原创 1931C. Make Equal Again
2.当数组中有不同元素时。定义k1和k2分别来计数从前往后和从后往前连续相同元素的个数,利用for循环求出,期间分别定义flag1和flag2用来判断是否相同的数不再连续,不再连续后续k的值不再改变。1.如果数组中元素全部一致或者只有一个元素直接输出0。(定义一个flag来标记数组中是否全部一致)2.逐个输入t个测试项,第一行包含数组中元素的个数,第二行逐个输入元素。=a[n],输出n-max(k1,k2)。(1)a[1]==a[n],直接输出n-(k1+k2);使得数组全部元素变成一致的最小的元素个数。
2024-06-14 10:02:08
294
原创 A. Problem Generator
A. Problem GeneratorVlad is planning to hold m rounds next month. Each round should contain one problem of difficulty levels 'A', 'B', 'C', 'D', 'E', 'F', and 'G'.Vlad already has a bank of n problems, where the i-th problem has a difficulty level of ai. T
2024-06-13 10:11:45
1032
原创 P1644 跳马问题--洛谷
从(0,0)开始,设(a,b)为经过点的坐标,要求过程中a>0,a<n,b>0,b<m;1.确认题目的状态包括边界。最终位置为(m,n)。2.找到状态转移方式。3.找到问题的出口。
2024-06-13 00:22:31
270
原创 B. 378QAQ and Mocha‘s Array----codeforces
3.将不能被整除的数加入到动态数组中,然后对动态数组进行排序,如果数组中所有的数能够被最小的数值整除那就输出Yes,否则输出No。2.对输入的数组进行排序,如果其余的所有数能够被最小的一个数值整除,那就输出Yes。1.如果数组中有1那就直接输出Yes。
2024-06-12 23:50:27
153
原创 CLZ银行问题--蓝桥杯
CLZ 银行只有两个接待窗口,VIP 窗口和普通窗口,VIP 用户进入 VIP 窗口排队,剩下的进入普通窗口排队。输出 M 次操作后 VIP 窗口队列和普通窗口队列中的姓名(从头到尾),先输出 VIP 窗口队列后输出普通窗口队列。第一行是一个整数 M(1≤M≤1000),表示一共有 M次操作。求 M次操作结束后 VIP 窗口队列和普通窗口队列中的姓名。front():仅返回队列中的第一个元素。back():仅返回队列中的最后一个元素。:移除并返回队列的前端元素。:返回队列中的元素的数量。
2024-03-27 06:00:00
466
1
原创 对局匹配-蓝桥杯
小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是 K 的两名用户匹配在一起。这种情况下,对于i和i+k这两个数只允许出现一个,利用数组与循环语句求出需要删去的个数。(1)第一种情况:k=0。这种情况是最简单的,就是不允许出现重复的情况,每一种数只允许出现一种。2.根据k的值(0或!:问题只需知道多少用户在线的时候都无法匹配成功,只需在意人数,不必在意删除的是谁。c[N]中的N代表积分的大小,c[N]的大小代表积分为N的数量,即这种数的数量。其中,1≤N≤105,0≤Ai≤105,0≤K≤105。
2024-03-26 11:33:17
234
原创 付账问题-蓝桥杯
题目:几个人一起出去吃饭是常有的事。但在结帐的时候,常常会出现一些争执。现在有 n个人出去吃饭,他们总共消费了 S 元。其中第 i个人带了 ai元。幸运的是,所有人带的钱的总数是足够付账的,但现在问题来了:每个人分别要出多少钱呢?为了公平起见,我们希望在总付钱量恰好为 S 的前提下,最后每个人付的钱的标准差最小。这里我们约定,每个人支付的钱数可以是任意非负实数,即可以不是 1 分钱的整数倍。你需要输出最小的标准差是多少。
2024-03-23 12:16:41
475
原创 乘积尾零-蓝桥杯
2.寻找问题本质:对于每一个数,可以把数分解成对应的若干个最小程度的因式,而产生0需要最小的因式就是2*5,因此求解末尾有多少个0只需2求出有多少对2*5。做题方法:要求2*5的对数只需利用循环语句将每个分解后分别计数对应的数目,又因为要成对出现才能有效,所以取二者的最小数。1.乘积的末尾有多少个零,最直接的方法就是通过循环语句求出乘积,然后利用%与/求出末尾零的个数。如下的 1010 行数据,每行有 1010 个整数,请你求出它们的乘积的末尾有多少个零?
2024-03-22 09:02:49
320
1
原创 冒泡排序的总结
1 对‘冒泡’的理解:冒泡就是一个个的泡浮出水面,在此代码中对应的是一个一个的排出最大/小值(好处:,避免了多余的大小比较,提高了代码运行的速度)2 编写代码的流程: 定义主函数->定义数组->输入数组的内容->调用冒泡函数(对数组进行排序)->输出 排序后的数组->对冒泡函数进行定义3 运用的知识:1:函数的调用和定义(数组传参传递过去的是数组首元素的地址) 2: 循环
2022-12-07 15:32:39
201
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人