1800*C. Table Decorations(贪心 || 二分)

Problem - 478C - Codeforces

1800*C. Table Decorations(贪心 || 二分)_第1张图片

1800*C. Table Decorations(贪心 || 二分)_第2张图片 解析:

        做法一:二分,显然左右边界为 0 和 总数量除以3。check时mid,任意两项之和都不能小于mid

        做法二:贪心,当数量最大的气球数量的一半小于另外两种颜色气球的数量之和,可以组成全部颜色数量之和的三分之一。否则全部组成都是 2:1 的方案。

二分代码:

 

#include
using namespace std;
#define int long long
int a,b,c;
bool check(int mid){
	if(a+b>1;
		if(check(mid)) l=mid;
		else r=mid-1;
	}
	cout<

贪心代码:

#include
using namespace std;
#define int long long
int r,g,b;
signed main(){
	scanf("%lld%lld%lld",&r,&g,&b);
	cout<

你可能感兴趣的:(codeforces,算法,c++,c语言,开发语言,二分,贪心)