$solution:$

问题其实就是求两个式子的循环节。

钦定 $t\mod B=0$且 $(t\neq 0)$,其 $t$ 为循环节。

则将 $1$ 式拆开得 $\frac{t\times (B+1)}{B}\mod A=0$。

$\frac{t\times (B+1)}{B}\equiv 0\space(\mod A)$

$\frac{t}{B}\equiv 0\space (\mod \frac{A}{gcd(A,B+1)})$

$t\equiv 0\space (\mod \frac{A\times B}{gcd(A,B+1)})$。

即循环节为 $\frac{A\times B}{gcd(A,B+1)}$

直接做线段覆盖即可。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define int long long
using namespace std;
inline int read(){
int f=,ans=;char c=getchar();
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
return f*ans;
}
const int MAXN=;
int n,A,B,k;
int gcd(int a,int b){
if(!b) return a;
return gcd(b,a%b);
}
struct node{
int l,r;
}x[MAXN<<];
int cnt,Ans;
bool cmp(node x1,node x2){return x1.l<x2.l;}
void debug(){
for(int i=;i<=cnt;i++) printf("l:%d r:%d\n",x[i].l,x[i].r);
return;
}
signed main(){
// freopen("make.in","r",stdin);
n=read(),A=read(),B=read();
k=(A/gcd(A,B+))*B;
for(int i=;i<=n;i++){
int l=read(),r=read();
if((r-l+)>=k){printf("%lld\n",k);return ;}
if(l==r){x[++cnt].l=l%k,x[cnt].r=l%k;continue;}
if((l%k)<=(r%k)){x[++cnt].l=l%k,x[cnt].r=r%k;continue;}
else{
x[++cnt].l=l%k,x[cnt].r=k-;
x[++cnt].l=,x[cnt].r=r%k;
}
}
sort(x+,x+cnt+,cmp);
int L=x[].l,R=x[].r;
for(int i=;i<=cnt;i++){
if(x[i].l>R){Ans+=R-L+;L=x[i].l,R=x[i].r;continue;}
R=max(R,x[i].r);
}Ans+=R-L+;
printf("%lld\n",Ans);
}

[APIO2019] 奇怪装置的更多相关文章

  1. 【LOJ#3144】[APIO2019]奇怪装置(数论)

    [LOJ#3144][APIO2019]奇怪装置(数论) 题面 LOJ 题解 突然发现\(LOJ\)上有\(APIO\)的题啦,赶快来做一做. 这题是窝考场上切了的题嗷.写完暴力之后再推了推就推出正解 ...

  2. 【LG5444】[APIO2019]奇怪装置

    [LG5444][APIO2019]奇怪装置 题面 洛谷 题目大意: 给定\(A,B\),对于\(\forall t\in \mathbb N\),有二元组\((x,y)=((t+\lfloor\fr ...

  3. 题解-APIO2019奇怪装置

    problem loj-3144 题意概要:设函数 \(f(t)\) 的返回值为一个二元组,即 \(f(t)=((t+\lfloor \frac tB\rfloor)\bmod A, t\bmod B ...

  4. Luogu P5444 [APIO2019]奇怪装置

    题目 这种题目看上去就是有循环节的对吧. 在考场上,一个可行的方式是打表. 现在我们手推一下这个循环节. 记函数\(f(t)=(((t+\lfloor\frac tB\rfloor)\%A),(t\% ...

  5. P5444 [APIO2019]奇怪装置

    传送门 考虑求出最小的循环节 $G$ 使得 $t,t+G$ 得到的数对是一样的 由 $y \equiv t \mod B$ ,得到 $G$ 一定是 $B$ 的倍数,设 $zB=G$,则 $t,t+zB ...

  6. 洛谷$P5444\ [APIO2019]$奇怪装置 数论

    正解:数论 解题报告: 传送门$QwQ$ 我好像当初考的时候这题爆零了,,,部分分都没想到,,,我真的好菜$kk$ 考虑如果在$t_1,t_2$两个时刻有$x_1=x_2,y_1=y_2$是什么情况$ ...

  7. #3144. 「APIO 2019」奇怪装置

    #3144. 「APIO 2019」奇怪装置 题目描述 考古学家发现古代文明留下了一种奇怪的装置.该装置包含两个屏幕,分别显示两个整数 \(x\) 和 \(y\). 经过研究,科学家对该装置得出了一个 ...

  8. [APIO 2010] [LOJ 3144] 奇怪装置 (数学)

    [APIO 2010] [LOJ 3144] 奇怪装置 (数学) 题面 略 分析 考虑t1,t2时刻坐标相同的条件 \[\begin{cases} t_1+\lfloor \frac{t_1}{B} ...

  9. [APIO2019T1]奇怪装置

    考古学家发现古代文明留下了一种奇怪的装置.该装置包含两个屏幕,分别显示两个整数x和y.经过研究,科学家对该装置得出了一个结论:该装置是一个特殊的时钟,它从过去的某个时间点开始测量经过的时刻数t,但该装 ...

随机推荐

  1. 2019年8月19日~8月25日 第八周JAVA学习总结

    临近开学,本周的任务完成情况不够好,平常乱七八糟的事情比较多,所以放在学习上的心思比较少.平均每天放在JAVA学习的时间约1个小时,放在编程的时间约半小时,解决问题的时间约1小时. 下一个星期就要开学 ...

  2. Spring Boot关于layui的通用返回类

    1.关于layui的通用返回类 code.count.data.msg public class Msg { private long code = 0; private long count = 0 ...

  3. Apach Hadoop 与 CDH 区别

    1.Apache Hadoop 不足之处 • 版本管理混乱 • 部署过程繁琐.升级过程复杂 • 兼容性差 • 安全性低 2.Hadoop 发行版 • Apache Hadoop • Cloudera’ ...

  4. 【leetcode】1103. Distribute Candies to People

    题目如下: We distribute some number of candies, to a row of n = num_people people in the following way: ...

  5. git 的add .

    git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件. git add -u :他仅监控 ...

  6. python+requests接口自动化框架

    为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...

  7. React native 平时积累笔记

    常用插件: react-native-check-box 复选框react-native-sortable-listview 列表拖拽排序 react-native-doc-viewer 预览组件 r ...

  8. mysql LEFT JOIN关键字 语法

    mysql LEFT JOIN关键字 语法 作用:LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行. 大理石构件 ...

  9. 洛谷 P3496 BZOJ 2079 [POI2010]GIL-Guilds

    题目描述 King Byteasar faces a serious matter. Two competing trade organisations, The Tailors Guild and ...

  10. opencv入门教程三

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20537737 作者:毛星云(浅墨)  ...