
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
别担心less为奇数,因为总数为偶数,合规的是2的倍数,所以不合规的more+less的和也是偶数,所以more和less要么都是偶数,要么都是奇数。假设我们统计出了more(多余总人数)和less(空缺总人数),按照贪心,我们应该将多余的人数和空缺的人数中和,这样就可以以最小的代价满足两边的需求。我们需要知道id号对应的人数,然后统计出所有不规范的id,方便我们进行进一步分析。比较简单的一个思维
一开始我是真的没想到用DFS做,我还在想用什么策略排序呢。,比之前的快了不少。
其实一开始我想直接暴力的,然后写着写着突然觉得可以优化一下: 优化方法:先找所有2023的位置,记录初始和最后的位置 找出所有合法日期的位置,使用前缀和,计算以当前2023结尾时,其后有几个合法日期,相加即可 但是有个问题就是,如何如果遇见相同的日期,怎么存储其位置?
因为每一次都是只删除一个边,所以完全没必要重新画个图,如果能实现单一修改就好了QWQ,但是并查集,关系网是很复杂的,如果不能重头开始捋,很容易出错。还行,用并查集暴力求解的话,能过30%,考试的时候就选她了!有兴趣的小伙汁可以琢磨琢磨~分析一下,为什么会超时——
然后我就用前缀和,计算最后一个数3在末尾的个数。相当于前三重循环确定前三个数的位置,现只需要知道最后的区间中3的个数,就能得到该情况下的个数。很快就跑出来了,但是结果和之前的值一样,我一拍脑门,开了个longlong,OK,过了。本来是纯暴力的,直接四重循环,电脑跑了好久才出来一个数,但是不对(其实是因为。这就是国赛的威力吗,第一题就这么难。我真的想不到用动态规划,这道题让我用。
这里还有一个妙点就是,通过计算当前位置到根节点的位置计算到最近公共祖先的距离。**思路和之前刷的差不多,可能代码细节上有些区别,大家可以选择自己好理解的方式~但是实际上和我一开始分析的是一样的,最近公共祖先。的,因为我们最后返回的最近公共祖先是x,y的父亲节点,所以他们的父亲节点也应该要一样才可以。但是这道题和我之前刷的公共祖先不一样的地方在于,不是用并查集的方法,而是用了一个所谓的。本来一开始想
pre 只能一步一步走,而 f 可以跳着走,对于寻找最近公共祖先而言,f 的效率是更高的,但是同样也是最难理解的,但是本题之所以 pre 也能做出来,我觉得是因为我在寻找最近公共祖先的时候就已经在为最后答案输出做铺垫了。真的服了,这道题,本来用自己的方法做出来了,但是提交的时候就过了一个样例。被逼无奈去看了题解,用了一个高深莫测的优化方法,学完之后再去做,发现还是只过了那一个样例,哭了。:版本1的
一点点变式的Dijkstra算法,应该庆幸没有让我们打印路径。为了让大家更好的理解Dijkstra,下面详细写了相关知识点。注意下面代码和上面变量和数组的对应关系哦~
看题目这个样例,我还以为是只能变动a数组,然他和b数组一样,但是其实是两个数组都能变动,而所有测试数据就是这样设置的!,就是当我使用到while的时候,想直接一口气把连续的都加上的时候,为什么就不行了呢?亏我还以为自己聪明了不少,还自以为是前缀和呢,在那里嘎嘎写,结果一个都没过QwQ。后面我知道怎么做了,但是。
了,但是我的dfs过不了QWQ。







