Blog E

路漫漫其修远兮,吾将上下而求索。

四边形不等式优化学习笔记

学会,但没完全学会

参考 肖然的博客 四边形不等式 原形式 有一个双变量函数 $f(x,y)$,如果对于 $\forall a\le b\le c\le d$,都满足 $f(a,d)+f(b,c)\ge f(a,c)+f(b,d)$ 则称其满足 四边形不等式。 等价形式 对于 $\forall a<b$,都有 $f(a,b+1)+f(a+1,b)\ge f(a,b)+f(a+1,b+1)$。 这一形式的必要性显然,下证其充分性: 若 $a+1<b$ 则: \[\begin{aligned} f(a,b+1)+f(a+1,b)&\ge f(a,b)+f(a+...

斯特林数学习笔记

怎么感觉组合数用 C 几几更方便写

第一类斯特林数 几何意义 把 n 各不同的数放进为 k 个环的方案数,用 $\begin{bmatrix}n\cr k\end{bmatrix}$ 表示。 代数意义 \[\begin{aligned} x^{\overline{n}}&=\sum_{i=1}^n \begin{bmatrix}n\cr i\end{bmatrix}x^i\cr x^{\underline{n}}&=\sum_{i=1}^n (-1)^{n-i}\begin{bmatrix}n\cr i\end{bmatrix}x^i \end{aligned}\] 计算方式 $O(nk)$ 递推:...

斜率优化学习笔记

顺便学了个李超树

问题形式 用来优化一类 dp,其转移方程满足: \[dp_i=f_i(\max_{j<i}(k_j\times x_i+b_j))\] (式子中取 min 也可,与 max 类似,不再赘述) 其中 $k_j,b_j$ 是只与 j 相关的数,$x_i$ 是只与 i 相关的数,$f_i$ 是只与 i 有关的函数。 斜率优化就是优化的求 $\max_{j<i}(k_j\times x_i+b_j)$ 的过程。

【题解】寿司晚宴

最优解!

upd 2021.6.18: 修改公式符号,更加形式化,添加 50 分做法 介绍一种 $O(n \times 3^8)$ 的做法,目前是所有非打表代码中的最优解,其实只是把其他题解中的算法优化了一下。 定义 $fac_i$ 表示 i 的质因数集合 $P=\{x\mid x\ \text{is prime},\ x\le n\}$ 暴力 1 这题的暴力有很多种,在此只介绍可以优化成正解的暴力。 两个数互质,等效于他们没有共同的质因子,所以只需把每个数都分解质质因数,如下 dp: 状态:$dp(s1,s2)$ 表示考虑前 i 个数(i 被滚动掉了),小...

PKUSC游记

海星

Day 0 坐火车到余姚,晚上到余姚宾馆,颓了一会,复习了下教练说往年都考了的ntt和线段树合并,又打了一遍网络流和sa(然而都没用上),就睡觉了。 Day 1 到考场试机发现是windows系统,好在提供gvim安装包,不过由于我平时都用的是neovim,对gvim的配置不太熟,只好又现查了查,改了下之前背的vimrc。 第一题,发现每个矩阵只和它前一个矩阵每行每列的和有关,于是就推了下这个东西的递推方法,矩阵快速幂搞定因为交错题又wa又re的调了一个小时。 第二题,先写了个暴力,发现整体修改的部分分相当是把询问的l,r移一下,于是写了个st表,把询问离线之后从后往前,在单调...

一种很优雅的高斯消元写法

类似线性基

rt,自己胡出来的算法。用类似线性基的写法写,代码简短,常数小,并且对无解和无穷解的判断都很简单。 以下为毒瘤题 P2455 线性方程组 代码(之前用正常写法怎么都过不了,面向数据才过的。。): #include<bits/stdc++.h> using namespace std; const int MXN=105; const double eps=1e-8; int n; bool used[MXN]; double arr[MXN][MXN],tmp[MXN]; inline bool is0(double x){return fabs(x)<=eps;}...

USACO 2021 US Open 铂金组 T1 题解

想了挺久

United Cows of Farmer John 题意: 给定一个长度为 n 的数列 $a_i$,求符合下列条件的三元组 ${i,j,k}$ 个数: $1\le i < j < k \le n$ $a_i,a_j,a_k$ 的值在 $a_{[i,k]}$ 各只出现一次(即他们自己)。 思路: 为了方便描述,我们称 $a_i$ 为 i 点的颜色,记 $pre_i$ 表示 $a_i$ 的前驱(即 i 之前与 $a_i$ 相同的最后一个数),记集合 $last$ 表示右端点扫描到 r 时,每个颜色最后一次出现的位置。 朴素想法 考虑固定右端点 r,然后枚举左...

USACO 2021 US Open 金组题解

终于 AK 了!

T1 United Cows of Farmer John 思路 这题比较水,记 $pre_i$ 为 i 号奶牛的前驱(即 i 前面最靠后的与 i 号奶牛颜色相同的奶牛)。 令这两个奶牛领导中,在序列中靠后的那个为 i,考虑靠前的奶牛领导有几种可能,不难发现其个数为 $[pre_i+1,i-1]$ 这段区间内奶牛的种类数。于是直接上树状数组,用代表元法(将每种种类的最后出现位置加一)即可求出答案。复杂度 $O(n\log n)$ 代码 #include<bits/stdc++.h> using namespace std; #define fi first #def...

【题解】P3747 相逢是问候

麻烦得很

题意 定义函数 $f(x)=c^x$ 维护给定序列 $a_i$,支持两种操作(p,c 由输入给定): 将数列第 l 到 r 项中的每一项 $a_i$,赋值为 $f(a_i)$ 查询 $\sum_{i=l}^{i\leq r}a_i\ \pmod p$

【题解】洛谷二月月赛div2

25%的时间获得了自己100%的得分

这次月赛感觉考的海星,估计是 WC 爆炸时失去的 RP 又回来了吧。前一个小时多点把 abc 都切了,后面都没骗到分( T1 『MdOI R4』Fun 傻子题,直接模拟即可。 ll n,m,k; ll arr[MXN]; inline void solve(){ //codes cin>>n>>m>>k; for(int i=1;i<=n;i++) cin>>arr[i]; ll cnt=0; for(int i=1;i<=n;i++){ ll tmp; cin>>tmp; cnt+=tm...

icon