题意:一个商店,第一天早上有$A$罐苹果汁,一个人每天上午都会来买$B$罐,每天晚上如果剩余罐数$\leq C$那么会增加$D$罐,问能否无限买

收集一个套路...?

首先如果$B\gt A$或者$B\gt D$那肯定不行了,以下假设$B\leq A,B\leq D$

然后考虑每天下午的罐数$x$:第一天下午$x=A-B$,每天下午如果$x\gt C$那么第二天下午将变为$x-B$,否则变为$x-B+D$

那么第$i$天下午就满足$x\equiv A-iB(\bmod D)$,同时有$x\in[C+1-B,C-B+D]$

同余式即是$x=A-iB+kD$,也就是说$x\equiv A\left(\bmod(B,D)\right)$

现在我们要找满足$x\geq C+1-B,x\equiv A\left(\bmod(B,D)\right)$的$x$的最小值,这个就好做多了

#include<stdio.h>
typedef long long ll;
ll gcd(ll a,ll b){return a%b==0?b:gcd(b,a%b);}
ll adj(ll a,ll b,ll m){
	if((a%m+m)%m>b)b+=m;
	return a+b-(a%m+m)%m;
}
bool work(){
	ll a,b,c,d,g;
	scanf("%lld%lld%lld%lld",&a,&b,&c,&d);
	if(b>a||b>d)return 0;
	g=gcd(b,d);
	return adj(c-b+1,a%g,g)>=0;
}
int main(){
	int T;
	scanf("%d",&T);
	while(T--)puts(work()?"Yes":"No");
}

[AGC026B]rng_10s的更多相关文章

  1. AtCoder Grand Contest #026 B - rng_10s

    Time Limit: 2 sec / Memory Limit: 1024 MB Score : 600600 points Problem Statement Ringo Mart, a conv ...

  2. 【AtCoder】AGC026 题解

    A - Colorful Slimes 2 找相同颜色的一段,然后答案加上段长除2下取整 代码 #include <iostream> #include <cstdio> us ...

  3. AtCoder练习

    1. 3721 Smuggling Marbles 大意: 给定$n+1$节点树, $0$为根节点, 初始在一些节点放一个石子, 然后按顺序进行如下操作. 若$0$节点有石子, 则移入盒子 所有石子移 ...

随机推荐

  1. [bzoj1005][HNOI2008]明明的烦恼-Prufer编码+高精度

    Brief Description 给出标号为1到N的点,以及某些点最终的度数,允许在 任意两点间连线,可产生多少棵度数满足要求的树? Algorithm Design 结论题. 首先可以参考这篇文章 ...

  2. pandas中DataFrame使用

    切片选择 #显示第一行数据print(df.head(1)) #显示倒数三行数据 print(df.tail(3)) loc  df.loc[row_index,col_index]  注意loc是根 ...

  3. JAVA常见的集合类

    关系的介绍: Set(集):集合中的元素不按特定方式排序,并且没有重复对象.他的有些实现类能对集合中的对象按特定方式排序. List(列表):集合中的元素按索引位置排序,可以有重复对象,允许按照对象在 ...

  4. 排名函数row_number() over(order by)用法

    1. 定义 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY [列名]DESC) 是先把[列名]降序排列,再为降序以 ...

  5. 修改mysql权限

    关于mysql的用户管理,笔记 1.创建新用户 通过root用户登录之后创建 >> grant all privileges on *.* to testuser@localhost id ...

  6. jQuery使用blur()方法触发两次的解决方法

    在项目中的textarea在是去焦点时对文本内容进行验证,这时候使用了blur方法,但是实现时blur的回调函数执行了两次,这里我也不知道为什么,然后就尝试先解除blur事件绑定,然后再绑定blur事 ...

  7. linux命令(3):rpm命令

    查询当前环境是否已安装软件包,如下命令: [root@cloud ~]# rpm -qa | grep httpd httpd-2.4.6-31.el7.centos.1.x86_64 httpd-t ...

  8. resteasy web Guice集成版本

    xxxx:8080/resteasy/messageservice/aaaa Hello : aaaa web.xml <context-param> <param-name> ...

  9. hdu 2444(染色法判断二分图+最大匹配)

    The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  10. 【转载】JAVA多线程和并发基础面试问答

    转载自这里. 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题.(校对注: ...