社区讨论

用数学,dalao求调

P13013[GESP202506 五级] 奖品兑换参与者 4已保存回复 13

讨论操作

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

当前回复
11 条
当前快照
1 份
快照标识符
@mls38zhj
此快照首次捕获于
2026/02/18 21:49
13 小时前
此快照最后确认于
2026/02/19 10:56
2 分钟前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n,m,a,b; 
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n>>m>>a>>b;
	if(n<m){
		swap(n,m);
	}
	if(a<b){
		swap(a,b);
	}
	if(a==b){
		cout<<m/a;//只能满足较少的数量
		return 0; 
	}
	if(m<b||n<a){
        cout<<0;
        return 0;
    }
	int ans=min((n+m)/(a+b),min(n/b,m/b));
	cout<<ans;
	return 0;
}
/*
设答案为k
k有上限:
	k<=(n+m)/(a+b)
	满足后~~~~~45分
特判a==b
	满足后~~~~~50分
重点:
	k还有两个上限:
		因为所有礼物里课堂券必须够,有:
			k<=n/min(a,b)
			//a,b中少的数来兑换,有上限 
		因为所有礼物里作业券必须够,有:
			k<=m/min(a,b)
			//a,b中少的数来兑换,有上限 
*/

回复

13 条回复,欢迎继续交流。

正在加载回复...