自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 3.二分法

它的基本思想是在每一步中,将待搜索区间一分为二,并确定目标值可能存在的位置。然后根据目标值与中间元素的大小关系,决定舍弃哪一半的区间,从而将搜索范围缩小一半。其基本思路是先确定二分的范围为 [1, 10^5],然后通过 check 函数来判断当前的 mid 是否满足条件。如果满足条件,则将左边界 l 更新为 mid,否则将右边界 r 更新为 mid-1。//左闭右开区间不可以取等,如[1,1)就是一个不合法的区间,既包含1又不包含1.如果是左闭右闭区间可以取等,有一边是开区间则不能取等。

2024-04-05 16:31:48 295 1

原创 2.冒泡排序、选择排序、插入排序

从数组最左端开始向右遍历,依次比较相邻元素大小,如果“左元素>右元素”就交换它俩。遍历完成后,最大的元素会被移动到数组的最右端。: 如果某轮“冒泡”中没有执行任何交换操作,说明数组已经完成排序,可直接返回结果。因此,可以增加一个标志位 fiag 来监测这种情况,一旦出现就立即返回。经过优化,冒泡排序的最差和平均时间复杂度仍为O(n2)但当输入数组完全有序时,可达到最佳时间复杂度 O(n)。需要注意的是,这段代码中数组下标从 1 开始,而不是通常的从 0 开始,因此在比较和交换的时候需要将下标减 1。

2024-04-05 15:54:29 1768 1

原创 1.递归算法

递归三要素第一要素:明确函数想要干什么第二要素:寻找递归结束条件第三要素:找出函数的等价关系式以斐波那契数列为例处理递归,核心就是千万不要想子问题的过程。要想子问题的结果,思路就清晰了。

2024-04-05 14:43:53 214 1

原创 买不到的数目【第四届】【省赛】【C组】

买不到的数目【第四届】【省赛】【C组】 约瑟夫环

2024-04-02 21:26:00 260 1

原创 约瑟夫环【第九届】【决赛】【C组】

由于新圈子是从被淘汰的人的下一个人开始的,所以原圈子和新圈子的编号有一个固定的偏移量,即k mod n。表示在前一次迭代中最后剩下的人的编号,初始条件是当只有一个人时,这个人的编号是0(根据公式的定义,实际编号应该加1)。:假设我们知道对于n−1个人的情况下,最后的胜利者的编号为f(n−1,k),我们需要计算n个人的情况下最后的胜利者编号。外圈是编号,内圈是人的代号,初始值是一样的,但当这个人出局后,出局的位置可以标记为0。本题目就是已知 n,k 的情况下,求最后剩下的人的编号。求最后剩下的人的编号。

2024-04-02 21:14:42 1346 1

原创 饮料换购【第六届】【省赛】【C组】

乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。这题注意一点就是换来的饮料的瓶盖,可以继续去换饮料,直到瓶盖小于3不能换为止。输入:一个整数n,表示开始购买的饮料数量(0<n<10000)输出:一个整数,表示实际得到的饮料数。国际惯例,分析案例理解题意。

2024-04-01 22:11:47 193

原创 移动距离【第六届】【省赛】【A组】

这道题思路比较容易想到,就是求两个房子间的行号和列号分别作差,再相加,就是题目所求的答案。这里有个特殊的规则就是,每间隔一行,房子就要往反方向排号。对于楼号8:此时8并不在一个正序的序列中,那就找出规律,比如(8%6=2)但其实它在倒数第2位,所以我们找出一个式子可以满足这个关系(w-(x%w))+1。多演算,还有注意找一些特殊的位置,比如边缘位置,看是否满足普遍规律,不满足就单独处理它。但有个特殊情况,如果x%w==0说明它是这行中最大的数,也就是w的倍数,那么做除法它可以得到进位,因此不用+1。

2024-04-01 21:45:08 733

原创 翻硬币【第四届】【省赛】【B组】

现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。从左向右遍历初始串,和目标串进行逐位匹配,出现不相等就改变当前位置和右边位置的符号,然后计数。两行等长的字符串,分别表示初始状态和要达到的目标状态。如果同时翻转左边的两个硬币,则变为:oooo***oooo。比如,可能情形是:**oo***oooo。国际惯例,分析下示例,便于理解题意。小明正在玩一个“翻硬币”的游戏。

2024-03-28 21:11:20 271 1

原创 蚂蚁感冒【第五届】【省赛】【B组】

接着的一行是n个用空格分开的整数 Xi (-100 < Xi < 100), Xi的绝对值,表示蚂蚁离开杆子左边端点的距离。有点像一个烟雾弹,因为如果碰面之后两只蚂蚁都变成了感冒蚂蚁,他们掉不掉头,或者可以理解为身份交换,结果是一样的,也就是如示例2中,-10蚂蚁掉头那么他会走原本8蚂蚁要走的方向,8也是同样道理。我们需要注意,那就是如果感冒蚂蚁方向相同的方向的位置上没有相反方向的蚂蚁,那么感冒就无法传染,因为大家的速度是一致的。请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。

2024-03-28 20:27:22 474 1

原创 Rational Rose2007版图标不居中

关于解决Rational Rose2007版本图标不居中的问题

2024-03-27 22:52:29 379

原创 快速幂算法

因为后面部分是一样的,可以放在判断条件外部一起执行。

2024-03-27 22:13:48 299

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除