当前位置: 首页 > news >正文

P13013 [GESP202506 五级] 奖品兑换

时间限制400ms

内存限制512.00M

难度普及/提高−

历史分数100

提交记录 查看题解 题目反馈

标签

GESP

题目背景

为了保证只有时间复杂度正确的代码能够通过本题,时限下降为 400 毫秒。

题目描述

班主任给上课专心听讲、认真完成作业的同学们分别发放了若干张课堂优秀券和作业优秀券。同学们可以使用这两种券找班主任兑换奖品。具体来说,可以使用 a 张课堂优秀券和 b 张作业优秀券兑换一份奖品,或者使用 b 张课堂优秀券和 a 张作业优秀券兑换一份奖品。

现在小 A 有 n 张课堂优秀券和 m 张作业优秀券,他最多能兑换多少份奖品呢?

输入格式

第一行,两个正整数 n,m,分别表示小 A 持有的课堂优秀券和作业优秀券的数量。

第二行,两个正整数 a,b,表示兑换一份奖品所需的两种券的数量。

输出格式

输出共一行,一个整数,表示最多能兑换的奖品份数。

输入输出样例

输入 #1复制

8 8 2 1

输出 #1复制

5

输入 #2复制

314159 2653589 27 1828

输出 #2复制

1599

说明/提示

对于 60% 的测试点,保证 1≤a,b≤100,1≤n,m≤500。

对于所有测试点,保证 1≤a,b≤104,1≤n,m≤109。

第一种做法暴力(得80分):

#include <bits/stdc++.h> using namespace std; #define int long long const int P=1e9+7; const int N=1e5+10; int n,m,a,b,ans; signed main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; cin>>a>>b; if(a<b) swap(a,b);//确保 a 较大 while(n>=a || m>=a){ if(n<m)swap(n,m); if(m<b)break; n-=a; m-=b; ans++;//从n,m中选择较大的变量减去较大的花费 } cout<<ans<<endl; return 0; }

第二种做法AC代码:

#include <bits/stdc++.h> #define int long long using namespace std; const int P=1e9+7; const int N=1e5+10; int n,m,a,b,ans; int s,d; signed main(){ cin>>n>>m; cin>>a>>b; if(a<b)swap(a,b); if(a==b){//进行特判 cout<<min(n,m)/a<<endl; return 0; } s=a+b,d=a-b; while(n>=a||m>=a){ if(n<m)swap(n,m); int x=(n-m)/d; if(x==0){//当n-m<d时 int y=m/s; ans+=y*2; n-=y*s,m-=y*s; x=2; } int v=min(n/a,min(m/b,x)); ans+=v,n-=v*a,m-=v*b; if(m<b) break;//不可进行兑换 } cout<<ans<<endl; return 0; }
http://www.cnnetsun.cn/news/23868.html

相关文章:

  • PINNs-Torch:实现9倍加速的物理信息神经网络框架
  • GPT-5.2发布!这些超强新功能,快来看看它是怎么让你的工作更轻松的!
  • ChromePass:三分钟掌握Chrome密码提取的终极指南
  • 【方法】IP66.net:如何查到自己的IP?
  • 南京大学开源SteadyDancer模型实现完美动作迁移,首帧保留彻底解决身份漂移难题
  • 机器视觉相机参数
  • springboot基于vue的观赏鱼养殖互助商城系统的设计与实现_1vlf0334
  • 压差式静力水准仪液体选择必看!从充液到排气:沉降监测系统安装全流程避雷手册
  • 构建可靠数据库连接:人大金仓JDBC驱动8.6.0实战指南
  • 嵌入式零基础到就业年班
  • 如何快速提取Chrome密码:跨平台开源工具完整指南
  • 5分钟掌握RichTextKit:SwiftUI富文本编辑器终极指南
  • 如何有效准备编程竞赛?五个阶段科学备考方法
  • BG3模组管理器终极指南:5分钟快速上手博德之门3模组管理
  • 6、黑客必备:Linux 网络技能与软件管理
  • Font Awesome 7全面解析:现代化图标解决方案的革新之路
  • MySQL业务数据量增长到单表成为瓶颈时,该如何做?
  • 13、Linux 系统日志处理与服务使用技巧
  • Paperzz 论文查重:从 “重复率焦虑” 到 “合规清晰”,学术新人如何用工具搞定论文的 “终稿安检”
  • Bananas屏幕共享:3分钟学会零门槛跨平台协作
  • 使用二进制文件方式部署kubernetes(1)
  • 如何在Mac上安装KeyCastr:5步搞定按键可视化工具
  • 小学生学C++编程 (位运算精讲)
  • 鸿蒙投屏工具HOScrcpy深度实战:突破传统镜像的进阶玩法
  • 基于MATLAB的胃癌检测实现方案
  • 图像分割新利器:预训练骨干网络快速构建高质量分割模型
  • 论文重复率 / AI 率双超?paperxie 的 “精准优化” 功能:如何在不碰专业内容的前提下过检测?
  • 36、Linux 系统安全防护全攻略
  • React Native语音识别终极指南:让你的应用听懂用户心声
  • 水银温度计淘汰不用慌!健康一体机:测温只是开始,多项目检测才是核心