2020牛客多校第十场D-Hearthstone Battlegrounds

Description

2020牛客多校第十场D-Hearthstone Battlegrounds_第1张图片

Solution

又是榜被带歪的一天
超级大水题

  • 我们发现
  • 剧毒圣盾亡语 ⇒ 被 藤 蔓 撞 \Rightarrow^{被藤蔓撞} 剧毒亡语
  • 剧毒圣盾 ⇒ 被 藤 蔓 撞 \Rightarrow^{被藤蔓撞} 剧毒
  • 剧毒亡语 ⇒ 被 怪 撞 \Rightarrow^{被怪撞} 藤蔓
  • 剧毒 ⇒ 被 怪 撞 \Rightarrow^{被怪撞} 西内
  • 圣盾相当于两个怪
  • 因此我们尽量用藤蔓破对面盾,让 1 / 1 1/1 1/1发挥 1 / 1 0 9 1/10^9 1/109的力量!
  • 由此可见,藤蔓是最有用的
  • 我们要用3124的优先级打对面3412
  • 复杂度 O ( a 1 + a 2 + a 3 + a 4 + b 1 + b 2 + b 3 + b 4 ) O(a1+a2+a3+a4+b1+b2+b3+b4) O(a1+a2+a3+a4+b1+b2+b3+b4)
#include 
int T,a1,a2,a3,a4,a5,b1,b2,b3,b4,b5;
void fight(){
	if(b3) --b3,++b5;
	else if(b4) --b4;
	else if(b1) --b1,++b3;
	else --b2,++b4;
}int main(){
	scanf("%d",&T);
	while(T--){
		scanf("%d%d%d%d%d%d%d%d",&a1,&a2,&a3,&a4,&b1,&b2,&b3,&b4),a5=b5=0;
		while(a1+a2+a3+a4&&b1+b2+b3+b4){
			if(a3+a4) b5=0;
			if(a5&&b1+b2){if(b1)--b1,++b3;else--b2,++b4;a5=0;}
			if(a3) --a3,++a5,fight();
			else if(a1) --a1,++a3,fight();
			else if(a2) --a2,++a4,fight();
			else --a4,fight();
		}puts(((b1+b2+b3+b4)||(!(a1+a2+a3+a4)&&a5<=b5))?"No":"Yes");
	}
}

你可能感兴趣的:(2020牛客暑期多校训练营)