摘要: 题目 代码 首先容易想到对于所有的初始温度,其答案一定构成一段一段的区间,然后因为题目强制在线,可以想到每一天后就维护一下当前的答案集合。 容易发现,其实本质就是对于答案大于某一个数的所有数进行区间减,对于答案小于某个数的所有数区间加。(因为刚刚说了构成连续区间) 那么现在的问题就在于如何求出这两段 阅读全文
posted @ 2021-11-29 17:13 __Anchor 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 题目 给定一个序列 \(a\) ,定义其权值为: \[ \sum_{i=1}^n\gcd(a_1,a_2,...,a_i) \] 现在你可以重排 \(a\) ,求这个权值的最大值。 本题与同场 D1 的唯一差别在于 \(a_i\) 的范围。 分析 首先容易想到可以 \(dp\) ,并且是按照值域的维 阅读全文
posted @ 2021-11-29 16:54 __Anchor 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 题目 分析 (比赛时直接看出来结论就过了) 直接抛结论:所有子集的异或和的和等于 所有数的或 \(\times 2^{n-1}\) 。 首先可以得到这样一个柿子(其中 \(s\) 是当前位在数组中值为 \(1\) 的个数): \[ \large \sum_{i=0}^{\log V}2^i\time 阅读全文
posted @ 2021-11-29 14:56 __Anchor 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 题目 分析 好像是经典套路,但是我还是不会。 区间异或和并不好直接维护,于是想到按位处理。 枚举二进制的每一位,然后直接对于原序列所有数模一个 \(2^{k+1}\) (假设枚举的是 \(k\) ) 然后对当前位有影响的就是和在区间 \([2^k,2^{k+1}-1]\) 和区间 \([2^k+2^ 阅读全文
posted @ 2021-11-29 09:20 __Anchor 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 题目 分析 像这样多次询问的东西,一般都是一段含有某些一定的特征,我们才能加以判断,所以我们的目的就是寻找这些变化中不变的特征。 需要观察性质,发现在这样的操作当中,每一个 \(0\) 之间的相对位置不会变,并且每一个 \(0\) 的奇偶性一定不变。 于是我们可以想到直接哈希来判断,只要两个区间,每 阅读全文
posted @ 2021-11-29 09:09 __Anchor 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 题目 分析 不难想到可以先按照 \(x\) 值排序,然后如果我们枚举每一个 \(x\) 值的装备,那么其在怪兽里面也一定是单调不降的。 这个时候就需要询问当前的怪兽当中,值小于当前 \(y\) 的怪兽个数。 直接每次加入怪兽,然后对于 \(y\) 就是个查询值域上的前缀和即可。 其实本质就是扫描线。 阅读全文
posted @ 2021-11-29 09:03 __Anchor 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 题目 分析 首先发现大的字母如果存在对于小的字母的删除来说一定不优,于是想到可以直接枚举字母 \(z\) 到 \(a\) 依次删除。 删除的过程可以用链表模拟也可以直接 \(vector\) 暴力。 代码 #include<bits/stdc++.h> using namespace std; // 阅读全文
posted @ 2021-11-29 08:52 __Anchor 阅读(34) 评论(0) 推荐(0) 编辑