正解:数论

解题报告:

传送门$QwQ$

我好像当初考的时候这题爆零了,,,部分分都没想到,,,我真的好菜$kk$

考虑如果在$t_1,t_2$两个时刻有$x_1=x_2,y_1=y_2$是什么情况$QwQ$?

那就有$\begin{cases}t_1+[\frac{t_1}{B}]\equiv t_2+[\frac{t_2}{B}](\mod A)\\t_1\equiv t_2(\mod B)\end{cases}$.

不妨设$t_2=t_1+B\cdot t$,代入得$t_1+[\frac{t_1}{B}]\equiv t_1+B\cdot k+[\frac{t_1+B\cdot k}{B}](\mod A)$,即$k(B+1)\equiv 0(\mod A)$

解得$\frac{A}{gcd(A,B+1)}|k$.即将$mod\ B$相等的提出来,发现每$\frac{A}{gcd(A,B+1)}$一循环.又因为$mod\ B$的结果有$B$个,所以总的循环节长度为$len=\frac{A\cdot B}{gcd(A,B+1)}$.

所以把$l,r$取模后变成若干条线段,然后现在询问$[0,len)$覆盖了多少个点.昂这个不差分下就行了嘛,$over$

#include<bits/stdc++.h>
using namespace std;
#define il inline
#define fi first
#define sc second
#define ll long long
#define gc getchar()
#define mp make_pair
#define P pair<ll,ll>
#define rb register bool
#define rc register char
#define rp(i,x,y) for(ll i=x;i<=y;++i)
#define my(i,x,y) for(ll i=x;i>=y;--i) const int N=1e6+;
const ll inf=1e18;
ll n,A,B,len,l[N],r[N],sum,dat,lst,as;
multiset<P>S; il ll read()
{
rc ch=gc;ll x=;rb y=;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')ch=gc,y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
}
ll gcd(ll x,ll y){return y?gcd(y,x%y):x;}
il void ad(ll x,ll y){S.insert(mp(x,-));S.insert(mp(y,));} int main()
{
//freopen("5444.in","r",stdin);freopen("5444.out","w",stdout);
n=read();A=read();B=read();len=A/gcd(A,B+)*B;rp(i,,n){l[i]=read(),r[i]=read();sum+=r[i]-l[i]+;}
if(A/gcd(A,B+)>inf/B)return printf("%lld\n",sum),;
rp(i,,n)
{
if(r[i]-l[i]>=len)return printf("%lld\n",len),;;//printf("l=%lld r=%lld len=%lld\n",r[i],l[i],len);
if(l[i]/len!=r[i]/len)ad(l[i]%len,len-),ad(,r[i]%len);else ad(l[i]%len,r[i]%len);
}
multiset<P>::iterator it=S.begin();
while(it!=S.end()){P tmp=*it;if(!dat)lst=tmp.fi;dat-=tmp.sc;if(!dat)as+=tmp.fi-lst+;++it;}
printf("%lld\n",as);
return ;
}

洛谷$P5444\ [APIO2019]$奇怪装置 数论的更多相关文章

  1. Luogu P5444 [APIO2019]奇怪装置

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

  2. P5444 [APIO2019]奇怪装置

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

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

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

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

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

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

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

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

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

  7. 洛谷P4495 [HAOI2018]奇怪的背包(数论)

    题面 传送门 题解 好神仙的思路啊--orzyyb 因为不限次数,所以一个体积为\(V_i\)的物品可以表示出所有重量为\(\gcd(V_i,P)\)的倍数的物品,而所有物品的总和就是这些所有的\(\ ...

  8. [APIO2019T1]奇怪装置

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

  9. 洛谷 P1135 【奇怪的电梯】

    题库 :洛谷 题号 :1135 题目 :奇怪的电梯 link :https://www.luogu.org/problemnew/show/P1135 一. 动态规划 : 思路 :这道题用动规来解决其 ...

随机推荐

  1. pandas数据框,统计某列或者某行数据元素的个数

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/sinat_38893241/articl ...

  2. TensorFlow的 卷积层

    用 TensorFlow 做卷积 让我们用所学知识在 TensorFlow 里构建真的 CNNs.在下面的练习中,你需要设定卷积核滤波器(filters)的维度,weight,bias.这在很大程度上 ...

  3. @bzoj - 3836@ [Poi2014]Tourism

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个n个点,m条边的无向图,其中你在第i个点建立旅游站点的费 ...

  4. SuperSocket内置的命令行协议

    内置的命令行协议(接受自定义,分隔符为“:”,“,”): 命令行协议定义了每个请求必须以回车换行结尾 "\r\n". 由于 SuperSocket 中内置的命令行协议用空格来分割请 ...

  5. 用diiv实现多个方块居中嵌套--padding

    文章地址 https://www.cnblogs.com/sandraryan/ 案例:用diiv嵌套多个正方形,配合盒模型相关知识,使每个div在他的父元素上居中.(每个div中心点对齐) 涉及到m ...

  6. uni-app学习记录07-生命周期

    <template> <view class="content"> 我是首页 </view> </template> <scr ...

  7. java super关键字和调用父类构造方法

    表示父类对象的默认引用 如果子类要调用父类被覆盖的实例方法,可用super作为调用者调用父类被覆盖的实例方法. 使用super调用父类方法 使用super调用父类的构造方法 调用构造方法 本类中调用另 ...

  8. Python--day43--补充之主键和外键

    主键只有一个,但是可以用两列不为空的值组成:

  9. H3C 高级ACL

  10. 关于后台动态模板添加内容的总结 Builder使用

    1.后台控制器中ArticleController中加载 formBuilder,listBuilder类: 2.实例化FormBuilder对象,调用类中的方法: 3.初始化时加载Builder/f ...