专栏文章

题解:P13013 [GESP202506 五级] 奖品兑换

P13013题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mip0dimd
此快照首次捕获于
2025/12/03 04:06
3 个月前
此快照最后确认于
2025/12/03 04:06
3 个月前
查看原文

前言:

赛时作者评价:真简单,贪心水题。

题意:

老师给小杨发了 nn 张课堂优秀券和 mm 张作业优秀券,而用 aa 张课堂优秀券和 bb 张作业优秀券可以换一个奖品;也可以用 aa 张课堂优秀券和 bb 张作业优秀券可以换一个奖品,请问小杨最多能换多少份奖品?

思路:

可以让当前拥有券数大的和兑奖需要的券数大的相减,让拥有券数少的和兑奖需要的券数少的相减,如果已经兑换不了一个奖品了,就退出循环,否则让计数器 +1+1

代码:

CPP
#include<bits/stdc++.h>
using namespace std;
int n,m,a,b;
int main(){
	cin>>n>>m>>a>>b;
	long long cnt=0;
	while((n>=a&&m>=b)||(m>=a&&n>=b)){//可以换奖品
		if(n>=m){//如果当前拥有的课堂优秀券多
			n-=max(a,b);
			m-=min(a,b);
		}else{
			m-=max(a,b);
			n-=min(a,b);
		}
		cnt++;//计数器++
	}
	cout<<cnt;
}

后记:

作者赛时 1515 分钟切出来了。

评论

0 条评论,欢迎与作者交流。

正在加载评论...