题解:CF746D Green and Black Tea
__bjxx0201__ · · 题解
题面大意
Innokentiy 想要喝 NO。
思路
题目传送门
我一开始想要用深搜,但是想了一下会超时,于是还是要使用贪心的思路。
当剩下的红茶数量比绿茶数量多时,尽可能的多用红茶,直到没有
什么时候无解呢?那就是当 NO。
此处可展示大致的无解以及考虑红茶的代码:
if (a/(b+1)>k || ((a/b+1)==k && a%b==k)) {
cout<<"NO";
return 0;
}
if (a==b) {
for (int i=0;i<n;i++) {
if (i%2==0) tea+='G';
else tea+='B';
}
}
else if (a>b) {
if (k==0) {
cout<<"NO";
return 0;
}
for (int i=0;i<n;i++) {
if (i%(k+1)<k) {
tea+='G';
a--;
}
else {
tea+='B';
b--;
}
}
while (b>0) {
tea+='B';
b--;
}
}
//以下判断绿茶代码同理。