01 2020 档案
摘要:题意 似乎边界上(折线上、正方形纸片边上)的点认为是$0$。 由于操作次数很少,因此逆着操作,求出所有可能的点,之后正向模拟一遍判断即可。 求一个点关于一个向量的对称点:用向量旋转求出方向向量即可。 code: #include<bits/stdc++.h> using namespace std;
阅读全文
摘要:"题意" 考虑二分答案,我们只需要判断是否存在$(a,b)$,对于任意$i\in[1,mid]$满足$ax_i^2+bx_i\in[y_{1i},y_{2i}]$。 展开可得: $\frac{y_{1i}}{x_i}\leqslant ax_i+b\leqslant\frac{y_{2i}}{x_i
阅读全文
摘要:"题意" 两个亲戚间的范围的分界线必定为两者连线的中垂线,因此我们用半平面交$O(n^2\log n)$求出每个人的范围,之后相邻的两个范围连边跑最短路即可。 注意特判$n=0$的情况。 code:
阅读全文
摘要:"题意" 这题显然是暴推式子。 考虑下图: $S_{ABP} using namespace std; const int maxn=1e5+10; const double eps=1e 10; const double inf=1e12; int n,m; double sum,ans; str
阅读全文
摘要:"题意" 先求出半平面交,建造塔的地方不是拐点就是半平面交点的横坐标。 code:
阅读全文
摘要:"题意" 考虑矩形必定满足一条边和凸包重合(意会),于是我们枚举凸包的每一条边,考虑维护据该条边的最远点$p$、最左点$l$、最右点$r$,这三个都可以旋转卡壳。 首先最远点是经典的求凸包直径问题,我们移动时比较当前和下一个三角形的大小即可。 之后考虑最左点和最右点,我们用点积求出投影长度来比较就好
阅读全文
摘要:"题意" 简单说一下做法,并不知道怎么证明: 假设当前求出了$[1,i 1]$的最小覆盖圆,现在考虑$[1,i]$的最小覆盖圆: 如果$i$在当前圆中就不必改动。 不然$i$必定在圆上,我们令圆心为$i$,半径为$0$。 现在固定了一个点,我们枚举$j\in[1,i 1]$,如果$j$不在当前圆中,
阅读全文
摘要:"题意" 因为$a+b+c=1$,因此只要知道$a,b$,就可以知道$c$。也就是说只用$a,b$即可表示出一种材料/合金,我们将每种材料/合金表示为坐标系上的 一种材料$a$能表示出的合金为$a$。 两种材料$a,b$能表示出的合金为线段$ab$上的所有点。 三种材料$a,b,c$能表示出的合金为
阅读全文
摘要:"题意" 考虑算出每个圆能露出的部分,我们可以枚举它之后的圆,算出它被覆盖多少。 我们可以通过极角序将周长变为$[0,2\pi]$的区间,这样问题就变为了给出一些区间,问$[0,2\pi]$被这些去区间覆盖后还剩多少。 计算圆$b$覆盖圆$a$: 先判断是否存在包含和相离的情况。 我们求出$t1=\
阅读全文
摘要:"题意" 区间DP,确实很难想到 f[i][j][0/1]表示形成完美序列的[i,j],最近一次的数是插在i/j的方案数 $f[i][j][0]$: 如果上一个数插在队首,必定满足$a[i]a[i]$ $f[i][j][1]+=f[i][j 1][0]$ 如果上一个数插在队尾,必定满足$a[j] a
阅读全文
摘要:"题意" 考虑二分答案$mid$,之后将所有向量向内缩$mid$距离,之后判断半平面是否存在即可。 code:
阅读全文
摘要:"题意" 显然选的四个点是在凸包上的,我们先求出凸包。 考虑枚举对角线$(i,j)$,发现当$i$固定,$j$沿逆时针旋转时对角线两端的那两个点时单调的,因此用旋转卡壳维护即可。 code:
阅读全文
摘要:"题意" 求是否存在⼀条直线,使得所有线段在其上面的投影有至少⼀个 ⼀个交点。 假如存在交点,那么从这个交点做垂线,该垂线过所有线段,因此我们需要判断是否存在一条直线过所有线段,这种直线中必定有一条两端点都是给出的线段的端点,$O(n^2)$枚举判断即可。 code:
阅读全文
摘要:"题意" 旋转卡壳。 先找第一个凸包上纵坐标最小的点$p$和第二个凸包上纵坐标最大的点$q$,之后旋转卡壳,求两条线段之间的最短距离。 code:
阅读全文
摘要:"题意" 先不考虑没有$d$的限制,此时每场比赛只有两种选择,这是一个典型的$2 SAT$模型。 发现$d$很小,自然想到枚举每个$x$用哪种车,但是$3^dm$显然是过不了的。于是我们枚举这个$x$不能用那种车,此时我们只需要枚举两个即可,因为此时三种车$ABC$都被放到$x$上判断过了。 cod
阅读全文
摘要:"题意" "这道题" 的弱化版。 code:
阅读全文
摘要:"题意" 这是极角序维护凸包。 找一个点作为基准点,我选的是$p1$和$p_2,p_3$的中点的中点。 用$set$维护凸包,内部按照极角排序。 插入一个点: 如果之前存在就不插入。 不然就找到它的前驱$pre$和后继$nxt$,之后不断弹掉两边的点,中途维护下面积即可。 code:
阅读全文
摘要:"题意" 显然极角序是能$A$的,然而我非要用水平序。 code:
阅读全文
摘要:"题意" 通过观察发现答案为一个整圆+所有除去圆弧的四个顶点形成的凸包的周长,于是直接套模板就好了。 code:
阅读全文
摘要:"题意" 参考 "这篇博客" 。 看到区间问题首先考虑线段树,之后考虑如何合并区间: 比如我们现在求出了区间$[l,mid]$和区间$[mid+1,r]$的答案,现在我们要求出$[l,r]$的答案,我们需要使$[mid+1,r]$的答案中每个斐波那契系数的下标加上$mid l+1$,这个看似无法处理
阅读全文
摘要:"题意" 考虑一个$O(n^2)$暴力: 从每个$B$类串向以它为前缀的$A$类串连边,从每个$A$类串向它支配的$B$类串连边,每个$A$类串的点权为$A$串的长度,$B$类串的点权为$0$。 之后先判断这是不是个$DAG$,如果不是就输出$ 1$,不然就找最长链即可。 之后考虑怎么优化建图: 我
阅读全文
摘要:"题意" 显然答案是可以二分的,我们二分一个$mid$,$check$只需要将所有价值大于等于$mid$的按照价格从小到大排序,从头开始取,一直取到满足条件即可。 对于$m$组询问,我们考虑整体二分。 假设当前二分的是$mid$,我们用一颗线段树维护所有美味值大于等于$mid$的果汁的信息。 线段树
阅读全文
摘要:"题意" 考虑$n=1$的情况,我们由裴蜀定理可知,$k a_1\%P$能表示$\gcd(a_1,P)$的所有倍数。 扩展到多个数也是同理(不会证): $(k_1a_1+k_2a_2+...+k_na_n)\%P$能表示出$\gcd(a_1,a_2,...,a_n)$的所有倍数。 于是令$v_i=\
阅读全文
摘要:"题意" 考虑二项式反演。 设$f_i$表示交集至少为$i$的方案数,有$f_i=C_n^i (2^{2^{n i}} 1)$。 先选$i$必须包含,有$C_n^i$种选法。 包含选出的$i$个元素的集合个数为$2^{n i}$,每个集合都可以选或不选,但是不能一个也不选,所以方案数为$(2^{2^
阅读全文
摘要:"题意" 设$a_i$表示第$i$个糖果的能量,$b_i$表示第$i$个药片的能量 首先可以得出满足条件时,$a b$的对数为$\frac{n+k}{2}$。 因为恰好为$i$的方案数不好求,我们先求出至少为$i$的方案数,之后用二项式反演求出答案。 先将$a,b$从小到大排序。 设$h_{i,j}
阅读全文
摘要:"题意" 暴力显然是考虑n次多重背包。 考虑假如没有$d_i$的限制,那么这实际上就是一个普通的完全背包预处理,最后$O(1)$输出。 现在假设只有$c_1$这种硬币有限制,那么实际上我们只需要输出$f_m f_{m (d_1+1) c_1}$就好了。因为既然$c_1$这种货币使用超过了限制,那么它
阅读全文
摘要:"题意" 注意到询问串的长度$k$是给定的,同时$\sum\limits len_w=kq\leqslant10^5$,我们发现$k,q$之间一个大了另一个必定会小,因此我们对$k$分类讨论: 首先肯定要对$s$建一个后缀自动机,对每个点维护$endpos$集合的大小。 $k\geqslant\sq
阅读全文
摘要:"题意" 见到棋盘首先想黑白染色,之后对这个二分图跑一个最大匹配。 假如一个棋子放在了一个非匹配点上,那么先手必败,因为后手每次都有匹配边可以走。 于是我们要求有多少个点可能不在一个最大匹配中: 考虑一个非匹配点$x$,假如它连向了一个匹配点$y$,那么它就能替换掉当前当前和这个匹配点匹配的点$z$
阅读全文
摘要:"题意" 先将所所有条件按照高度从小到大排序,其中我们将隔板也看成条件。 现在我们将$n$个格子看成$n$个连通块,之后从$1$开始扫描,并维护每个联通块如下信息: $nowans$表示当前连通块最多能满足几个条件。 $sum$表示该连通块如果涨到当前水位,这个联通块的答案是多少。 对于每种条件$(
阅读全文
摘要:"题意" 真的想不到是$FFT$的题,用了一个晚上基本弄懂了。 首先我们要解决的是用一个小矩形在一个大矩形上匹配的问题,如果是一维的就是 "这道题" 。 现在是二维的,我们将每一行拆出来,按照第$1$行、第$2$行、...、第$n$行的顺序拼接在一起,拼出一个长为$n m$的串,考虑在这上面解决问题
阅读全文
摘要:"题意" 先考虑没有残缺位置的情况: 先将两个字符匹配形式化: 定义$C(x,y)=(A_x B_y)^2$。 如果有匹配函数$P(x)=\sum\limits_{i=0}^{m 1}C(i,x m+i+1)=0$,那么$B$从$x$开始向后$m$个字符和$A$匹配。 之后将$A$翻转,得到$A'_
阅读全文
摘要:"题意" 假设翻转了$d$距离。 $ans=\sum\limits_{i=1}^{n}(x_i+d y_i)$ $=\sum\limits_{i=1}^n(x_i+d)^2 2\sum\limits_{i=1}^n(x_i+d)y_i+\sum\limits_{i=1}^ny_i^2$ $=\sum
阅读全文
摘要:"题意" 首先考虑暴力DP怎么做: 设$f_{i,j}$表示选了$i$个数,乘积为$j$的方案数。 $f_{i,j}=\sum\limits_{a b\%m= j}f_{i 1,a} f_{1,b}$ 这是$O(nm^2)$的,我们考虑优化: 1.首先注意到$n$很大,于是考虑倍增地转移: $f_{
阅读全文
摘要:"题意" 设$f_i$表示$i$个点的无向连通图个数,$g_i$表示$i$个点的无向图个数。 枚举$1$所在连通块的大小,有: $g_i=\sum\limits_{j=1}^iC_{i 1}^{j 1}f_jg_{i j}$ 化简得: $g_i=\sum\limits_{j=1}^i\frac{(i
阅读全文
摘要:"题意" 首先考虑$O(n^2)$怎么做: 经典做法是设$f_i$表示$i$个点的无向连通图个数,$g_i$表示$i$个点的无向图个数。 显然有:$g_i=2^{C_n^2}$,即考虑$C_n^2$条边中每条边存不存在。 容斥一下,枚举$1$号节点所在连通块大小,乘个组合数表示选些点和$1$在同一连
阅读全文
摘要:"题意" 首先化简式子: $E_j=\frac{F_j}{q_j}$ $=\frac{\sum\limits_{i=1}^{j 1}\frac{q_i q_j}{(i j)^2} \sum\limits_{i=j+1}^{n}\frac{q_i q_j}{(i j)^2}}{q_j}$ $=\sum
阅读全文
摘要:"题意" 我自闭了,连蓝题都不会了,还得看题解。 以下是我理解的官方做法,献给给广大没看懂官方题解的神仙们。作者蒟蒻,如果有什么不对的地方请指出。 观察题目的限制,发现$q$是一个$p^z$的形式,因此我们可以考虑每个质数$p$。 对于每个质数$p$,我们求出一个$0 1$串$state_i$,其中
阅读全文
摘要:一、处理的问题 给出多项式$g[0...n]$,求出$f[0...n]$满足$f_i=\sum\limits_{j=1}^if_{i j}g_j$,边界$f_0=1$。 我们发现这是个卷积的形式,但是不能直接$FFT$,因为我们并不知道$f_{i j}$,于是考虑分治。 按照CDQ分治的方法,对于当
阅读全文

浙公网安备 33010602011771号