当前位置: 首页 > news >正文

网站建设流程图/seo黑帽技术工具

网站建设流程图,seo黑帽技术工具,114在线查询电话,烟台做网站哪家做的好题目链接:洛谷 题目描述:求整数$x\in [a,b]$使得$|2px \ mod \ 2q-q|$最小,如果有多个$x$输出最小的。 数据范围:$1\leq a,b,p,q\leq 10^9$ 第一道类欧的不是模板的题?? 首先一看就尝试一下二分&#xff0c…

题目链接:洛谷

题目描述:求整数$x\in [a,b]$使得$|2px \ mod \ 2q-q|$最小,如果有多个$x$输出最小的。

数据范围:$1\leq a,b,p,q\leq 10^9$


第一道类欧的不是模板的题??

首先一看就尝试一下二分,如何判断$2px \ mod \ 2q \in [l,r]$呢?我们发现

$$[2px \ mod \ 2q \in [l,r]]=\lfloor\frac{2px-l}{2q}\rfloor-\lfloor\frac{2px-r-1}{2q}\rfloor$$

所以存在$x\in [a,b]$使得$2px \ mod \ 2q \in [l,r]$,只需要判断$\sum_{x=a}^b(\lfloor\frac{2px-l}{2q}\rfloor-\lfloor\frac{2px-r-1}{2q}\rfloor)$是否大于0就可以了,这个使用类欧计算。

找到最小的偏差值$l$之后可以使用扩欧解同余方程。时间复杂度$O(\log^2 n)$。

 1 #include<bits/stdc++.h>
 2 #define Rint register int
 3 using namespace std;
 4 typedef long long LL;
 5 LL t, a, b, p, q, len;
 6 inline LL calc(LL a, LL b, LL c, LL n){
 7     if(!a || !n) return (n + 1) * (b / c);
 8     if(n < 0) return 0;
 9     LL m = (a * n + b) / c;
10     if(a >= c || b >= c) return calc(a % c, b % c, c, n) + (n * (n + 1) >> 1) * (a / c) + (n + 1) * (b / c);
11     return m * n - calc(c, c - b - 1, a, m - 1);
12 }
13 inline LL exgcd(LL a, LL b, LL &x, LL &y){
14     if(!b){x = 1; y = 0; return a;}
15     LL gcd = exgcd(b, a % b, y, x);
16     y -= a / b * x;
17     return gcd;
18 }
19 int main(){
20     scanf("%lld", &t);
21     while(t --){
22         scanf("%lld%lld%lld%lld", &a, &b, &p, &q);
23         LL l = 0, r = q, mid, P = p << 1, Q = q << 1;
24         while(l < r){
25             mid = l + r >> 1;
26             LL L = q - mid, R = q + mid + 1;
27             if(calc(P, Q - L, Q, b) + calc(P, Q - R, Q, a - 1) - calc(P, Q - L, Q, a - 1) - calc(P, Q - R, Q, b) > 0) r = mid;
28             else l = mid + 1;
29         }
30         LL x, y, gcd = exgcd(P, Q, x, y), ans = 1e9; P /= gcd; Q /= gcd;
31         if((q - l) % gcd == 0){
32             LL xx = (q - l) / gcd * x; xx += (a - xx) / Q * Q;
33             while(xx >= a) xx -= Q; while(xx < a) xx += Q;
34             ans = min(ans, xx);
35         }
36         if((q + l) % gcd == 0){
37             LL xx = (q + l) / gcd * x; xx += (a - xx) / Q * Q;
38             while(xx >= a) xx -= Q; while(xx < a) xx += Q;
39             ans = min(ans, xx);
40         }
41         printf("%lld\n", ans);
42     }
43 }
CF1182F

后来看了一波官方题解,结果发现是一个类似BSGS的分块,时间复杂度$O(\sqrt{n})$。(写得不好还要带一个log...)

(还是上面那个方法更好一些)

(最主要是看起来更高大上一点。。。)

转载于:https://www.cnblogs.com/AThousandMoons/p/11108875.html

http://www.lbrq.cn/news/1101763.html

相关文章:

  • 济南制作网站制作公司策划/自己做网站需要什么条件
  • 在线建网站/seo外包 靠谱
  • 你认为什么是网络营销/谷歌seo和百度seo
  • 怎么做自己的淘宝客推广网站/公司想建个网站怎么弄
  • 真人做的免费视频网站/济南百度竞价
  • 超级工程网站建设上海中心大厦/百度会员登录入口
  • 我做的网站在手机里滑动怎么这里卡/免费的关键词挖掘工具
  • 如何识别网站建设/深圳网站seo外包公司哪家好
  • 网上注册公司需要上传哪些资料/seo 优化案例
  • 建新建设集团有限公司网站/专业的网站建设公司
  • 科技公司网站制作模板/最新新闻事件今天疫情
  • 厦门公司做网站/数据分析师资格证书怎么考
  • wordpress国人cms/网页搜索优化
  • 网站与数据库的联系/网络推广是干什么的
  • 网页游戏网站排行/2023第二波疫情已经到来了吗
  • 成都青羊网站建设/淘宝宝贝排名查询
  • 网站标签怎么做/网页宣传
  • 襄阳做网站找哪家公司/seo搜狗排名点击
  • 手机网站设计建设/企业网站排名优化公司
  • 帮做论文网站吗/北京网站建设公司
  • 网站分享的功能怎么做/百度浏览器广告怎么投放
  • 杭州网站维护/引流推广怎么做
  • 国家建设材料检测网站/百度指数功能模块有哪些
  • 响应式网站设计企业/google chrome浏览器
  • 国际交流中心网站建设与管理制度/新业务在线软件下载
  • 餐饮团购网站建设/百度推广seo怎么学
  • 企信网查询/西安seo网站优化
  • 网站建设网页设计培训学校/全球热搜榜排名今日
  • 商城app免费制作/天津百度seo排名优化软件
  • 做金融培训的网站/刷关键词排名
  • 在 Angular 应用程序中使用 Genkit 的完整指南
  • jQuery 插件
  • WireShark抓包分析TCP数据传输过程与内容详解
  • 内网后渗透攻击过程(实验环境)--3、横向攻击
  • Web服务压力测试工具hey学习一:使用方法
  • 最大子数组和问题-详解Kadane算法