牛客周赛 Round 47 C-苗苗的气球 题型:模拟 难度:中等

70 阅读1分钟

C-苗苗的气球_牛客周赛 Round 47 (nowcoder.com)

这道题注意审题,我刚开始想着怎么消也不会有4种情况呀:

image.png

第一种情况:3和4消掉,最后剩下2 2,那就是剩下一种气球.

第二种情况:2先和3消掉,剩下2,4,再消掉.最后剩下0个气球 image.png

这个其实就是我没审清题,题目的意思实际上说的是a[i]代表第i种颜色的气球的个数.

也就是a种气球的数量是2,b种气球的数量也是2,c种气球的数量是3,d种气球的数量是4:

image.png

按照这种方式来消.

那么这道题就要分类讨论了.

image.png

code

#include<bits/stdc++.h>
#define int long long
using namespace std;

const int N=1e5+10;
int a[N];
int sum;
int maxn;
signed main()
{
	cin.tie(nullptr)->sync_with_stdio(0);
	int n;cin>>n;
	
	for(int i=1;i<=n;i++)
	{
		cin>>a[i]; 
		sum+=a[i]; 
		maxn=max(maxn,a[i]);
	}
	
	//枚举每一个a[i],判断除了a[i]外的剩下的不同颜色气球种类个数的奇偶性 
	int kinds=0;
	for(int i=1;i<=n;i++)
	{
	  if((sum-a[i])%2==0 || ((sum-a[i])%2==1 && a[i]>1))
	  {
	     kinds++; 	
	  }	
	
	}	  //判断颜色相同的气球种类数量和不相同的数量是否相等
	  if(maxn>sum-maxn)  cout<<1<<endl;
	  else if(maxn==sum-maxn) cout<<0<<endl;
	  else cout<<kinds<<endl;
return 0;	
} 

image.png