- 博客(25)
- 收藏
- 关注
原创 蓝桥杯 Excel地址
如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列呢?本题目即是要求对输入的数字, 输出其对应的 Excel 地址表示方式。Excel 单元格的地址表示很有趣,它使用字母来表示列号。当然 Excel 的最大列号是有限度的,所以转换起来不难。输入一个整数 nn,其范围 [1,2147483647]。输出 nn 对应的 Excel 地址表示方式。AA 表示第 27 列,AB 表示第 28 列,BA 表示第 53 列,Z 表示第 26 列,A 表示第 1 列,B 表示第 2 列,
2025-04-02 17:23:04
172
原创 洛谷 1601 A+B Problem(高精)
高精度加法,因为操作数过大(可达500位),普通的加法运算无法满足,需要执行高精度加法。将每位操作数以字符形式输入,再转存入数组,执行按位加法,最终按位输出即可(注意输出时从高位输出,执行加法时从低位相加)高精度加法,相当于 a+b problem,40% 的测试数据,0≤a,b≤1018。20% 的测试数据,0≤a,b≤109;输出只有一行,代表 a+b 的值。a,b≤10500。
2025-03-31 20:35:00
321
原创 洛谷 1433 吃奶酪
对于两个点 (x1,y1),(x2,y2),两点之间的距离公式为 (x1−x2)2+(y1−y2)2。第 2 到第 (n+1) 行,每行两个实数,第 (i+1) 行的实数分别表示第 i 块奶酪的横纵坐标 xi,yi。一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在 (0,0) 点处。对于全部的测试点,保证 1≤n≤15,∣xi∣,∣yi∣≤200,小数点后最多有 3 位数字。输出一行一个实数,表示要跑的最少距离,保留 2 位小数。第一行有一个整数,表示奶酪的数量 n。
2025-03-29 12:23:54
170
原创 洛谷 1182 数列分段
二分思路:查找当最大和为mid时的分段数seg,如果seg大于目标值,说明mid选小了,在右半部分查找,否则,在左半部分查找。对于给定的一个长度为 N 的正整数数列 A1∼N,现要将其分成 M(M≤N)段,并要求每段连续,且每段和的最大值最小。对于 100% 的数据,1≤N≤105,M≤N,Ai<108, 答案不超过 109。第一段和为 6,第 2 段和为 9,第 3 段和为 1,和最大值为 9。第一段和为 4,第 2 段和为 6,第 3 段和为 6,和最大值为 6。对于 20% 的数据,N≤10。
2025-03-26 16:53:43
343
原创 洛谷 1873 EKO/砍树
Mirko 的伐木机工作流程如下:Mirko 设置一个高度参数 H(米),伐木机升起一个巨大的锯片到高度 H,并锯掉所有树比 H 高的部分(当然,树木不高于 H 米的部分保持不变)。例如,如果一排树的高度分别为 20,15,10 和 17,Mirko 把锯片升到 15 米的高度,切割后树木剩下的高度将是 15,15,10 和 15,而 Mirko 将从第 1 棵树得到 5 米,从第 4 棵树得到 2 米,共得到 7 米木材。第 1 行 2 个整数 N 和 M,N 表示树木的数量,M 表示需要的木材总长度。
2025-03-24 21:37:15
243
原创 洛谷 2440 木材加工
例如有两根原木长度分别为 11 和 21,要求切割成等长的 6 段,很明显能切割出来的小段木头长度最长为 5。对于 100% 的数据,有 1≤n≤105,1≤k≤108,1≤Li≤108(i∈[1,n])。木头长度的单位是 cm,原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。第一行是两个正整数 n,k,分别表示原木的数量,需要得到的小段的数量。当然,我们希望得到的小段木头越长越好,请求出 l 的最大值。接下来 n 行,每行一个正整数 Li,表示一根原木的长度。
2025-03-22 17:10:10
187
原创 洛谷 1163 银行贷款
当一个人从银行贷款后,在一段时间内他(她)将不得不每月偿还固定的分期付款。这个问题要求计算出贷款者向银行支付的利率。第一个整数表示贷款的原值 w0,第二个整数表示每月支付的分期付款金额 w,第三个整数表示分期付款还清贷款所需的总月数 m。使用二分查找,设置左右边界为0~500(注意单位为%,在计算时应该除以100;一个实数,表示该贷款的月利率(用百分数表示),四舍五入精确到 0.1%。数据保证,1≤w0,w≤231−1,1≤m≤3000。计算月利率的公式可以去网上找一找。过程可以看代码,写了注释。
2025-03-20 17:03:24
119
原创 洛谷 1678 烦恼的高考志愿
计算机竞赛小组的神牛 V 神终于结束了高考,然而作为班长的他还不能闲下来,班主任老 t 给了他一个艰巨的任务:帮同学找出最合理的大学填报方案。注意lower_bound使用时的边界问题,比如查找不到,或者第一个元素就满足条件(此时不需要和前一个小于value值的元素比较,因为该元素就是第一个元素了,直接计算不满意值即可)。根据 n 位学生的估分情况,分别给每位学生推荐一所学校,要求学校的预计分数线和学生的估分相差最小(可高可低,毕竟是估分嘛),这个最小值为不满意度。m 表示学校数,n 表示学生数。
2025-03-19 22:18:30
150
原创 洛谷 4447 [AHOI2018初中组] 分组
我自己写只过了一半的测试点,后面实在没思路,参考了网上的解题思路,第一遍在遍历现有组选择符合的组加入元素时,选择遍历所有的组,这显然有些冗余,很多组的遍历是不必要的,因为只允许相邻元素相差1,那么后面的组增长起来后,前面的组就作废了(即不可能再加入新的元素),提交之后显然有一个测试点没过,因为超时了。【样例解释】 分为 2 组,一组的队员实力值是 {4,5,2,3},一组是 {−4,−3,−5},其中最小的组人数为 3,可以发现没有比 3 更优的分法了。注意:实力值可能是负数,分组的数量没有限制。
2025-03-19 20:45:04
416
原创 洛谷 1478 陶陶摘苹果(升级版)
现在已知 n 个苹果到达地上的高度 xi,椅子的高度 a,陶陶手伸直的最大长度 b,陶陶所剩的力气 s,陶陶摘一个苹果需要的力气 yi,求陶陶最多能摘到多少个苹果。陶陶又跑去摘苹果,这次他有一个 a 公分的椅子。对于 100% 的数据,n≤5000, a≤50, b≤200, s≤1000, xi≤280, yi≤100。第 3 行~第 3+n−1 行:每行两个数 苹果高度 xi,摘这个苹果需要的力气 yi。第 2 行:两个数 椅子的高度 a,陶陶手伸直的最大长度 b。
2025-03-13 20:42:58
164
原创 洛谷 1106 删数问题
键盘输入一个高精度的正整数 n(不超过 250 位),去掉其中任意 k 个数字后剩下的数字按原左右次序将组成一个新的非负整数。编程对给定的 n 和 k,寻找一种方案使得剩下的数字组成的新数最小。第二行输入一个正整数 k,表示需要删除的数字个数。,保证 1≤k<len(n)≤250。第一行输入一个高精度的正整数 n。乍一看挺简单,实现起来有点小复杂。输出一个整数,最后剩下的最小数。用 len(n) 表示 n 的。
2025-03-13 20:01:15
338
原创 洛谷 1090 合并果子
接着,将新堆与原先的第三堆合并,又得到新的堆,数目为 12 ,耗费体力为 12。但很容易犯错的地方,当合并完两堆果子,得到一个新堆时,可能会大于后面的果子堆,因此需要将得到的新的果子堆连同后面剩下的果子堆重新排序,确保每一次都选择重量最轻的两堆果子。假定每个果子重量都为 1 ,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。
2025-03-12 22:04:03
424
原创 洛谷 1803 凌乱的yyy/线段覆盖
第一行是一个整数 n,接下来 n 行每行是 2 个整数 ai,bi (ai<bi),表示比赛开始、结束的时间。由于 yyy 是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加 2 个及以上的比赛。现在各大 oj 上有 n 个比赛,每个比赛的开始、结束的时间点是知道的。yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。所以,他想知道他最多能参加几个比赛。快 noip 了,yyy 很紧张!一个整数最多参加的比赛数目。
2025-03-12 21:31:16
369
原创 洛谷 1223 排队接水
普通的贪心算法思路即可,没有什么特别注意的。唯一坑的是在求数组和时,不能简单初始化为0(默认为int类型),而是要初始化为LongLongInt类型,即0LL。有 n 个人在一个水龙头前排队接水,假如每个人接水的时间为 Ti,请编程找出这 n 个人排队的一种顺序,使得 n 个人的平均等待时间最小。accumulate(arr,arr+n,0):对数组arr进行求和操作,和的初始值为0(若为ll类型需要写为0LL)第二行 n 个整数,第 i 个整数 Ti 表示第 i 个人的接水时间 Ti。
2025-03-11 21:17:05
184
原创 洛谷 1102 A-B配对
因为数组是有序的(刚开始我设置为降序),那么只需从该元素的位置开始,向后遍历寻找,当找到距离之差大于C时即可跳出循环,虽然也不用每次遍历完数组剩余部分,但是仍然存在很多不必要的查找操作,增大了时间的开销。那么,能否直接查找到目标值呢,但很多函数,只能告诉你目标值是否存在,而不能告诉你有几个目标值(可能有多个),那么我们需要查找到第一个符合条件的元素下标和第一个不符合条件的下标,二者相减即可得到中间包含的符号条件的元素个数,而不必要去一一遍历那些无关元素。第二行,N 个正整数,作为要求处理的那串数。
2025-03-05 21:11:17
242
原创 洛谷 8218 求区间和
定义一个数组res,用来存储前n项和,那么区间i到j的和就等于res[j-1]-res[i-1]+arr[i-1]。给定 n 个正整数组成的数列 a1,a2,⋯,an 和 m 个区间 [li,ri],分别求这 m 个区间的区间和。注意:首先,数组下标从0开始,在映射到数组上时需要-1。接下来 m 行,每行为两个正整数 li,ri ,满足1≤li≤ri≤n。对于 100% 的数据:1≤n,m≤105,1≤ai≤104。第二行,为 n 个正整数 a1,a2,⋯,an。
2025-03-04 21:39:45
356
原创 洛谷 1143 进制转换
共三行,第一行是一个正整数,表示需要转换的数的进制 n (2≤n≤16),第二行是一个 n 进制数,若 n>10 则用大写字母 A∼F 表示数码 10∼15,并且该 n 进制数对应的十进制的值不超过 109,第三行也是一个正整数,表示转换之后的数的进制 m (2≤m≤16)。请你编一程序实现两种不同进制之间的数据转换。一个正整数,表示转换之后的 m 进制数。没啥技巧,理解进制转换原理即可。
2025-03-04 21:05:16
194
原创 洛谷 5318 查找文献
目前小 K 已经打开了编号为 1 的一篇文章,请帮助小 K 设计一种方法,使小 K 可以不重复、不遗漏的看完所有他能看到的文章。(3)、循环:队列不为空时,不断在队尾压入对头元素的子节点(压入时即可进行输出,因为输出顺序严格按照入队顺序,只需判断该节点没有被标记过即可),结束一轮后将队头结点弹出,继续选择当前队头结点,直到队列为空。共 m+1 行,第 1 行为 2 个数,n 和 m,分别表示一共有 n(n≤105) 篇文章(编号为 1 到 n)以及m(m≤106) 条参考文献引用关系。
2025-02-28 20:30:20
373
原创 洛谷 1551 亲戚
将x的祖先指向y,即y是x的祖先的祖先,那么现在x和y都有一个共同的祖先,就是y的祖先,这样就把x的亲戚家族和y的亲戚家族合并在一起了。如果 x,y 是亲戚,那么 x 的亲戚都是 y 的亲戚,y 的亲戚也都是 x 的亲戚。第一行:三个整数 n,m,p,(n,m,p≤5000),分别表示有 n 个人,m 个亲戚关系,询问 p 对亲戚关系。以下 m 行:每行两个数 Mi,Mj,1≤Mi, Mj≤n,表示 Mi 和 Mj 具有亲戚关系。表示第 i 个询问的答案为“具有”或“不具有”亲戚关系。
2025-02-28 15:25:18
271
原创 洛谷 4715 淘汰赛
已经知道各个国家的能力值,且都不相等。能力值高的国家和能力值低的国家踢比赛时高者获胜。1 号国家和 2 号国家踢一场比赛,胜者晋级。3 号国家和 4 号国家也踢一场,胜者晋级……晋级后的国家用相同的方法继续完成赛程,直到决出冠军。给出各个国家的能力值,请问亚军是哪个国家?第二行 2n 个整数,第 i 个整数表示编号为 i 的国家的能力值(1≤i≤2n)。第一行一个整数 n,表示一共 2n 个国家参赛。把while循环改写之后就不超时了?仅一个整数,表示亚军国家的编号。第一遍超时了,只得了60分。
2025-02-26 18:09:48
279
原创 洛谷 1219 八皇后
一个如下的 6×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。前三行为前三个解,每个解的两个数字之间用一个空格隔开。第四行只有一个数字,表示解的总数。这只是棋子放置的一个解。请编一个程序找出所有棋子放置的解。并把它们以上面的序列方法输出,解按字典顺序排列。一行一个正整数 n,表示棋盘是 n×n 大小的。请输出前 3 个解。最后一行是解的总个数。对于 100% 的数据,6≤n≤13。行号 1 2 3 4 5 6。
2025-02-25 17:42:14
186
原创 【深基2.例12】上学迟到
首先计算匀速步行花费的时间(向上取整ceil,确保在8.00或者8.00以前到达学校),再加上垃圾分类的时间(10min)即为总时间。测评未通过,观察题目发现提前的时间在一天的范围内都有可能,修改。学校要求必须在上午 8:008:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。学校和 yyy 的家之间的距离为 ss 米,而 yyy 以 vv 米每分钟的速度匀速走向学校。输出一个 2424 小时制下的时间,代表 yyy 最晚的出发时间。
2024-12-07 15:03:39
266
原创 leecode:寻找两个正序数组的中位数
合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5。合并数组 = [1,2,3] ,中位数 2。请你找出并返回这两个正序数组的。的正序(从小到大)数组。算法的时间复杂度应该为。
2024-01-31 17:28:02
196
原创 蓝桥杯2022年第十三届省赛真题-求和
后面参考了一位大佬的解题思路,先将计算化简以防超时,我们把公因子提出来,就可以得到计算表达式为s=a1*(a2+a3+...+an)+a2*(a3+a4+...+an)+...+an-1*an。给定 n 个整数 a1, a2, · · · , an ,求它们两两相乘再相加的和,即 S = a1 · a2 + a1 · a3 + · · · + a1 · an + a2 · a3 + · · · + an-2 · an-1 + an-2 · an + an-1 · an.输出一个整数 S,表示所求的和。
2024-01-23 21:29:23
480
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人