算法比赛
文章平均质量分 61
Lance Jay
“搞怪的不是红绿灯,不是时机,而是我数不清的犹豫”
展开
-
中兴捧月神算师算法赛,4-24第一场,第五题:E-反复横跳,2021-5-5
第五题:E-反复横跳分析:位置从 s 到 t ,根据距离来进行确定最优跳跃,且s和t的大小关系不定,要考虑跳跃距离为 [- 20000, 20000],距离为0时不需要跳跃。根据题意,如果不重置,那么每步跳跃的步长是固定的。如1,-2,4#include<bits/stdc++.h>using namespace std;const int N=20005;int dp[N*2];int op,step,a[N],na; //na未赋值,但是是全局变量,默认为0原创 2021-05-05 21:57:38 · 259 阅读 · 0 评论 -
2021中兴捧月神算师算法赛,4-24第一场,第四题:D-换队伍,2021-4-28
第四题:D-换队伍分析:1.问题本身很简单,也只有两条队伍,一个队伍中的人换到另一个队伍的末尾。问题在于对其他人排队位置的保存和排序。2.用什么数据结构进行保存,是一个很关键的问题,对问题解决的方法和时间复杂度都有很大关系。如果使用简单的数组,那么每执行一次换队伍,会需要对后面的人进行前移一个位置,那么时间复杂度就上升了。3.很显然,一看到题,第一个想法就是链表,使用两个链表分别表示两个队伍,每个人作为链表的一个结点。当执行换队伍操作时,从一个链表中删除一个结点然后加到另一个链表末尾。这个方法是原创 2021-04-28 11:39:40 · 386 阅读 · 0 评论 -
2021中兴捧月神算师算法赛,4-24第一场,第三题: C - 做任务,2021-4-27
第三题: C - 做任务题目描述假设我们有一些任务列表,任务编号从1开始。不同的任务难度也不一样,分为1-5级。我们打算把这些任务分配给牛牛,可是牛牛比较懒,每次他接受到一个任务后,他都会从自己的todo list里找到“难度各不相同且编号和最大的五个任务”,然后再一起完成,否则的话,牛牛就把任务放到自己的todo list,什么也不做。请你根据输入的任务列表的情况,给出牛牛完成任务的情况。分析:1.只有当5个难度的任务都有的时候才会输出,且会挑编号和最大的数,由于我们是从序号0开始读取任务原创 2021-04-28 11:12:32 · 398 阅读 · 0 评论 -
2021中兴捧月神算师算法赛,4-24第一场,第二题:B - 切绳子,2021-4-27
第二题:B - 切绳子题目如下图所示:这道题目难度中等,但是有很多细节要注意。分析:1.首先数据类型问题, 1<n<1e18,这个显然超过了int的长度65535,需要使用big int 或者是long long 型进行定义变量,才不会报错。2.包含 T 组数据,意味着需要处理多个,那么对存储空间就有要求,不能将每切一次的数据都保存,否则可能会存储超限。3.每切一次,会分成[m/2],n-[m/2],那么只需要取其中长的那一段,一定是这两段中需要切的次数最多的,以此可以简化程序。原创 2021-04-28 11:11:12 · 1131 阅读 · 0 评论 -
2021中兴捧月神算师算法赛,4-24第一场,第一题:A - 跳高,2021-4-27
链接:https://ac.nowcoder.com/acm/contest/12949/A来源:牛客网第一题:A - 跳高题目描述:在新的一年,牛牛想跳得更高。牛牛本身可以跳高 h 米。同时牛牛有 n 颗跳高弹,使用第 i 颗跳高弹可以使牛牛跳高高度增加 a(i) 米,且跳高弹的效果是可以叠加的,也就是说如果牛牛使用多颗跳高弹,那么他的跳高高度将会增加这些跳高弹单个效果的和。每颗跳高弹只能使用一次。请问牛牛最少需要使用多少个跳高弹,才能让牛牛的高度至少是 u 米高呢?数据保证答案存在。分原创 2021-04-27 11:06:10 · 1723 阅读 · 0 评论