宝珠 题解 梦幻 个人

个人微信开发API,微信机器人

## 个人微信开发API 微信个人号二次开发,基于API开发可以有很多功能模块 各种知名SCRM系统、客服平台都是根据此API二次开发的。 ## 好友管理: 添加好友、删除好友、修改备注、创建标签、获取好友列表、检测僵尸粉设置个人头像同意添加好友 获取好友的信息 获取自己的微信获取自己的二维码 简要 ......
机器人 机器 个人 API

个人微信API服务

E云 是一套完整的的第三方服务平台,包含微信API服务、企微API服务、SCRM系统定制、企微系统定制、服务类软件定制等模块,本文档主要讲述个微API服务相关,以下简称API,它能处理用户微信中的各种事件,提供了开发者与个微对接的能力,技术上来讲是一款基于微信提供的个人开放性API,使用简单,操作快 ......
个人 API

Building Bridges 题解

[Building Bridges](https://www.luogu.com.cn/problem/P4655) ### 题目大意 连接两根柱子 $i,j$ 的代价是 $(h_i-h_j)^2+\sum\limits_{k=j+1}^{i-1}w_k$,连接具有传递性,求将 $1,n$ 连接的最 ......
题解 Building Bridges

[ABC310D] Peaceful Teams 题解

[Peaceful Teams](https://www.luogu.com.cn/problem/AT_abc310_d) ### 题目大意 将 $n$ 个人分成 $T$ 组,要求每组不能包含敌对的人,问有多少种分法。 ### 思路分析 注意到 $n,T$ 均很小,考虑爆搜。 注意到直接枚举会枚举 ......
题解 Peaceful Teams 310D ABC

NOI春季测试前模拟赛题解

[ T312819 命题工作 ](https://www.luogu.com.cn/problem/T312819) 直接容斥。 总方案 - 一题出现四次 - 一题出现三次 - 一题出现两次。 一题出现两次的情况略有不同,注意考虑周全。 复杂度 $O(n)$。 [code](https://www. ......
模拟赛 题解 NOI

题解 P9415 下楼

不难推理出当初始绳长为 $len$,需要下降的距离为 $d$,并且满足 $d\le lenf_j\land v_j\ge v_i\end{cases}$$ 开两棵线段树,第一棵 $t_1$ 维护 $\min(f_j)(h_j+\frac{f_j}{2}\ge h_i)$,第二棵 $t_2$ 维护 $ ......
题解 P9415 9415

题解 P9437『XYGOI round1』一棵树

换根 DP。 本蒟蒻最初没想到换根,把自己写自闭了... 定义 $f_u$ 为子树 $u$ 中的每个结点走到 $u$ 的贡献和,$l_u$ 为大于 $a_u$ 的最小的 $10$ 的幂次方数,$sum_u$ 为 $\sum\limits_{v\in son(u)}{f_v}$。 转移方程为:$f_u ......
题解 round1 P9437 XYGOI round

题解 P4183 [USACO18JAN] Cow at Large P

带有小 trick 的点分治。 建议先做完 [弱化版](https://www.luogu.com.cn/problem/P4186) 再看。 假如奶牛在 $u$,那么所需的最少农夫数为 $\sum\limits_{v\in son(u)}[dis(u,v)\ge g_v][dis(u,fa_v) ......
题解 P4183 Large USACO 4183

题解 P2137 Gty的妹子树

神奇的分块。 假如没有 $2$ 操作,我们可以直接用主席树解决。 我们考虑将询问分块,每遍历完一块就将这一块内出现的所有修改更新。如果在块内,就把当前块之前的所有修改暴力算,当然只有修改的节点在询问的节点的子树内才会发生。 具体的来说,我们可以用分块维护 dfs 序,并将块内的元素排序,询问 $O( ......
题解 妹子 P2137 2137 Gty

决策单调性优化DP 学习笔记 & P4767 [IOI2000] 邮局 题解

## 0. 题面 ### 题目描述 高速公路旁边有一些村庄。高速公路表示为整数轴,每个村庄的位置用单个整数坐标标识。没有两个在同样地方的村庄。两个位置之间的距离是其整数坐标差的绝对值。 邮局将建在一些,但不一定是所有的村庄中。为了建立邮局,应选择他们建造的位置,使每个村庄与其最近的邮局之间的距离总和 ......
题解 邮局 笔记 P4767 4767

题解 P7215

点分治。 考虑当前的分治重心的城市被完全联通。 这可以用队列接解决。每次放入一种城市,就把那些城镇的父亲加入队列,如果存在城镇不在当前分治重心的联通块内,那么说明必定存在另一个分治重心能算到它,直接退出即可。 剩下的和模板没有任何区别。 复杂度 $O(n\log n)$。 code: ```cpp ......
题解 P7215 7215

题解 P6329

点分树模板题。是个神奇的算法。 点分树就是将分治重心按照层级连边,每个节点父亲的联通块都包含了当前节点的联通块,且高度为 $\log n$。可以解决不考虑树的形态的多次询问带修改的问题。 对于这道题,我们可以在点分树的每个节点上记录两棵树状数组,分别与当前节点距离为 $k$ 的节点的权值和,以及与当 ......
题解 P6329 6329

题解 P3345

点分树。 本题的核心问题在于不好直接确定补给站的位置。 但是仔细思考后我们发现,对于当前节点,如果存在一个儿子的答案比它优,那么补给站一定在那个儿子的子树中。 增量为 $w\times(sum_u-2\cdot sum_v)$。当 $v$ 优于 $u$ 时,$2\cdot sum_v>sum_u$。 ......
题解 P3345 3345

题解 P4074

树上带修莫队。 **带修莫队复杂度分析:** 带修莫队比普通莫队多了一个时间戳,排序的时候先排左端点,再排右端点,如果左右端点所在块对应相等,则按时间戳排序。 设区间长度为 $n$,询问数为 $q$,修改数为 $c$,块长为 $B$。 我们分别考虑时间戳、左端点和右端点的移动次数。 时间戳:对于每一 ......
题解 P4074 4074

题解 P5384

这题有紫?? 对于询问节点 $u$,倍增地跳到它的 $k$ 级祖先,求其子树内有多少深度为 $dep_u$ 的节点。 我们考虑把询问离线,再通过 dfs 序把树拍平,然后扫一遍直接求就行了。 复杂度 $O(n\log n)$。 code: ```cpp #include using namespac ......
题解 P5384 5384

题解 P3806

点分治模板题。 点分治适合处理大规模的树上路径信息问题 暴力做法:dfs 每个点 $u$,算出其子树内每个点到 $u$ 的距离,统计经过 $u$ 的所有路径,复杂度 $O(n^2)$。 容易发现,复杂度和子树大小有关。 对于当前子树,我们可以求出其重心,计算经过重心的所有路径,删掉重心,递归每个联通 ......
题解 P3806 3806

题解 CF1106E

小清新 DP 题。 定义 $f_{i,j}$ 表示在时刻 $i$,干扰了 $j$ 次,最小贡献。 定义 $nex_i$ 表示在时刻 $i$ 会收集哪个红包。 那么转移方程为: $$f_{d_{nex_i}+1,j}=\min(f_{i,j}+w_{nex_i})$$ $$f_{i+1,j+1}=\m ......
题解 1106E 1106 CF

题解 CF900D

如果 $y$ 不是 $x$ 的倍数,答案为 $0$。 否则计算有多少种数列满足所有数 $\gcd$ 为 $1$ 且和为 $\frac{y}{x}$。 定义 $f_i$ 表示和为 $i$ 且 $\gcd$ 为 $1$ 的数列的数量。 显然有如下等式: $$2^{x-1}=\sum\limits_{d\ ......
题解 900D 900 CF

题解 CF1271E

找规律。 我们看有哪些数的 $path$ 经过 $x$。 当 $x$ 为奇数时,有:$x,2x,2x+1,4x,4x+1,4x+2,4x+3...$ 当 $x$ 为偶数时,有:$x,x+1,2x,2x+1,2x+2,2x+3,4x,4x+1...$ 规律很明显,不解释。 因为当 $x$ 为奇数和 $ ......
题解 1271E 1271 CF

题解 CF840B

构造题。 首先判断无解。每选一条边贡献两个度数,所以如果没有 $-1$ 的点,且度数和为奇数,那么无解。 接下来考虑构造。我们考虑从图中扣下来一棵树(dfs 树),如果度数为奇数,令 $-1$ 的点为根,否则随便选一个。 定义 $tp_i$ 表示第 $i$ 个节点是否需要与父亲连边,$0$ 表示不用 ......
题解 840B 840 CF

题解 CF980D

有个显然的小 trick:如果两个数相乘为平方数,那么消去平方因子后这两个数相等。 于是我们可以暴力枚举,每出现一个新数就加一,用 unordered_map 维护,然后就 T 了。 考虑优化。我们对于每个数预处理出上一个与它相等的数的位置。这样每次枚举的时候只需要看 $pre_i$ 是否小于左边界 ......
题解 980D 980 CF

题解 CF213C

考虑朴素 DP。定义 $f_{i,j,i2,j2}$ 表示两个人分别在 $(i,j),(i2,j2)$ 时获得的最大收益。复杂度 $O(n^4)$,不行。 我们换种方法,定义 $f_{st,x,y}$ 表示两人同时走了 $st$ 步,分别向右走了 $x,y$ 步。显然如果向右的步数确定了,向下的也确 ......
题解 213C 213 CF

题解 CF930C

好题啊好题。 定义 $a_i$ 为有多少个区间包含 $i$。 拍脑袋一想,当且仅当存在顺序的三个坐标 $(i,j,k)$ 满足 $a_i>a_j$ 且 $a_j using namespace std; const int N=1e5+5; int n,m,a[N],f[N],g[N],c[N]; ......
题解 930C 930 CF

题解 CF1265E

期望 DP。 定义 $f_i$ 表示第 $i$ 个镜子照成功的期望天数,$p_i$ 为第 $i$ 天成功的概率,$q_i$ 为第 $i$ 天失败的概率。 根据题意容易列出方程: $$f_i=(f_{i-1}+1)\cdot p_i+(f_{i-1}+1+f_i)\cdot q_i$$ 移项得: $$ ......
题解 1265E 1265 CF

题解 CF156C

容易发现,如果把字母表映射到 $[1,26]$ 上,那么无论怎么操作总和都不变。 于是可已将问题转化为:有多少种长度为 $n$ 的序列,满足每个元素在 $[1,26]$ 之间,总和为 $sum$。 定义 $f_{i,j}$ 表示处理到第 $i$ 个元素,总和为 $j$ 的合法方案数。 转移方程为 $ ......
题解 156C 156 CF

题解 CF1202C

不错的题,需要点思维和码力。 容易发现,左右和上下互不影响,可以分开处理,这里以左右举例。 定义向左走一格 $-1$,向右走一格 $+1$,求个前缀和找到最大值和最小值,和出现最值的最早时间与最晚时间。定义为 $l,r,l2,r2$。 只有当我们放了一个 A 或 D 使得所有最大值 $-1$ 且最小 ......
题解 1202C 1202 CF

题解 P6772 [NOI2020] 美食家

观察数据范围,$T$ 很大,$n$ 很小,用矩乘。 对于一条边 $(u,v,w)$,我们将 $u$ 拆成 $w-1$ 个点,并连接 $(u_0,u_1,0),(u_1,u_2,0)...(u_{w-2},u_{w-1},0)$ 和 $(u_{w-1},v_0,c_{v})$,总点数 $5n$。 将美 ......
美食家 题解 美食 P6772 6772

题解 CF1338B

小清新思维题。 先找一个不是叶子的节点,令它为根。 那么当且仅当,对于每一个非叶子节点,它包含的叶子节点到它的异或路径相等时,才满足题目要求。 考虑第一问,显然如果每个叶子的深度奇偶性相同,可以全填一样的数字,答案为 $1$。反之为 $3$(可以在一条链上试一试)。 对于第二问,定义 $f_i$ 表 ......
题解 1338B 1338 CF

题解 CF799D

有趣的 BFS 题。 首先发现,一个数最多乘 $2^{17}$ 次后超过上限,所以我们可以考虑 BFS。 将 $a$ 数组元素从大到小排序,定义 $(x,y,t)$ 表示当前长为 $x$,宽为 $y$,操作了 $t$ 次。每次操作将两个数中没超过上限的乘上 $a_i$。 由于可以旋转 $90\deg ......
题解 799D 799 CF

题解 CF1313D

带有小 trick 的 DP,长知识了。 $m$ 很大,需要离散化。 为了方便,采用扫描线的方式,不对其进行实际意义上的离散,而是对于第 $i$ 个区间 $[l,r]$,插入 $(l,i),(r+1,-i)$ 两个 pair,最后排个序。这样相邻两个 pair 之间的部分就缩成了一个点。 同时我们还 ......
题解 1313D 1313 CF