【数论】计算s里有几个n,去除s里的n

简介: 【数论】计算s里有几个n,去除s里的n

题目


你身上有 aa 个 nn 元的硬币和 bb 个 11 元的硬币。请问能不能在不找零的情况下购买 ss 元的物品。


Input


第一行一个数 qq (1 \le q \le 10^41≤q≤104) —代表有 qq 组数据


测试案例的只有一行包含四个整数 aa, bb, nn 和 SS (1 \le a, b, n, S \le 10^91≤a,b,n,S≤109) — 价值nn的硬币数量,价值11的硬币数量,价值nn和所需的总价值


Output


For the ii-th test case print the answer on it — YES (without quotes) if there exist such xx and yy that if you take xx coins of value nn and yy coins of value 11, then the total value of taken coins will be SS, and NO otherwise.


You may print every letter in any case you want (so, for example, the strings yEs, yes, Yes and YES will all be recognized as positive answer).


Sample 1


image.png

一些话

t了一发,nnd


正篇

原因是题目考察的套路不熟悉,拆分下这道题

t组数据,while(t--) 注意每一组用到的数据要初始化

计算可以用几个n元来支付(就是这点了,套路不熟练只想到模拟)↓


1.前提条件:


               要计算s里有几个n


套路:


               int cnt = s / n;


2.前提条件:


               去除s里的n


套路:


               以上一个套路为基础


               s -= (cnt) * n;


               因为n的数量是有限制的,如果减多了就补回多的部分;


                       if(cnt > a)


                       s+= (cnt - a) * n;


               到这里这道题基本就搞定了,


下面是完整代码

#include <iostream>
using namespace std;
int main(){
    int t,a,b,n,s;
    cin >> t;
    while(t--){
        int cnt = 0;
        cin >> a>> b >> n >> s;
        cnt = s/n;
        s -= cnt * n;
        if(cnt > a){
            s += (cnt-a) * n;
        }
        if(s - b > 0) puts("NO");
        else puts("YES");
    }
    return 0;
}
目录
相关文章
|
9天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1197 4
|
8天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1114 87
|
6天前
|
机器学习/深度学习 物联网
Wan2.2再次开源数字人:Animate-14B!一键实现电影角色替换和动作驱动
今天,通义万相的视频生成模型又又又开源了!Wan2.2系列模型家族新增数字人成员Wan2.2-Animate-14B。
569 11
|
18天前
|
人工智能 运维 安全
|
8天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1680 12
|
1天前
|
资源调度
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
212 127
|
9天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
344 0
|
9天前
|
消息中间件 Java Apache
SpringBoot集成RocketMq
RocketMQ 是一款开源的分布式消息中间件,采用纯 Java 编写,支持事务消息、顺序消息、批量消息、定时消息及消息回溯等功能。其优势包括去除对 ZooKeeper 的依赖、支持异步和同步刷盘、高吞吐量及消息过滤等特性。RocketMQ 具备高可用性和高可靠性,适用于大规模分布式系统,能有效保障消息传输的一致性和顺序性。
493 2

热门文章

最新文章