- 博客(13)
- 收藏
- 关注
原创 2024年中国传媒大学程序设计大赛AB题解(同步赛)
然后遍历第一位i,从1到N,N为极大数,然后遍历到第一个存在的数字,然后再寻找第二个数字j,第二个数字为了满足可b%a==0的性质只能够以i为公差递增,同时在j数字存在的情况下寻找k,同理,k也以j为公差递增,最后找到合适的k值,那么统计次数ans=nums[i]*nums[j]*nums[k];列的先后顺序为多的先填,然后每一行填的个数已经决定好了,列多的先填,行次数用完的话剩下的就为0,这个思路应该是最容易理解的,解决代码如下。先考虑数最多的列,即第三列,同时没有行来约束,那么第三列全部数字为1;
2024-03-21 20:57:22
1367
1
原创 青蛙过河问题
有效区间:如果大小为x的距离能够走通,那么前x的距离的和必须要大于2*k,因为要将至少2*k的步数传递给终点,那么每一个区间都至少有一个比2*k大的容器来存储这些步数。判断从dp[n-k]到dp[n-1]的和,如果和大于2*k则返回true,反之返回false;这个是我之前的思路,接下来是我看的别的大佬写的思路,觉得挺好的,就在这里分享给大家。dp[i]=min(high[i],从j到i的dp[j]的和);建立dp[100010],表示第i个位置所能到达的最大值;只有95%的通过率哎!二分思路和之前一样;
2024-03-18 21:42:13
463
1
原创 异或和之和
定义走到第j个位置是,n0为j位置的偶数个数,初始值为 1,n1为在j位置之前的奇数个数,初始值为0,当到达第j位时该位置为奇数(即1)时,此时i这个位次就能够发挥n1次,同时n1也要加1,对于偶数同理。(3)自反性: A ^ B ^ B = A (由结合律可推: A ^ B ^ B = A ^ ( B ^ B ) = A ^ 0 = A)示例:将 a 和 b 两个变量值交换,例如: a = 3,b = 7,交换后,a = 7,b = 3。考虑每一个位次的贡献,如果走到进行到第i个位次,走到第j个位置,
2024-03-05 21:48:32
1115
1
原创 质数筛选法以及相关例题
如果我们从小到大考虑每个数,然后同时把当前这个数的所有(比自己大的)倍数记为合数,那么运行结束的时候没有被标记的数就是素数了。考虑这样一件事情:对于任意一个大于 1的正整数 x,那么它的 k倍就是合数。利用这个结论,我们可以避免很多次不必要的检测。一个自然的想法是对于小于等于 n 的每个数进行一次质数检验。这种暴力的做法显然不能达到最优复杂度。埃氏筛法仍有优化空间,它会将一个合数重复多次标记。如果能让每个合数都只被标记一次,那么时间复杂度就可以降到n了。显然,只需筛至不超过sqrt(n)的素数即可;
2024-03-01 17:30:08
528
1
原创 排序之归并排序和快速排序
是一种高效的排序算法,采用分治法(Divide and Conquer)的一个非常典型的应用。它将数组分成两半,对每部分递归地应用归并排序,然后将两个排序好的部分合并在一起。
2024-02-29 00:02:52
476
原创 DFS搜索之选数问题
选三个 1,2,3 1,2,4 1,2,5 1,3,4 1,3,5 1,4,5。我的第一种思考是先用排序搜索搜到所有的情况,再在所有情况中找到符合条件的统计次数,但是忽略了这样会导致重复选择的问题,这道题的核心是选择而不是排序。选四个 1,2,3,4 1,2,3,5 1,3,4,5 2,3,4,5。关键的是,这里面选择的情况(选择的数字)没有相同的,而且涉及到所有的情况,即具有全面性和特异性;
2024-02-23 11:50:59
434
1
原创 数据结构set的定义和常见引用
set容器中的元素不会重复,当插入集合中已有的元素时,并不会插入进去,而且set容器里的元素自动从小到大排序。即:set里面的元素Cpp。
2024-02-03 21:38:06
794
1
原创 寒假每日一题之奶牛晒衣服问题
一件衣服在自然条件下用一秒的时间可以晒干 a 点湿度。使用用一秒烘衣机可以让一件衣服额外烘干 b 点湿度(一秒晒干a+b 湿度),但在同一时间内只能烘一件衣服。现在有n 件衣服,第 i 衣服的湿度为 wi(保证互不相同),要你求出弄干所有衣服的最少时间(湿度为 00 为干 )。但是由于衣服很湿,为牛宝宝晒衣服就成了很不爽的事情。于是,熊大妈请你(奶牛)帮助她完成这个重任。question: 为何能用二分?因为结果具有单调性!第一行三个整数,分别为n,a,b。一行,弄干所有衣服的最少时间。
2024-02-02 21:22:28
710
原创 寒假每日一题之水滴问题(双指针问题)
氧气少年将 n 个水滴排成一排,第 i 个水滴的饱和值为ai(1≤ai≤9)。每个水滴可以吸收其他水滴。例如:某一水滴目前的饱和值为a,它吸收了一个饱和值为b 的水滴,那么此水滴的饱和值变为a+b。请注意,对于空中两个相遇的、相向而行的水滴,它们只会"擦肩而过",换句话说,它们不受相遇水滴的任何影响。已知氧气少年在第 p 个水滴上添加了一滴饱和值为 1 的水滴,请求出最终飞到向左无穷远的位置的水滴的数量和最终飞到向右无穷远的位置的水滴的数量。
2024-01-27 09:20:48
469
原创 寒假每日一题之 A-B问题
lower_bound(a,a+n,x)-a //下标从0开始lower_bound(a+1,a+n+1,x)-a //下标从1开始它们就能取得最小的a数组的下标i,满足ai⩾x。upper_bound(a,a+n,x)-a //下标从0开始upper_bound(a+1,a+n+1,x)-a //下标从1开始它们就能取得最小的a数组的下标i,满足ai>x。那他如何来解这道题呢?我们发现,如果这个数组是有序的,那么对于每一个A的值,在它的后方就只有一个数值B满足A,B的差值为C。
2024-01-25 19:57:33
699
原创 数据结构map的基本知识与用法
映射类似于函数的对应关系,每个x对应一个y,而map是每个键对应一个值。会python的朋友学习后就会知道这和python的字典非常类似。比如说:学习 对应 看书,学习 是键,看书 是值。学习->看书玩耍 对应 打游戏,玩耍 是键,打游戏 是值。玩耍->打游戏Cppmap特性:map会按照键的顺序从小到大自动排序,键的类型必须可以比较大小。
2024-01-24 20:44:09
1816
1
原创 优先队列的相关知识与例题
优先队列是在正常队列的基础上加了优先级,保证每次的队首元素都是优先级最大的。可以实现每次从优先队列中取出的元素都是队列中优先级最大的一个。它的底层是通过堆来实现的//头文件//初始化定义。
2024-01-24 17:09:28
1851
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