首页 > 糖糖别胡说,我真的不是签到题目
头像 一只橘橘猫
发表于 2020-04-20 11:13:01
题意: 解法: 时间复杂度: std: #include <bits/stdc++.h> using namespace std; #define ll long long const int maxn = 500005; struct node{ int x; 展开全文
头像 ThinkofBlank
发表于 2020-04-20 11:02:16
这题,我们只需要分析下一个点可以被另一个点给消除的条件后,我们就可以很简单的处理了~ 首先由题,一个点i会被一点j消除的条件当且仅当: ,第j秒时, 我们发现,前两个都是很好判断的,但是最后一个条件就有点烦了,因为我们中间掺杂着若干个加的操作 注意到,每次加时,我们都是把b[1]-b[ci]的点加1 展开全文
头像 fuzhiji
发表于 2020-04-20 14:00:09
对于这道题,如果按照朴素算法来说,第一反应是对于每个位置i的糖糖,处理1 ~ i-1 被消灭的糖糖有哪些,给他们标记,然后最后统计一遍,很显然,这样复杂度很高,不足以通过这道题,所以我们换种处理方法。先看m次操作,有影响的一定是 ,我们可以维护一个前缀和, 表示第 项前面有几次操作,这样做的意义是什 展开全文
头像 Kur1su
发表于 2020-04-21 10:18:01
Solution 题意规定 第i只糖糖可以消灭掉所有排在他前面的和他不是同一组的且能力值小于他的糖糖考虑从后往前推, 维护两个组的最大值因为还有发功的情况, 我们考虑用后缀和表示, 因为对于每个点i发功1, 2......., i都会加1, 因此要从后面往前推如果当前的糖糖能力值小于另一个组别的最大 展开全文
头像 kkloveyy
发表于 2020-05-04 18:43:09
后缀数组写起来简单,理解也比较简单。如果在原来的基础之上发功,就算开始发功的人收益但当后续的发功结束后该来的终究会来,之前小于他的糖糖也会被灭掉,所以从后往前是可以的,还容易维护一些 #include <bits/stdc++.h> using namespace std; #defin 展开全文
头像 _LRJ_
发表于 2020-04-23 21:26:13
你就是个水题~这个题如果理清思路其实特别好做,我们仔细想想,是不是如果一个人后面没有比他更大的另一个队伍的人那么他一定就活下来了吧那么其实我们要做的就是从后往前维护2个最大值(两个队伍的最大值),那要做的就是如何把这些ci给他优美的加上首先考虑暴力,每次把前面ci个数加上一。时间复杂度是n2。不够优 展开全文
头像 ⊙__⊙
发表于 2020-04-20 16:55:23
首先感谢 PDSU----18计一-----周宁 ,我是看了这位大佬的解题,然后获取了一些思路。 题目意思: 第i个糖糖会有bi的能力值,然后他父亲能够在第i秒把1-i位置的b能力值都加1. 第i个糖糖在第i秒能干掉前面比他能力值小的人,并且是不用小组的,同一小组是不能干的。 小组最多就2组。 思路 展开全文
头像 BE-ABLE-N
发表于 2022-01-09 23:08:41
题意: 有n个糖糖,每个糖糖都有一个组别0或1,以及它的能力值。 在第i秒的时候,第i个糖糖就会干掉前面能力值比它小且非同组的糖糖 有m次发功,每次发功可以让前i个糖糖能力值+1 解法: 枚举暴力 从后往前遍历,依次更新糖糖的最大值,小于别组最大能力值的糖糖必然会干掉 问题在于如果解决不断发功 展开全文
头像 Eihuvita.
发表于 2020-05-29 22:39:34
解析 1.前m次操作可以用前缀和模拟区间加,得到每个糖糖的新能力值后从后往前维护每个队伍的最大值,当前糖糖的能力值如果大于后面敌对队伍糖糖的最大值,也就是比后面的糖糖都强,那么他存活,反之白给。复杂度θ (n)。 2.如果从前往后判断第i糖糖能不能存活,还要搜索后面i-1个糖糖,复杂度θ (n^2 展开全文
头像 一衍一
发表于 2020-04-20 11:50:23
题意: 个数分为两组,然后开始从头遍历,每秒向后+1位,如果从 有小于当前的 时且不是同一组的元素消灭,同时还有个 次操作就是可以在第 秒时,可以使 全部+1,求最后剩余多少个元素题解:暴力,倒着枚举 ,根据这句我们可以先让所有的元素加上相应的数字,如样例所给(最后有点挡住了........)然后不 展开全文