70分求解
查看原帖
70分求解
1597284
SUNYINAN楼主2025/7/23 14:35
#include<bits/stdc++.h>
using namespace std;
int x,y,z,n,m,cnt;
int main(){
	cin>>x>>y>>z>>n>>m;
	int nt=n,mt=m;//nt为n的替身,mt为m的替身
	for(int i=0;x*i<=nt;i++){
		mt-=i;int tmt=mt;//同理tnt为nt的替身,tmt为mt的替身
		nt-=i*x;int tnt=nt;
		for(int j=0;y*j<=tnt;j++){
			tmt-=j;int ttmt=tmt;
			tnt-=j*x;int ttnt=tnt;
			for(int k=0;k<=ttnt;k++){//k表示k组小鸡,每组有z只小鸡
				ttmt-=k*z;
				ttnt-=k;
				if(ttmt==0&&ttnt==0){//如果钱花光了,鸡也够了
					cnt++;//方案+1
					break;
				}
				ttmt=tmt;//数值还原
				ttnt=tnt;
				
			}
			tmt=mt;
			tnt=nt;
		}
		mt=m;
		nt=n;
	}cout<<cnt;
	return 0;
}
2025/7/23 14:35
加载中...