Stern-Brocot Tree、伪.GCD 副本

伪.GCD

问题 1:\(f(a,b,c,n) = \sum_{i=0}^{n} [\frac{ai+b}{c}]\)

  • Case 1: \(a\geq c 或 b\geq c\):\(f(a,b,c,n) = f(a\%c,b\%c,c,n)+(n+1)[\frac{b}{c}] + \frac{n(n+1)}{2}[\frac{a}{c}]\)
  • Case 2: 令 \(m=[\frac{an+b}{c}]\), 有 $f(a,b,c,n) = \sum_{i=0}^{n}\sum_{j=1}^{m}[[\frac{ai+b}{c}] \geq j] = \sum_{i=0}^{n}\sum_{j=0}^{m-1}[[\frac{ai+b}{c}] \geq j+1] = $
  • \(= \sum_{i=0}^{n}\sum_{j=0}^{m-1}[ai > cj+c-b-1]=\sum_{i=0}^{n}\sum_{j=0}^{m-1} m - [\frac{cj+c-b-1}{a}]\)
  • \(= nm - f(c,c-b-1,a,m-1)\)

问题 2:求 \(\frac{a}{b}<\frac{x}{y}<\frac{c}{d}\),的最小正整数解 \(y\).

  • Case 1:

Stern-Brocot Tree

提问:xxxxxx 问题的答案是 \(\frac{p}{q}\) (\(p \leq 10^6, q \leq 10^5\)),怎么二分?

我觉得我可以二分一个实数 ........ 然后 ....... 睡觉。

做法 solve(a,b,c,d) 在 \([\frac{a}{b},\frac{c}{d}]\) 中寻找答案。

  • check 一下 \(\frac{a+c}{b+d}\)。
  • 小了的话,沿着 SB 树向右下方突突突。二分求出极小的 \(k\),使得 \(\frac{a+kc}{b+kd}\) 大于等于正确答案。solve(a,b,a+kc,b+kd)
  • 大了的话,沿着 SB 树向右下方突突突。二分求出极小的 \(k\),使得 \(\frac{ka+c}{kb+d}\) 小于等于正确答案。solve(ka+c,kb+d,c,d)
  • 二分次数是 log 级别的,不会证明。

练习

It's a Mod, Mod, Mod, Mod World

做法

  • \(\sum_{i=1}^{n} pi\%q = \sum_{i=1}^{n}(pi-q[\frac{pi}{q}]) = \frac{pn(n+1)}{2} - q\sum_{i=1}^{n}[\frac{pi}{q}]\)

Rikka with Ants

做法

  • 对于直线 \(y=\frac{a}{b}x\),点 \((x,y)\) 在路径上,那么 \(\frac{y}{x} \leq \frac{a}{b}, \frac{y+1}{x-1}>\frac{a}{b}\)
    化简一下 \(\frac{a(x-1) - b}{b}< y \leq \frac{ax}{b}\)
  • 不妨设 \(\frac{a}{b}<\frac{c}{d}\),那么有 \(\frac{c(x-1)-d}{d} <y \leq \frac{ax}{b}\)
  • \(ans=\sum_{x=1}^{n} [\frac{ax}{b}] - \sum_{x=1}^{n}[\frac{cx-(c+d)}{d}]\)

KM and M

做法

  • 逐位考虑,考虑第 \(b\) 位,我们想知道多少个 \(k\) 使得 \(km\) 在这位上为 1,即 \(km\%(2^b) \geq 2^{b-1}\)。
  • \(ans = \frac{[\sum{km\%2^b}] - [\sum km\%2^{b-1}]}{2^{b-1}}\)

WifiPlanet

太难了

  • 把多边形剖成若干个梯形。
  • 不会剖简单多边形,被搞得自闭了。

probedroids

做法

  • 用「伪.gcd」check 答案
  • SB 树上二分即可。

HDU6624: fraction

题意

给 \(x,p\) 求极小的 \(a\) 使得 \(ax\%p<a\)

做法

  • 只需寻找最小的 \(k\),使得 \(kp \leq ax<kp+a\)。
  • \(\frac{p}{x} \leq \frac{a}{k} < \frac{p}{x-1}\)。

