数学
文章平均质量分 74
L_0_Forever_LF
一个热爱OI的OIer
展开
-
SBT学习笔记
学习资料1学习资料2SBT,Stern-Brocot Tree,大概是个能表示出所有最简有理分数的一棵树每一层的所有分数继承到下一层,并且对于相邻的mn,m′n′\dfrac{m}{n},\dfrac{m'}{n'}nm,n′m′,在下一层生成一个新的分数m+m′n+n′\dfrac{m+m'}{n+n'}n+n′m+m′插在他们中间根据归纳可以证明1.对于相邻的mn<m′n′\dfrac{m}{n}<\dfrac{m'}{n'}nm<n′m′,始终有m′n−mn′=1原创 2020-08-05 00:08:18 · 325 阅读 · 0 评论 -
BZOJ3872: [Poi2014]Ant colony
因为下取整可以合并,即a/b/c=a/bc,且我们只关心经过某一条边< s,t>的蚂蚁,将树以< s,t>为界砍成两棵树,分别以s,t为根,那么我们只关心这两棵树的叶子到根上方时,有多少个k 对于子树中的叶子i,他走到根上方的分母f[i]已经确定,可以做个简单的dp求,这个叶子的贡献就是g[j]/f[i](下取整)=k的蚂蚁,即g[j]在[ k∗f[i],(k+1)∗f[i] )[\ k*f[i]原创 2017-12-03 16:38:40 · 451 阅读 · 0 评论 -
BZOJ3716: [PA2014]Muzeum
首先把给出的视线范围转成向量,建立以这两个向量为基底的平面直角坐标系,每个点得到新的坐标后取反横坐标,变成每个守卫可以看见横坐标比自己小,纵坐标比自己大的手办这个东西似乎对应一个最小割模型,加上所有手办的价值,源连守卫权为贿赂守卫的花费,守卫连他能看见的手办权为inf,手办连汇权为手办的代价,减去最小割因为图太大了,不能跑最小割 考虑到最小割=最大流,可以模型转化,每个守卫有花费这么多的流量,分配原创 2017-12-15 09:41:11 · 445 阅读 · 0 评论 -
BZOJ1128: [POI2008]Lam
因为互质有很多美妙方便的性质,所以推一下可以弄出答案的柿子 ansi=1ai∏nj=i+1aj−1ajansi=\frac{1}{ai}\prod_{j=i+1}^n\frac{aj-1}{aj} 于是这个分子分母会非常大…要写高精 因为要最简,需要资瓷一下高精和单精取gcd,因为有(a,b)=(a,bModa)(a,b)=(a,bModa ),写个高精模单精后直接gcd就行了 然后资瓷一下原创 2017-12-08 09:59:40 · 326 阅读 · 0 评论 -
BZOJ3850: ZCC Loves Codefires
考虑最优的顺序满足什么性质 设两个部件A,B顺序为A在B前面,费用分别是a,b,耗时ta,tb,中间部分费用和S,耗时和T 如果最优顺序中A在B前面(A,B前后的部件显然不需要考虑),则有 ata+Sta+b(ta+T+tb)<btb+Stb+a(tb+T+ta)at_a+St_a+b(t_a+T+t_b)<bt_b+St_b+a(t_b+T+t_a) 得Sta+bta+bT<Stb+a原创 2018-01-03 14:15:47 · 323 阅读 · 0 评论 -
BZOJ5118: Fib数列2
这个2比1简单吧..P−−√\sqrt P判一下发现模数是个质数因为有这个公式Fn=15√[(1+5√2)n−(1−5√2)n]Fn=\dfrac{1}{\sqrt5}[(\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n] 用二次剩余弄出在模这个质数下的5√\sqrt5,令A=1+5√2,B=1−5√2A=\frac{1+\sqrt5}{2},B=原创 2018-01-14 16:59:42 · 406 阅读 · 0 评论 -
BZOJ5104: Fib数列
首先我们有Fib数列第n项的通项 Fn=15√[(1+5√2)n−(1−5√2)n]=NFn=\dfrac{1}{\sqrt 5}[(\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n]=N 先推一波柿子 (1+5√2)n−(1−5√2)n=5√N=T(\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n=\sqrt5原创 2018-01-14 15:56:43 · 963 阅读 · 0 评论 -
二次剩余学习笔记
两篇比较好的blog,第二篇介绍了一些拓展的东西 http://blog.csdn.net/a_crazy_czy/article/details/51959546 http://blog.miskcoo.com/2014/08/quadratic-residue因为个人数学不好,学这东西很多东西感性的理解就过掉了qaq,这里的笔记并不严谨以下讨论的是模数P为奇素数的情况先定义一个原创 2018-01-13 16:24:26 · 2876 阅读 · 0 评论 -
BZOJ3857: Multiplication table
给了一个K进制的乘法表,给0~K一个映射,给出映射后的乘法表要求复原这个映射0和1是很容易知道对应哪个的 对于2~K-1(%dalao发现)有一个规律…,即x的那一行/列的乘积,首位数字有x种…. 然后就AC了… 小心PE..code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#inc原创 2018-01-09 17:06:02 · 291 阅读 · 0 评论 -
BZOJ3858: Number Transformation
这个结论不明显啊… 这种题还是打表找规律吧结论:如果当前的数是x,进行到第i次操作,若i>x√i>\sqrt x,则之后的每次操作x只会加一个不变的定值x/ix/i证明: 当i>x√i>\sqrt x时,设x=kix=ki,则i>x√,k<x√i>\sqrt x,k<\sqrt x,要使x变成(i+1)的倍数,有一个解是(i+1)k=x+k>x(i+1)k=x+k>x,我们要求新的值最小,但(i原创 2018-01-09 17:13:45 · 283 阅读 · 0 评论 -
BZOJ3859: Periodic Binary String
我们可以旋转串T,使得l~r等价于0~r-l 根据(r-l)%k可以将T分成T1,T2两部分,问题变成满足0<=a<2|T1|,0<=b<2|T2|0<=a<2^{|T1|},0<=b<2^{|T2|},pa+qb≡x(Mod p)pa+qb≡x (Mod\ p)的解数 也即0<=a<A,0<=b<B0<=a<A,0<=b<B 记A=k1p+ka,B=k2p+kbA=k1p+ka,B=k2p+原创 2018-01-10 22:11:58 · 402 阅读 · 0 评论 -
BZOJ1043: [HAOI2008]下落的圆盘
求红线总长可以用每个圆的周长减去被覆盖的部分 对每个圆i,枚举j>ij>ij>i计算圆j覆盖了圆i的长度 若i和j相离/相切或i包含j不考虑 若i被j包含就被完全覆盖 否则是相交的情况如图 圆A和圆B交与C,D,可以算出AE,CE的长度,用余弦定理可以算得cosCAE,用acos,atan2可以算得A被覆盖的一个弧度区间,把所有覆盖的区间求出来后就变成了一个区间覆盖问题...原创 2018-02-11 18:23:25 · 302 阅读 · 0 评论 -
BZOJ3738&BZOJ4535: [Ontak2013]Kapita加强版
求Cnn+m10kmod1e9Cn+mn10kmod1e9\dfrac{C_{n+m}^n}{10^k}\mod 1e9,这个k很好弄,然后上面那玩意mod 1e18………组合数取模感觉到比较大的数据范围就变成一个很毒瘤的东西了啊qaq丢发链接跑路…..这个题就是3.2里讲的那个分治(我总感觉就是个快速幂?)多项式的毒瘤东西 组合数求模我总感觉我写的和唐教写的不是一个东西= =,我的...原创 2018-03-13 11:53:31 · 364 阅读 · 0 评论 -
BZOJ2876: [Noi2012]骑行川藏
显然最优情况下体力耗费恰好为E,我们记f(v1,v2….vn)为在这n个速度下蛋蛋骑到n的耗时,phi(v1,v2…vn)为在这n个速度下蛋蛋骑到n耗费的体力,那么我们就是要在满足phi=E的情况下求f这个函数的最优解,这个东西可以用拉格朗日乘数法做我们设一个函数L(v1,v2....vn)=f(v1,v2....vn)+λϕ(v1,v2....vn)L(v1,v2....vn)=f(v1,v...原创 2018-04-07 21:23:55 · 271 阅读 · 0 评论 -
Codeforces 963C. Cutting Rectangle
感谢lxy教会我这题qaqw和h具体是什么不重要,先将他们离散化,然后把c[i]记成c[w][h]的形式如果有某个c[w][h]=0一定不合法,并且c[w][1]:c[w][2]:....c[w][h]c[w][1]:c[w][2]:....c[w][h]c[w][1]:c[w][2]:....c[w][h]这个比例对所有w相同,这样才存在合法方案单独考虑一种方块c[w][h],可...原创 2018-04-18 22:06:55 · 598 阅读 · 0 评论 -
BZOJ3837: [Pa2013]Filary
当m=2时,k至少为n/2 所以序列中的每一个位置都有至少1/2的概率在k个数中 随机一个序列的位置i,计算i在k个数中时,k的最大值 计算其他n-1个数和a[i]的差b[j],另外k-1个数的b[j]的gcd>1,那么将gcd分解质因数后,任意一个分解出来的p[i]都可以代表k个数 于是将b[j]分解质因数,维护每个p[i]在多少个b[j]中出现,最大的p[i]就是k,要计算m的最大值,容原创 2017-12-03 16:33:22 · 798 阅读 · 0 评论 -
BZOJ3833: [Poi2014]Solar lamps
可以将给出的直线视作向量,那么当这两个向量不共线时(共线时情况类似),建立出以这两个向量为基底的坐标系,将坐标取反后,每盏灯(x,y)亮了后,能照亮的区域是(<=x,<=y),然后直接暴力弄这个东西就行了 因为不会写树套树qwq,我写了kd-tree,卡了半天卡过去了qwq 为了减小常数写了指针和一些奇奇怪怪的东西,代码可能不会很友好code:#include<set>#include<map原创 2017-11-29 21:35:57 · 368 阅读 · 0 评论 -
51nod 1397
根据增广路的性质(未匹配匹配未匹配交错路),画图贪贪贪感觉能搞出来?我们先把图中的m对匹配点连上,得到这个东西蓝色的为匹配边,上方为集合A,下方为集合B,不妨设|B|>=|A| 先不考虑匹配点的度数够不够,我们尝试补并尽量添加非匹配点的度 因为m个匹配已经存在,所以A集和B集中的非匹配点之间不能有边 我们先为B集某个未匹配点添加边(这里假定度数要求为2,所以这个未匹配点至少要添加2条边,与匹配原创 2017-11-20 22:12:50 · 299 阅读 · 0 评论 -
BZOJ大视野 2190: [SDOI2008]仪仗队
经过观察,发现一个规律,n>2时无视原图第一列第n行,剩下一个(n-1)*(n-1)的矩阵,m=n-1剩下的图中,1——m列,m到1行,每列、行可见的数量为 所以用到 欧拉函数code:/************************************************************** Problem: 2190 User: licha原创 2015-02-07 09:57:46 · 894 阅读 · 0 评论 -
BZOJ3505: [Cqoi2014]数三角形 解题报告
本来不难的一题,发现我不会算两点线段间整点数,问师兄又被嘲笑了….. 这道题可以转化一下,求出所有三角形数量,减去三点共线的三角形数 求三点共线的三角形数的话,枚举n,mn,m得到一个线段,以(1,1),(n,m)(1,1),(n,m)为三角形的两个顶点,1*剩余线段上的点就是这个线段的贡献,再乘上共有多少个贡献相同的线段(对于一条线段(1,1),(n,m)(1,1),(n,m),(n,1),(原创 2016-09-28 22:17:17 · 709 阅读 · 0 评论 -
BZOJ1876: [SDOI2009]SuperGCD
乍一看觉得是高精度欧几里得……然而算了复杂度后发现不对劲 结果是必修三刚学的更相减损法(当时将这个算法时一直觉得他很辣鸡) 然后百度一下我就不讲了如果两个数都是偶数,那么他们一定有2这个质因子,提取2直到两个数有一个是奇数 一奇一偶的话,提取那个偶数的2直到它变成奇数,因为奇数和它的公因子不可能是2 然后就是两个奇数的情况,用一个减另一个,就变成了一奇一偶的情况,然后处理方法同上 最后是原创 2016-12-13 16:58:30 · 977 阅读 · 0 评论 -
BZOJ3210: 花神的浇花集会
找一个点距nn个点的切比雪夫距离和最小和一个点切比雪夫距离为rr的是一个边长为2r2r的正方形,和一个点哈密顿距离为rr的点是一个边长为2√r\sqrt 2r的正方形,我们两点旋转45o45^o再放大2√\sqrt 2倍后他们的哈密顿距离就是切比雪夫距离的2倍,然后公式是(x+y,x−y)(x+y,x-y),然后这个公式我真的不知道除了用那个旋转公式要怎么理解 把坐标转了后因为是哈密顿距离,所以可原创 2016-11-13 16:31:56 · 505 阅读 · 0 评论 -
BZOJ3142: [Hnoi2013]数列
将原序列差分得到序列a[1],a[2],a[3]——a[k−1]a[1],a[2],a[3]——a[k-1],那么这样的一个序列一共有n−∑a[i]n-\sum a[i]种可能,答案就是∑(n−∑a[i])\sum (n-\sum a[i]),差分的序列有mk−1m^{k-1}种可能,所以将nn提出来得到n∗mk−1−∑∑a[i]−>n*m^{k-1}-\sum\sum a[i]-> 因为每个数字原创 2017-01-20 10:30:13 · 564 阅读 · 0 评论 -
BZOJ3751: [NOIP2014]解方程
数这么大不可能真去写高精度… 那么可以考虑模下的解,当模数多的时候可以看成就是方程的解 论良好的模数和常数的重要性…. 对于每个模数pi,带0~pi进方程判是否合法,然后枚举1~m每个模数下都满足就认为他满足code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmat原创 2017-03-18 08:39:19 · 514 阅读 · 0 评论 -
BZOJ3170: [Tjoi 2013]松鼠聚会
切比雪夫距离,直接上公式转成哈密顿距离 然后就是找一个点到其他所有点的哈密顿距离和最短,将两维分开考虑,排个序O(n)就可以算出每个点到其他所有点x坐标的距离和,y坐标的距离和注意longlong…#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<原创 2017-02-01 22:51:53 · 713 阅读 · 0 评论 -
BZOJ3293: [Cqoi2011]分金币
经典贪心设第x人给他右边的人xi个金币,因为最后每个人的金币数ave易知,所以可以得到n个方程: a1+xn-x1=ave a2+x1-x2=ave ….. 设bi=ai-ave 得 x1=xn+b1 x2=x1+b2=xn+b1+b2 …. 设ci=∑ii=1bici=\sum_{i=1}^ibi 所以答案就是 ans=∑|xi|=∑|xn+ci|ans=\sum|xi|=\原创 2017-03-07 12:58:59 · 404 阅读 · 0 评论 -
BZOJ4170: 极光
将每个位置的位置定为x,graze值定为y 那么任意位置上出现过的任意数值就对应上了平面上的若干个点 每次询问和一个点的哈密顿距离 <= x的点的个数 将哈密顿距离转为切比雪夫距离(x,y)−>(x+y,x−y)(x,y)->(x+y,x-y) 和一个点切比雪夫距离 <= x的点对应平面上一个矩形 那么询问就变成了询问平面上一个矩形内的点的个数 用KD-tree或cdq都是兹瓷的code原创 2017-04-26 08:32:07 · 1033 阅读 · 0 评论 -
BZOJ1105: [POI2007]石头花园SKA
所以你们是怎么突然就猜到把所有点都换成x<=y周长就最小的a 膜了题解表示不能理解这个结论 于是我就自己证了一下,不难证 简要说一下证明:如果把所有点都对称到y=x直线的下方,周长不是最小的,就说明,有可能一些点对称到上方可能使周长更小,考虑如果一个点对称过去了上方,那它右下角的点一定要对称过去,不然这个点就没有必要对称过去 那么对称过去的一部分一定是长这样的 阴影那部分就是我们要对称原创 2017-09-25 08:53:42 · 483 阅读 · 0 评论 -
BZOJ4724: [POI2017]Podzielno
定理:若一个数被B-1整除,则它在B进制下各个位置的和一定能被B-1整除 这里证的挺清楚的 因为要求最大,肯定位数越多越大,注意到每个数的数量>=1,所以若这些数的和不是B-1的倍数,就去掉1个余数,然后弄个前缀和,每个询问二分一下就行了code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>原创 2017-09-26 16:38:06 · 375 阅读 · 0 评论 -
BZOJ4725: [POI2017]Reprezentacje ró?nicowe
这题远没有它看起来那么可怕.. 容易发现当n>70时a[n]就已远大于1e9,此时和a[n]有关的差只有a[n]-a[n-1]在n为偶数的情况下在1e9之内 于是打个70的表,如果当前的x在打表时没出现,就二分找已经出现的差有多少个#include<set>#include<map>#include<deque>#include<queue>#include<stack>#includ原创 2017-09-26 16:52:26 · 459 阅读 · 0 评论 -
BZOJ4377: [POI2015]Kurs szybkiego czytania
学到了求区间交并的姿势..注意到a,n互质,所以对于所有的0<=i< n,ai+b mod n互不相同,一一对应 我们令s=ai+b,问大串包含多少个小串,就是问有多少个s使得s,s+a,s+2a,s+3a…..满足限制 于是我们可以列出若干个形如l<=s< r(Mod n)的限制 这些不等式解集的交就是能取的s的数量,减掉尾部的m-1个i就是答案(后缀不足m不能作为开头) 卡常卡了好久qw原创 2017-09-29 09:42:38 · 436 阅读 · 0 评论 -
ARC082 E - ConvexScore
对于图中的每个凸包,计算2n−|S|2^{n-|S|} 令集合T=N-S 发现要计算的东西就是T的子集数 设U是T的子集 就是计算(S,U)这个东西的数量 这时我们发现,S∪U这个东西…好像是互不相同的 所以转化为计算不同的S∪U的数量 这个就是全集的有面积的子集 2n2^n去掉共线和空集就行了code:#include<set>#include<map>#include<deq原创 2017-10-03 22:11:52 · 449 阅读 · 0 评论