基础 —— 前缀和、差分
基础 —— 前缀和、差分
c4Lnn
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #618 (Div. 2) C. Anu Has a Function
链接https://codeforces.com/contest/1300/problem/C题意f(x,y)=(x∣y)−yf(x,y)=(x\mid y)-yf(x,y)=(x∣y)−y已知数组 aaa 可以任意顺序排列,求 f(f(f(f(a1,a2),a3),...,an−1),an)f(f(f(f(a_1,a_2),a_3),...,a_{n-1}),a_n)f(f(f(f(a1,a2),a3),...,an−1),an) 的最大值思路易得 f(x,y)=(x∣y)−y=x原创 2020-07-29 14:34:59 · 89 阅读 · 0 评论 -
牛客练习赛74 C. CCA的矩阵
链接https://ac.nowcoder.com/acm/contest/9700/C题意一个 n×nn\times nn×n 的矩形内布满了老鼠万幸的是,你有一个 k×kk\times kk×k 的锤子,一锤子砸下去可以把它覆盖到的所有老鼠清除这个锤子只能斜着锤,对于一个 3×33\times33×3 的锤子,它能覆盖到的区域如下:- - * - -- * * * -* * * * *- * * * -- - * - -一锤子砸下去,最多能清除多少只老鼠思路将数组旋转 45∘4原创 2021-02-07 17:18:39 · 150 阅读 · 0 评论 -
Codeforces Round #629 (Div. 3) F. Make k Equal
链接https://codeforces.com/contest/1328/problem/F题意操作一:使最小的数加一操作二:使最大的数减一求最小操作数使序列中有 kkk 个相同的数思路将所有数排序后,枚举每个不同的数操作只有三种 Case:只操作比当前小的数只操作比当前大的数操作一部分比当前小的数,操作一部分比当前大的数易发现不管是操作小的数还是操作大的数,我们都需要将一边的所有数都先操作为与当前数相差为 111 的数才能增加当前数个数,用前缀和预处理代码#include原创 2020-11-26 10:10:50 · 86 阅读 · 0 评论 -
EOJ Monthly 2020.7 C. OLED
链接https://acm.ecnu.edu.cn/contest/292/problem/C/题意一个 n∗mn*mn∗m 的 010101 矩阵 ppp 在 a∗ba*ba∗b 的矩阵 qqq 中移动,求每个点为 111 的概率,按照概率最大的点是 100100100 换算每个点的答案思路差分 + 二维前缀和分别讨论 ppp 中每个点对 qqq 的贡献代码#include<bits/stdc++.h>using namespace std;const int N=4000原创 2020-07-31 11:52:02 · 110 阅读 · 0 评论 -
牛客小白月赛 22 G. 仓库选址
链接https://ac.nowcoder.com/acm/contest/4462/G题意给出一个 m×nm \times nm×n 的矩阵,每个点都有一个访问次数,找出以某点为起点到其他点的距离 ∗*∗ 访问次数之和最小思路前缀和若仓库在点 (x,y)(x,y)(x,y) 处,现在将仓库移动到点 (x+1,y)(x+1,y)(x+1,y) ,那么对于左上角为 (1,1)(1,1)(1,1),右下角为 (x,m)(x,m)(x,m) 的矩阵,所有点到达仓库的距离都 +1+1+1,对于左上角为原创 2020-07-29 23:41:21 · 180 阅读 · 0 评论 -
牛客小白月赛 22 H. 货物种类
链接https://ac.nowcoder.com/acm/contest/4462/H题意nnn 个仓库,mmm 个区间,每个区间放入某种物品,求物品种类最多的最小仓库编号思路差分区间按物品种类排序,若物品种类相同,则按区间左端点从小到大排序合并同一种类物品的重复区间代码#include<bits/stdc++.h>using namespace std;const int N=1e5+5;int n,m,b[N];struct node { int l,r,原创 2020-07-29 22:38:43 · 229 阅读 · 0 评论 -
LibreOJ 2359. 天天爱跑步
链接https://www.luogu.com.cn/problem/P1600题意树形图上有 mmm 个玩家,从 sss 走到 ttt每个节点都有一个观察员节点 xxx 的观察员在第 www 秒观察玩家,若某个玩家在第 www 秒正好走到节点 xxx,则这个玩家被节点 xxx 的观察员观察到求所有节点的观察员能够观察到的玩家的总数思路树上差分每个玩家的路径可以分为两部分:s∼lca(s,t)s \sim lca(s,t)s∼lca(s,t) 和 lca(s,t)∼tlca(s,t) \s原创 2020-07-29 21:46:56 · 177 阅读 · 0 评论 -
牛客小白月赛 23 A. 膜法记录
链接https://ac.nowcoder.com/acm/contest/4784/A题意所有的敌人都排布在一个 n∗mn*mn∗m 的网格中总共能够 aaa 次消灭一整行的敌人,bbb 次消灭一整列的敌人求能否将敌人全歼思路二进制枚举选择行的状态预处理每种状态能够消灭多少列的敌人(前缀和)cnt[i]cnt[i]cnt[i] 即为在 iii 的状态下有多少列上没有敌人代码#include<bits/stdc++.h>using namespace std;typed原创 2020-07-29 14:39:10 · 120 阅读 · 0 评论 -
黑暗爆炸 3307. 雨天的尾巴
链接https://www.luogu.com.cn/problem/P4556题意树形图上每次分配给 aaa 到 bbb 路径上的所有点一个 zzz 类物品,分配 mmm 次,求每个点拥有最多的物品的种类思路树上差分+权值线段树合并设 ccc 数组为每个节点拥有每类物品的计数数组设 bbb 数组是差分后的计数数组对于每次分配,让 b[x][z]b[x][z]b[x][z] 加 111 ,b[y][z]b[y][z]b[y][z] 加 111 ,b[lca(x,y)][z]b[lca(x,y原创 2020-07-29 14:10:33 · 217 阅读 · 0 评论 -
POJ 3417. Network
链接http://poj.org/problem?id=3417题意树形图上另添 mmm 条附加边,求第一次删去一条主要边,第二次删去一条附加边后树被分割成来两部分的方案数思路树上差分 + LCA每条附加边构成了一个环,使这个环上所有的主要边都被覆盖了一次若一条主要边被覆盖了 000 次,那随便删掉一条附加边,即满足要求若一条主要边被覆盖了 111 次,那么删法唯一若一条主要边被覆盖了 ≥2\ge 2≥2 次,无法满足要求我们给每个点增加一个权值 ddd,在 x,yx,yx,y 间加一条原创 2020-07-29 14:07:34 · 89 阅读 · 0 评论