- 博客(24)
- 收藏
- 关注
原创 2462. 雇佣 K 位工人的总代价
给你一个下标从开始的整数数组costs,其中costs[i]是雇佣第i位工人的代价。同时给你两个整数k和candidates。我们想根据以下规则恰好雇佣kkcandidatescandidates414candidates返回雇佣恰好k位工人的总代价。输入:costs = [17,12,10,2,7,2,11,20,8], k = 3, candidates = 4输出:11解释:我们总共雇佣 3 位工人。总代价一开始为 0。
2024-05-01 18:09:11 51 1
原创 2739. 总行驶距离
模拟一下即可,每次让 `mainTank` 减去 5 ,然后如果 `additionalTank` 大于 0,就在让 `mainTank` 加 1,最后让 `additionalTank` 减 1。当不满足 `mainTank - 5 >= 0 && additionalTank > 0` 时即退出。
2024-04-25 18:19:48 260
原创 全部都有的子序列
先使用Set来存储总共有多少不同的数字,然后我们使用快慢指针去遍历数组,快指针每次遍历到一个数,将其加入到哈希表,哈希表使用pair存储,第一个元素存数字,第二个元素存数字在快慢指针区间中出现的次数,哈希表的大小就是区间内不同元素的数目,当大小等于总的不同数目个数时,就找到了一个区间,这时候慢指针在开始移动,每次移动,将所指的元素从哈希表的次数减一次,如果变为0,就删掉这个数,然后慢指针一直移动,直到边界或者哈希表大小不等于总共的不同数字的数目。
2024-03-02 22:58:52 408 1
原创 特别数的和【第十届】【省赛】【B组】
水题,挨个遍历每个数,然后判断是否保护2、0、1、9即可。共一行,包含一个整数,表示满足条件的数的和。的数字很感兴趣(不包括前导。中,所有这样的数的和是多少?共一行,包含一个整数。
2024-02-27 22:01:15 1026
原创 递增三元组【第九届】【省赛】【B组】
可以使用二分的算法,因为要找的是递增三元组,所以我们可以选定中间的。即为当前元素所能找到的递增三元组的数目。中查找第一个小于 当前遍历到的。的一个元素时,使用二分在。从小到大排序,然后遍历。请你统计有多少个三元组。
2024-02-27 21:53:31 1328
原创 飞行员兄弟
是上述这个状态,那么可以将1的位置全部按一遍,然后看一下最后是否全亮,如果全亮,说明这种按法是合理的,过程中记录按的位置。行描述切换顺序,每行输出两个整数,代表被切换状态的把手的行号和列号,数字之间用空格隔开。的每一个数代表一种状态,比如到3这个数的时候(二进制位从低到高枚举,具体看代码):如果存在多种打开冰箱的方式,则按照优先级整体从上到下,同行从左到右打开。,所以可以直接暴力枚举每一种状态,看看能否把灯全部点亮。请你求出打开冰箱所需的切换把手的次数最小值是多少。,表示所需的最小切换把手次数。
2024-02-26 19:17:38 1159 1
原创 大胖子走迷宫【第十届】【决赛】【研究生组】
求最短路即可,但是需要注意的是,不同时刻占据的格子数目会变化,所以可能遇到像给出的案例这种,需要先在上面走一走,让自己影响的格子数目变成一个之后才能往下走,所以我们可以做一个优化,再每一次走到一个格子时,向队列添加一个在这个格子这里等待一步的对象,如果已经达到了。小明走迷宫走得很辛苦,如果他在迷宫里面待的时间很长,则由于消耗了很多脂肪,他会在时刻。计划的主要内容是带小明玩一些游戏,让小明在游戏中运动消耗脂肪。小明是个大胖子,或者说是个大大胖子,如果说正常人占用。小明的朋友们制定了一个计划,帮助小明减肥。
2024-02-24 16:00:26 1060
原创 Fibonacci 数列与黄金分割【第十届】【省赛】【研究生组】
发现再 20 个之后前8位小数就一模一样了,所以后面的结果都是一样的。并不用真的计算到特别大的范围,只需要判断一下当前的。特别大的时候,越往后相邻比值的差值越小,我们可以打印一下这些比值。Fibonacci 数列有一个特殊的性质,前一项与后一项的比值,是否超过30(保守一些)即可,超过就输出定值。为了验证这一性质,给定正整数。,会趋近于黄金分割。答案保留 8位小数。
2024-02-23 21:43:08 961 1
原创 日期问题【第八届】【省赛】【B组】
令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。因为日期范围已经限制到了1960年1月1日至2059年12月31日,两个日期之差再。输出若干个不相同的日期,每个日期一行,格式是”yyyy-MM-dd”。一个日期,格式是”AA/BB/CC”。多个日期按从早到晚排列。
2024-02-22 13:20:17 558 1
原创 交换瓶子【第七届】【省赛】【A组】
所以我们的目的就是将上面的两个环,变成下面的五个环。每次交换两个点,其实就是改变了两条边的指向。首先建图,因为是1~N的,所以将a[i]指向a[a[i]],例如第一个样例。输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。第二行:N个正整数,用空格分开,表示瓶子目前的排列情况。对于这么简单的情况,显然,至少需要交换2次就可以复位。这题思路很巧妙,我们可以将其转化为图论的问题求解。有N个瓶子,编号 1 ~ N,放在架子上。要求每次拿起2个瓶子,交换它们的位置。减去环的数量,就是最少的交换次数。
2024-02-19 11:52:11 736 1
原创 四平方和【第七届】【省赛】【A组】
所以可以采用哈希表,首先枚举前两个数,将可能的组合记录下来,然后再去枚举后两个数,通过查看减去前两个数后的值是否存在哈希表中,就可以得到结果。的时候都是从小开始枚举,并且我们存的时候可以只存第一次出现的,后面的就不存,那么就可以保证一定是最小的。因为要求的数有四个,按照一般的想法,枚举前三个,然后计算判断第四个是否合法,因为每一次枚举都是。的值出现再前一步时,说明找到了一种方案,输出即可。如果把0包括进去,就正好可以表示为4个数的平方和。对于一个给定的正整数,可能存在多种平方和的表示法。
2024-02-18 11:09:26 708 1
原创 穿越雷区【第六届】【决赛】【A组】
X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短?已知的地图是一个方阵,上面用字母标出了A,B区,其它区都标了正号或负号分别表示正负能量辐射区。接下来是n行,每行有n个数据,可能是A,B,+,-中的某一个,中间用空格分开。输入第一行是一个整数n,表示方阵的大小, 4
2024-02-17 15:53:15 315 1
原创 生命之树【第六届】【省赛】【B组】
他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值。不擅长计算,他不知道怎样有效的求评分。的努力,他已经知道了上帝给每棵树上每个节点上的整数。给出的样例如图所示,红色部分圈出的是选取的最大值。由于这是一棵树,所以是不存在环的。输出一行一个数,表示上帝给这棵树的分数。这个最大的和就是上帝给生命之树的评分。个整数,依次表示每个节点的评分。, 每个节点的评分的绝对值不超过。,因为求最大的,所以我们只需要找到。中的点所对应的整数的和尽量大。为顶点的评分最大的子树,包括。
2024-02-17 11:54:18 955 1
原创 饮料换购【第六届】【省赛】【A组】
乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。个瓶盖凑不成一瓶饮料,要保留到下次去换,所以每次能喝到的饮料要加上。输入:一个整数n,表示开始购买的饮料数量(0
2024-02-17 09:45:47 866 1
原创 移动距离【第六届】【省赛】【B组】
所以对于横向的位置,先求出排列方式,假如是顺序排列,直接对楼层求余得到的即为所处的位置,比如1 % 6 = 1,如果是逆序,比如7,那么就是楼层w - m % w - 1,即楼层宽度减去楼号对宽度取余在减一。可以自行模拟一下试试,下面是代码。我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)然后假如当前楼层除以宽度是偶数,例如1这个位置,那么就是顺序排列,奇数则逆序排列。输入为3个整数w m n,空格分开,都在1到10000范围内。w为排号宽度,m,n为待计算的楼号。
2024-02-16 11:29:36 364 1
原创 小朋友排队【第五届】【省赛】【B组】
首先分析题目,只能是相邻的小朋友交换,并且身高相同不用交换,因为要求最小值,所以基于贪心思想,对于相邻两小朋友如果已经排好了,就不要去动他们了。所以我们考虑的是那些没有排好的相邻的小朋友,然后可能就会想到,那这样的两个小朋友,不就是一个。首先交换身高为3和2的小朋友,再交换身高为3和1的小朋友,再交换身高为2和1的小朋友,每个小朋友的不高兴程度都是3,总和为9。次,所以这时候就很清晰了,我们只需要统计一下每一个小朋友,他前面有多少比他高的,后面有多少比他低的,相加就是最少的交换次数。n 个小朋友站成一排。
2024-02-15 12:16:12 1201 1
原创 分糖果【第五届】【省赛】【B组】
有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个注意每个小朋友分出去的糖果是现有的一半,不是接受其他小朋友糖果后的一半,所以对第一个或者最后一个需要专门处理。你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。程序首先读入一个整数N(2
2024-02-15 10:31:48 408 1
原创 兰顿蚂蚁【第五届】【省赛】【A组】
兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。蚂蚁的头部朝向为:上下左右其中一方。蚂蚁的移动规则十分简单:若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格;若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。规则虽然简单,蚂蚁的行为却十分复杂。刚刚开始时留下的路线都会有接近对称,像是会重复,但不论起始状态如何,蚂蚁经过漫长的混乱活动后,会开辟出一条规则的“高速公路”。蚂蚁的路线是很难
2024-02-15 10:07:26 489 1
原创 蚂蚁感冒【第五届】【省赛】【A组】
蓝桥杯第五届省赛A组c++感冒的蚂蚁题目讲左边有个8是和它方向相反的,它们会在9的时候像状态,然后将干嘛传染给8,此时8和10掉头,但是其实这里两只蚂蚁都感冒了,那我们再去区分是哪一只蚂蚁已经不重要了,因为只要感冒就会传染(大家多注意身体),所以我们将掉头的10看成穿过去的8,将掉头的8看成穿过去的10。10还是感冒的蚂蚁,就是方向全部朝右,这样就只有一个感冒的蚂蚁,在这种情况下,不会出现感染的情况,但是呢,在我们感冒蚂蚁的右边,是不会又蚂蚁被统计进去的,所以右边是0,同理全部朝左也是,只需要判断一下就行。
2024-02-13 09:22:48 914 1
原创 翻硬币【第四届】【省赛】【B组】
思路很简单,直接挨个比较每个字符就行,不一样的就进行翻转,但是在实际的操作过程中,我们只需要翻转后面一个字符就行,因为当前不一样的字符只会判断一次,所以不用真的去做两次翻转。现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。两行等长的字符串,分别表示初始状态和要达到的目标状态。每行的长度
2024-02-12 12:00:36 810 1
原创 带分数【第四届】【省赛】【A组】
思路很简单,就是首先生成1~9的全排列,然后对这个全排列进行暴力枚举,然后再去判断是否能够凑成给定的目标值,生成全排列可以使用。100 可以表示为带分数的形式:100 = 3 + 69258 / 714。程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。还可以表示为:100 = 82 + 3546 / 197。从标准输入读入一个正整数N (N
2024-02-12 10:45:22 327 1
原创 大臣的旅费【第四届】【省赛】【A组】
聪明的J发现,如果不在某个城市停下来修整,在连续行进过程中,他所花的路费与他已走过的距离有关,在走第x千米到第x+1千米这一千米中(x是整数),他花费的路费是x+10这么多。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J大臣想知道:他从某一个城市出发,中间不休息,到达另一个城市,所有可能花费的路费中最多是多少呢?的距离,从所有距离找出最大的点。本质上就是求树的直径。
2024-02-12 10:29:39 343
原创 买不到的数目【第四届】【省赛】【A组】
你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。两个正整数,表示每种包装中糖的颗数(都不多于1000)一个正整数,表示最大不能买到的糖数。
2024-02-12 09:32:57 904
原创 错误票据【第四届】【省赛】【A组】
可以直接暴力去做,开一个布尔数组存储出现的数,然后存储数据的最小值,如果在存储过程中布尔数组对应位置为。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。,那么这个数就是重复的,最后在从最小值遍历一下,遇到的第一个为。要求程序首先输入一个整数N(N
2024-02-12 09:17:24 795
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人