Stern-Brocot Tree、伪.GCD 副本的更多相关文章

  1. Codeforces 842C Ilya And The Tree 树上gcd

    题目链接 题意 给定一棵根为\(1\)的树.定义每个点的美丽值为根节点到它的路径上所有点的\(gcd\)值.但是对于每个点,在计算它的美丽值时,可以将这条路径上某个点的值变为\(0\)来最大化它的美丽 ...

  2. [俺们学校的题]伪.GCD

    GCD 题面: 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 思路: 首先两个数gcd(x,y)=p为质数,那么令x=k1*p,y=k2*p,由于是最 ...

  3. GCD in Swfit 3.0

    这里包括了Queue, Group, Barrier, Semaphore等内容.基本上常用的GCD对象和方法在Swift3.0的改变都囊括其中. 代码在这里:https://github.com/f ...

  4. hdu-3071 Gcd & Lcm game---质因数分解+状态压缩+线段树

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3071 题目大意: 给定一个长度为n的序列m次操作,操作的种类一共有三种 查询 L :查询一个区间的所 ...

  5. 线段树(I tree)

    Codeforces Round #254 (Div. 2)E题这题说的是给了一个一段连续的区间每个区间有一种颜色然后一个彩笔从L画到R每个区间的颜色都发生了 改变然后 在L和R这部分区间里所用的颜色 ...

  6. 数据结构:二叉查找树(C语言实现)

    数据结构:二叉查找树(C语言实现) ►写在前面 关于二叉树的基础知识,请看我的一篇博客:二叉树的链式存储 说明: 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: 1.若其左子树不空,则左子树上 ...

  7. BZOJ2877 NOI2012魔幻棋盘(二维线段树)

    显然一个序列的gcd=gcd(其差分序列的gcd,序列中第一个数).于是一维情况直接线段树维护差分序列即可. 容易想到将该做法拓展到二维.于是考虑维护二维差分,查询时对差分矩阵求矩形的gcd,再对矩形 ...

  8. 喵哈哈村的魔法考试 Round #20 (Div.2) 题解

    题解: A 喵哈哈村的跳棋比赛 题解:其实我们要理解题意就好了,画画图看看这个题意.x<y,那么就交换:x>y,那么x=x%y. 如果我们经过很多次,或者y<=0了,那么就会无限循环 ...

  9. 【bzoj2877】 Noi2012—魔幻棋盘

    http://www.lydsy.com/JudgeOnline/problem.php?id=2877 (题目链接) 题意 一个${n*m}$的矩阵,维护两个操作:给任意子矩阵${+val}$:问某 ...

随机推荐

  1. 揭秘!2周实现上云上市,阿里云SaaS上云工具包如何打造新云梯?

    提到“上云”,很多人会理解成上IaaS,比如买一些计算.存储和网络云产品,把自己的应用系统部署上去.这的确是通常意义的上云.但对SaaS而言,需要从产品.商业.服务,三个维度考虑SaaS伙伴和客户的痛 ...

  2. thinkphp 模块部署

    3.2对模块的访问是自动判断的,所以通常情况下无需配置模块列表即可访问,在部署模块的时候,默认情况下都是基于类似于子目录的URL方式来访问模块的,例如: http://serverName/Home/ ...

  3. (转)Java NIO框架Mina、Netty、Grizzly介绍与对比

    转:http://blog.csdn.net/cankykong1/article/details/19937027 Mina: Mina(Multipurpose Infrastructure fo ...

  4. D语言简介

    D语言,一种通用计算机程序语言,威力强大.功能丰富,支持多种编程范式,例如面向对象.[1]  D语言最初由Digital Mars公司就职的Walter Bright于2001年发布,意图改进C++语 ...

  5. Spring源码由浅入深系列五 GetBean

    获取bean的过程如上图所示.下一章将继续图示讲解createBean的过程.

  6. Python3 From Zero——{最初的意识:000~Initial consciousness}

    http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 a.编码 默认情况下,Python ...

  7. FIR和IIR设计指标

  8. Tomacat7启动报错-org.apache.catalina.deploy.WebXml addFilter

    java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter at org.apache.tomcat.ut ...

  9. 金三银四铜五铁六,Offer收到手软!

    作者:鲁班大师 来源:cnblogs.com/zhuoqingsen/p/interview.html 文中的鲁班简称LB 据说,金三银四,截止今天为止面试黄金时间已经过去十之八九,而LB恰逢是这批面 ...

  10. parallels desktop虚拟机与Mac共享网络设置方法

    查看vnic0的ip centos7设置ip parallels desktop偏好设置 最后可以互ping 也可以ping外网