bzoj2187 多组询问,每次给出 $a, b, c, d$,求满足 $\frac{a}{b}  < \frac{p}{q} < \frac{c}{d}$ 的所有二元组 $(p, q)$ 中 $p$ 为第一关键字,$q$ 为第二关键字排出来的字典序最小的那一对. 分析: 设计函数 $f(a,b,p,q,c,d)$. 按照题目中保证 $q$ 最小的要求考虑该函数的几个边界: 1. $\left \lfloor \frac{a}{b} \right \rfloor-1 \leq \left \l…
[ZZOJ#31]类欧几里得 试题描述 这是一道模板题. 给出 \(a, b, c, n\),请你求出 \(\sum_{x=0}^n{\lfloor \frac{a \cdot x + b}{c} \rfloor}\) 输入 一行四个正整数 \(a, b, c, n\). 输出 一个整数表示答案. 输入示例1 10 7 3 3 输出示例1 28 输入示例2 36976101 240442820 735275034 66441189 输出示例2 110998229606855 数据规模及约定 对于…
题目传送门 传送门 这个官方题解除了讲了个结论,感觉啥都没说,不知道是因为我太菜了,还是因为它真的啥都没说. 如果 $x \geqslant y$,显然 gcd(x, y) 只会被调用一次. 否则考虑每次操作前的数对应该是 $(y, y + kx)$.这样仍然不好处理.考虑忽略掉达到的 $a < b$ 的状态,那么每次的 $k \geqslant 1$.那么当较大数加上较小数的时候对应将 $k$ 加上 1,对应交换两边的数,然后将 $k$ 加上1.特别地,第一次操作不能做大加上小,因为第一次操作…
//类欧几里得的模板题 p5170 //求这三个式子: //第一个跟后两个没关联 //后两个跟其余两个都有关联: #include<cstdio> #include<algorithm> #include<math.h> #include<string.h> using namespace std; typedef long long ll; ; ; ; int t; ll n,a,b,c; struct query { ll f; ll g; ll h;…
题目 设 $ab^{-1} = x(mod \ p)$,给出 $x,p$,要求最小的 $b$,其中 $0< a < b, \ 1 < x<p,\ 3 \leq x\leq {10}^{15}$. 分析 比赛中,首先就想用扩展欧几里得解出一个可行 $b$,然后枚举 $kb \% p$ 的最小值,然后发现复杂度爆炸. 看题解,用了一种非常巧妙地方法, $\because 0 < a=bx-pt < b$ $\therefore \frac{p}{x} < \frac{…
传送门 题意简述:求满足ax+by+c≤0ax+by+c\le0ax+by+c≤0的二元组(x,y)(x,y)(x,y)对数. 思路: 类欧几里得算法模板题. 把式子变化一下变成:求满足0≤y≤−ax+cb0\le y\le\frac{-ax+c}b0≤y≤b−ax+c​的二元组(x,y)(x,y)(x,y)对数. 然后就变成求∑i=0⌊ca⌋⌊−ax+cb⌋+1\sum_{i=0}^{\left\lfloor\frac ca\right\rfloor}\left\lfloor\frac{-ax…
JZOJ3492 数数(count) 我们知道,一个等差数列可以用三个数A,B,N表示成如下形式:  B+A,B+2A,B+3A⋯B+NA ztxz16想知道对于一个给定的等差数列,把其中每一项用二进制表示后,一共有多少位是1 A<=1e4,B<=1e16,N<=1e12 分析: 有个很经典的类欧套路,k从0开始 二进制下,第k位是否为1,等于(原数>>k)-2*(原数>>(k+1)), 可以把i从1到n变成i从0到n-1,也就是提一个A出来,再做,于是就是类欧板…
大意: 给定$N,M$, 求$\sum\limits_{K=1}^N \text{(KM)&M}$ 考虑第$i$位的贡献, 显然为$\lfloor\frac{KM}{2^i}\rfloor$为奇数的个数再乘上$2^i$ 也就等于$2^i(\sum \lfloor\frac{KM}{2^i}\rfloor-2\sum \lfloor\frac{KM}{2^{i+1}}\rfloor)$, 可以用类欧求出 #include <iostream> #include <sstream&g…
题意:计算$\sum\limits_{i=1}^n[(p{\cdot }i)\bmod{q}]$ 类欧模板题,首先作转化$\sum\limits_{i=1}^n[(p{\cdot}i)\bmod{q}]=\sum\limits_{i=1}^n[p{\cdot}i-\left\lfloor\frac{p{\cdot}i}{q}\right\rfloor{\cdot}q]$,然后只要能快速计算$\sum\limits_{i=1}^n\left\lfloor\frac{p{\cdot}i}{q}\ri…
传送门 题意简述:多组询问,每次给出a,b,c,da,b,c,da,b,c,d,求满足ab<pq<cd\frac ab<\frac pq<\frac cdba​<qp​<dc​的所有二元组(p,q)(p,q)(p,q)中qqq为第一关键字,ppp为第二关键字排出来字典序最小的那一对. 思路: 设计函数f(a,b,p,q,c,d)f(a,b,p,q,c,d)f(a,b,p,q,c,d). 按照题目中保证qqq最小的要求考虑该函数几个边界: ⌊ab⌋+1≤⌈cd⌉−1\le…