A. Road To Zero (贪心)

题目传送门

题意:给定非负整数x,y,两个操作1(花费a):其中一个数加1或减1,操作2(花费b):全部加1或减1,问让x=y=0的最少花费是多少。PS:坑爹题意:此处不需要让x=y=0为同时到达

思路:由于最后X=Y=0,显然X与Y的差值带来的花费是必须的,所以贡献1为abs(x-y) * a,其次再贪心比较一下花费2a都减1和花费b都减1谁小就行了。

AC代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
	int t;
	cin>>t;
	while(t--){
		ll x,y,a,b;
		cin>>x>>y>>a>>b;
		printf("%lld\n",abs(x-y)*a+min(x,y)*min(2*a,b));
	}
	return 0;
}