01 2020 档案

摘要:题意 似乎边界上(折线上、正方形纸片边上)的点认为是0。 由于操作次数很少,因此逆着操作,求出所有可能的点,之后正向模拟一遍判断即可。 求一个点关于一个向量的对称点:用向量旋转求出方向向量即可。 code: #include<bits/stdc++.h> using namespace std; 阅读全文
posted @ 2020-01-31 10:22 nofind 阅读(118) 评论(0) 推荐(0) 编辑
摘要:"题意" 考虑二分答案,我们只需要判断是否存在(a,b),对于任意i[1,mid]满足axi2+bxi[y1i,y2i]。 展开可得: $\frac{y_{1i}}{x_i}\leqslant ax_i+b\leqslant\frac{y_{2i}}{x_i 阅读全文
posted @ 2020-01-31 10:21 nofind 阅读(124) 评论(0) 推荐(0) 编辑
摘要:"题意" 两个亲戚间的范围的分界线必定为两者连线的中垂线,因此我们用半平面交O(n2logn)求出每个人的范围,之后相邻的两个范围连边跑最短路即可。 注意特判n=0的情况。 code: 阅读全文
posted @ 2020-01-31 10:18 nofind 阅读(163) 评论(0) 推荐(0) 编辑
摘要:"题意" 这题显然是暴推式子。 考虑下图: $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 阅读全文
posted @ 2020-01-31 10:07 nofind 阅读(137) 评论(0) 推荐(0) 编辑
摘要:"题意" 先求出半平面交,建造塔的地方不是拐点就是半平面交点的横坐标。 code: 阅读全文
posted @ 2020-01-19 10:06 nofind 阅读(83) 评论(0) 推荐(0) 编辑
摘要:"题意" 考虑矩形必定满足一条边和凸包重合(意会),于是我们枚举凸包的每一条边,考虑维护据该条边的最远点p、最左点l、最右点r,这三个都可以旋转卡壳。 首先最远点是经典的求凸包直径问题,我们移动时比较当前和下一个三角形的大小即可。 之后考虑最左点和最右点,我们用点积求出投影长度来比较就好 阅读全文
posted @ 2020-01-19 09:58 nofind 阅读(177) 评论(0) 推荐(0) 编辑
摘要:"题意" 简单说一下做法,并不知道怎么证明: 假设当前求出了[1,i1]的最小覆盖圆,现在考虑[1,i]的最小覆盖圆: 如果i在当前圆中就不必改动。 不然i必定在圆上,我们令圆心为i,半径为0。 现在固定了一个点,我们枚举j[1,i1],如果j不在当前圆中, 阅读全文
posted @ 2020-01-19 09:56 nofind 阅读(107) 评论(0) 推荐(0) 编辑
摘要:"题意" 因为a+b+c=1,因此只要知道a,b,就可以知道c。也就是说只用a,b即可表示出一种材料/合金,我们将每种材料/合金表示为坐标系上的 一种材料a能表示出的合金为a。 两种材料a,b能表示出的合金为线段ab上的所有点。 三种材料a,b,c能表示出的合金为 阅读全文
posted @ 2020-01-19 09:55 nofind 阅读(131) 评论(0) 推荐(0) 编辑
摘要:"题意" 考虑算出每个圆能露出的部分,我们可以枚举它之后的圆,算出它被覆盖多少。 我们可以通过极角序将周长变为[0,2π]的区间,这样问题就变为了给出一些区间,问[0,2π]被这些去区间覆盖后还剩多少。 计算圆b覆盖圆a: 先判断是否存在包含和相离的情况。 我们求出$t1=\ 阅读全文
posted @ 2020-01-19 09:53 nofind 阅读(156) 评论(0) 推荐(0) 编辑
摘要:"题意" 区间DP,确实很难想到 f[i][j][0/1]表示形成完美序列的[i,j],最近一次的数是插在i/j的方案数 f[i][j][0]: 如果上一个数插在队首,必定满足a[i]a[i] f[i][j][1]+=f[i][j1][0] 如果上一个数插在队尾,必定满足$a[j] a 阅读全文
posted @ 2020-01-19 09:48 nofind 阅读(102) 评论(0) 推荐(0) 编辑
摘要:"题意" 考虑二分答案mid,之后将所有向量向内缩mid距离,之后判断半平面是否存在即可。 code: 阅读全文
posted @ 2020-01-17 10:11 nofind 阅读(149) 评论(0) 推荐(0) 编辑
摘要:"题意" 显然选的四个点是在凸包上的,我们先求出凸包。 考虑枚举对角线(i,j),发现当i固定,j沿逆时针旋转时对角线两端的那两个点时单调的,因此用旋转卡壳维护即可。 code: 阅读全文
posted @ 2020-01-17 08:59 nofind 阅读(174) 评论(0) 推荐(0) 编辑
摘要:"题意" 求是否存在⼀条直线,使得所有线段在其上面的投影有至少⼀个 ⼀个交点。 假如存在交点,那么从这个交点做垂线,该垂线过所有线段,因此我们需要判断是否存在一条直线过所有线段,这种直线中必定有一条两端点都是给出的线段的端点,O(n2)枚举判断即可。 code: 阅读全文
posted @ 2020-01-17 08:58 nofind 阅读(95) 评论(0) 推荐(0) 编辑
摘要:"题意" 旋转卡壳。 先找第一个凸包上纵坐标最小的点p和第二个凸包上纵坐标最大的点q,之后旋转卡壳,求两条线段之间的最短距离。 code: 阅读全文
posted @ 2020-01-17 08:56 nofind 阅读(127) 评论(0) 推荐(0) 编辑
摘要:"题意" 先不考虑没有d的限制,此时每场比赛只有两种选择,这是一个典型的2SAT模型。 发现d很小,自然想到枚举每个x用哪种车,但是3dm显然是过不了的。于是我们枚举这个x不能用那种车,此时我们只需要枚举两个即可,因为此时三种车ABC都被放到x上判断过了。 cod 阅读全文
posted @ 2020-01-17 08:54 nofind 阅读(142) 评论(0) 推荐(0) 编辑
摘要:"题意" "这道题" 的弱化版。 code: 阅读全文
posted @ 2020-01-09 19:02 nofind 阅读(97) 评论(0) 推荐(0) 编辑
摘要:"题意" 这是极角序维护凸包。 找一个点作为基准点,我选的是p1p2,p3的中点的中点。 用set维护凸包,内部按照极角排序。 插入一个点: 如果之前存在就不插入。 不然就找到它的前驱pre和后继nxt,之后不断弹掉两边的点,中途维护下面积即可。 code: 阅读全文
posted @ 2020-01-09 17:13 nofind 阅读(149) 评论(0) 推荐(0) 编辑
摘要:"题意" 显然极角序是能A的,然而我非要用水平序。 code: 阅读全文
posted @ 2020-01-09 17:10 nofind 阅读(156) 评论(0) 推荐(0) 编辑
摘要:"题意" 通过观察发现答案为一个整圆+所有除去圆弧的四个顶点形成的凸包的周长,于是直接套模板就好了。 code: 阅读全文
posted @ 2020-01-09 09:02 nofind 阅读(133) 评论(0) 推荐(0) 编辑
摘要:"题意" 参考 "这篇博客" 。 看到区间问题首先考虑线段树,之后考虑如何合并区间: 比如我们现在求出了区间[l,mid]和区间[mid+1,r]的答案,现在我们要求出[l,r]的答案,我们需要使[mid+1,r]的答案中每个斐波那契系数的下标加上midl+1,这个看似无法处理 阅读全文
posted @ 2020-01-07 08:53 nofind 阅读(220) 评论(0) 推荐(0) 编辑
摘要:"题意" 考虑一个O(n2)暴力: 从每个B类串向以它为前缀的A类串连边,从每个A类串向它支配的B类串连边,每个A类串的点权为A串的长度,B类串的点权为0。 之后先判断这是不是个DAG,如果不是就输出1,不然就找最长链即可。 之后考虑怎么优化建图: 我 阅读全文
posted @ 2020-01-06 20:24 nofind 阅读(162) 评论(0) 推荐(0) 编辑
摘要:"题意" 显然答案是可以二分的,我们二分一个midcheck只需要将所有价值大于等于mid的按照价格从小到大排序,从头开始取,一直取到满足条件即可。 对于m组询问,我们考虑整体二分。 假设当前二分的是mid,我们用一颗线段树维护所有美味值大于等于mid的果汁的信息。 线段树 阅读全文
posted @ 2020-01-06 16:01 nofind 阅读(135) 评论(0) 推荐(0) 编辑
摘要:"题意" 考虑n=1的情况,我们由裴蜀定理可知,ka1%P能表示gcd(a1,P)的所有倍数。 扩展到多个数也是同理(不会证): (k1a1+k2a2+...+knan)%P能表示出gcd(a1,a2,...,an)的所有倍数。 于是令$v_i=\ 阅读全文
posted @ 2020-01-06 09:31 nofind 阅读(369) 评论(0) 推荐(0) 编辑
摘要:"题意" 考虑二项式反演。 设fi表示交集至少为i的方案数,有fi=Cni(22ni1)。 先选i必须包含,有Cni种选法。 包含选出的i个元素的集合个数为2ni,每个集合都可以选或不选,但是不能一个也不选,所以方案数为$(2^{2^ 阅读全文
posted @ 2020-01-05 19:46 nofind 阅读(175) 评论(0) 推荐(0) 编辑
摘要:"题意" 设ai表示第i个糖果的能量,bi表示第i个药片的能量 首先可以得出满足条件时,ab的对数为n+k2。 因为恰好为i的方案数不好求,我们先求出至少为i的方案数,之后用二项式反演求出答案。 先将a,b从小到大排序。 设$h_{i,j} 阅读全文
posted @ 2020-01-05 19:21 nofind 阅读(146) 评论(0) 推荐(0) 编辑
摘要:"题意" 暴力显然是考虑n次多重背包。 考虑假如没有di的限制,那么这实际上就是一个普通的完全背包预处理,最后O(1)输出。 现在假设只有c1这种硬币有限制,那么实际上我们只需要输出fmfm(d1+1)c1就好了。因为既然c1这种货币使用超过了限制,那么它 阅读全文
posted @ 2020-01-05 15:10 nofind 阅读(150) 评论(0) 推荐(0) 编辑
摘要:三道原题,直接放链接吧: "T1" "T2" "T3" 阅读全文
posted @ 2020-01-04 18:22 nofind 阅读(87) 评论(0) 推荐(0) 编辑
摘要:"题意" 注意到询问串的长度k是给定的,同时lenw=kq105,我们发现k,q之间一个大了另一个必定会小,因此我们对k分类讨论: 首先肯定要对s建一个后缀自动机,对每个点维护endpos集合的大小。 $k\geqslant\sq 阅读全文
posted @ 2020-01-04 17:21 nofind 阅读(218) 评论(0) 推荐(0) 编辑
摘要:"题意" 见到棋盘首先想黑白染色,之后对这个二分图跑一个最大匹配。 假如一个棋子放在了一个非匹配点上,那么先手必败,因为后手每次都有匹配边可以走。 于是我们要求有多少个点可能不在一个最大匹配中: 考虑一个非匹配点x,假如它连向了一个匹配点y,那么它就能替换掉当前当前和这个匹配点匹配的点z 阅读全文
posted @ 2020-01-04 17:20 nofind 阅读(275) 评论(0) 推荐(0) 编辑
摘要:"题意" 先将所所有条件按照高度从小到大排序,其中我们将隔板也看成条件。 现在我们将n个格子看成n个连通块,之后从1开始扫描,并维护每个联通块如下信息: nowans表示当前连通块最多能满足几个条件。 sum表示该连通块如果涨到当前水位,这个联通块的答案是多少。 对于每种条件$( 阅读全文
posted @ 2020-01-04 17:18 nofind 阅读(220) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-01-04 01:20 nofind 阅读(9) 评论(0) 推荐(0) 编辑
摘要:"题意" 真的想不到是FFT的题,用了一个晚上基本弄懂了。 首先我们要解决的是用一个小矩形在一个大矩形上匹配的问题,如果是一维的就是 "这道题" 。 现在是二维的,我们将每一行拆出来,按照第1行、第2行、...、第n行的顺序拼接在一起,拼出一个长为nm的串,考虑在这上面解决问题 阅读全文
posted @ 2020-01-04 00:53 nofind 阅读(166) 评论(0) 推荐(0) 编辑
摘要:"题意" 先考虑没有残缺位置的情况: 先将两个字符匹配形式化: 定义C(x,y)=(AxBy)2。 如果有匹配函数P(x)=i=0m1C(i,xm+i+1)=0,那么Bx开始向后m个字符和A匹配。 之后将A翻转,得到$A'_ 阅读全文
posted @ 2020-01-03 19:59 nofind 阅读(190) 评论(0) 推荐(0) 编辑
摘要:"题意" 假设翻转了d距离。 ans=i=1n(xi+dyi) =i=1n(xi+d)22i=1n(xi+d)yi+i=1nyi2 $=\sum 阅读全文
posted @ 2020-01-03 10:51 nofind 阅读(109) 评论(0) 推荐(0) 编辑
摘要:"题意" 首先考虑暴力DP怎么做: 设fi,j表示选了i个数,乘积为j的方案数。 fi,j=ab%m=jfi1,af1,b 这是O(nm2)的,我们考虑优化: 1.首先注意到n很大,于是考虑倍增地转移: $f_{ 阅读全文
posted @ 2020-01-03 01:04 nofind 阅读(150) 评论(0) 推荐(0) 编辑
摘要:"题意" 设fi表示i个点的无向连通图个数,gi表示i个点的无向图个数。 枚举1所在连通块的大小,有: gi=j=1iCi1j1fjgij 化简得: $g_i=\sum\limits_{j=1}^i\frac{(i 阅读全文
posted @ 2020-01-02 18:38 nofind 阅读(154) 评论(0) 推荐(0) 编辑
摘要:"题意" 首先考虑O(n2)怎么做: 经典做法是设fi表示i个点的无向连通图个数,gi表示i个点的无向图个数。 显然有:gi=2Cn2,即考虑Cn2条边中每条边存不存在。 容斥一下,枚举1号节点所在连通块大小,乘个组合数表示选些点和1在同一连 阅读全文
posted @ 2020-01-02 18:36 nofind 阅读(125) 评论(0) 推荐(0) 编辑
摘要:"题意" 首先化简式子: Ej=Fjqj =i=1j1qiqj(ij)2i=j+1nqiqj(ij)2qj $=\sum 阅读全文
posted @ 2020-01-02 15:30 nofind 阅读(102) 评论(0) 推荐(0) 编辑
摘要:"题意" 我自闭了,连蓝题都不会了,还得看题解。 以下是我理解的官方做法,献给给广大没看懂官方题解的神仙们。作者蒟蒻,如果有什么不对的地方请指出。 观察题目的限制,发现q是一个pz的形式,因此我们可以考虑每个质数p。 对于每个质数p,我们求出一个01statei,其中 阅读全文
posted @ 2020-01-01 22:48 nofind 阅读(1259) 评论(0) 推荐(0) 编辑
摘要:一、处理的问题 给出多项式g[0...n],求出f[0...n]满足fi=j=1ifijgj,边界f0=1。 我们发现这是个卷积的形式,但是不能直接FFT,因为我们并不知道fij,于是考虑分治。 按照CDQ分治的方法,对于当 阅读全文
posted @ 2020-01-01 17:14 nofind 阅读(169) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示