[AGC026B]rng_10s
题意:一个商店,第一天早上有$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的更多相关文章
- AtCoder Grand Contest #026 B - rng_10s
Time Limit: 2 sec / Memory Limit: 1024 MB Score : 600600 points Problem Statement Ringo Mart, a conv ...
- 【AtCoder】AGC026 题解
A - Colorful Slimes 2 找相同颜色的一段,然后答案加上段长除2下取整 代码 #include <iostream> #include <cstdio> us ...
- AtCoder练习
1. 3721 Smuggling Marbles 大意: 给定$n+1$节点树, $0$为根节点, 初始在一些节点放一个石子, 然后按顺序进行如下操作. 若$0$节点有石子, 则移入盒子 所有石子移 ...
随机推荐
- Web Session 浅入浅出(山东数漫江湖)
使用过几种Web App开发语言和框架,都会接触到Session的概念.即使是一个简单站点访问计数的功能,也常常使用Session来实现的.其他常用的领域还有购物车,登录用户等.但是,对Session ...
- Git彻底删除历史提交记录的方法
有时候我们可能会遇到git提交错误的情况,比如提交了敏感的信息或者提交了错误的版本.这个时候我们想将提交到代码库的记录删除,我们要怎么做呢? 首先,我们需要找到我们需要回滚到的提交点的hash,可以使 ...
- VMware12序列号
VMware tools怎么删除 rpm -e open-vm-tools-desktop vm12序列号 5A02H-AU243-TZJ49-GTC7K-3C61NVF5XA-FNDDJ-085GZ ...
- spring boot 注解说明
Starters 可以创建自己的Starter,但名字格式不能是 spring-boot-starter-*,而是 *-spring-boot-starter.类似Maven插件的规则. 自动配置 ...
- nginx路由文件配置
nginx中文文档 Nginx 的请求处理有多个阶段,比如说rewrite.access.content等等,不同的配置字段属于不同的配置阶段,不同阶段的先后执行顺序不一样,例如rewrite在con ...
- TCP之connect
1. connect函数: #include <sys/socket.h> int connect(int sockfd, const struct sockaddr *servaddr, ...
- java===java基础学习(14)---封装
package dog; public class Demo4 { public static void main(String []args) { Worker w1= new Worker(&qu ...
- C基础 mariadb处理简单案例
引言 MariaDB 是一款灰常不错开源数据库. 这里直接用它来解决业务问题. 业务需求: 现在数据库中表示按照天分表的. 突然我们需要按照月来处理数据. 例如输入一个玩家id, 查找这个玩家这个月内 ...
- 访问WEB-INF目录中的文件
WEB-INF下面的文件具有安全性,直接在浏览器中输入地址是访问不到的,可以通过servlet来访问. 方法1: 利用<jsp-file>/WEB-INF/a.jsp</jsp-fi ...
- MyEclipse部署项目报"Add Deployment". Invalid Subscription Level - Discontinuing this MyEclipse
"Add Deployment". Invalid Subscription Level - Discontinuing this MyEclipse 猜测应该是MyEclipse ...