站外题求助(听说灌水大佬多)
  • 板块灌水区
  • 楼主Chalage_2010
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/8/2 15:59
  • 上次更新2023/11/3 06:20:45
查看原帖
站外题求助(听说灌水大佬多)
760690
Chalage_2010楼主2023/8/2 15:59

题目描述 题目描述:

假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。

给你一个长度为 n 的整数数组 a 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示已经种了花。问能否在不打破种植规则的情况下再种入 m 朵花?能则返回 true ,不能则返回 false。

输入格式:

第一行输入一个整数 t,表示 t 组数据。

对于每组数据:

第一行输入两个整数n,m。n表示花坛地块数,m表示需要种植的花朵数、

接下来一行,输入花坛地块种植花朵情况。

输出格式:

能否种植m朵花

样例输入1:

1

5 1

1 0 0 0 1

样例输出1:

true

约定:

1<=t,n,m<=100

提示: 我的代码

#include<bits/stdc++.h>
using namespace std;
int t;
int main()
{
	cin>>t;
	for(int i=1;i<=t;i++)
	{
		int n,m,a[105];
		a[0]=0;
		cin>>n>>m;
		if((m-1)*2>=n)
		{
			cout<<"false";
			continue;
		}
		int sss=0;
		for(int j=1;j<=n;j++)
		{
			scanf("%d",&a[j]);
			if(a[j]==1 and a[j-1]==1)
			{
				sss=1; 
				continue;
			}
		}
		if(sss=1)
		{
			cout<<"false";
		}
		a[n+1]=0;
		int sum=0;
		for(int j=1;j<=n;j++)
		{
			if(a[j-1]==0 and a[j]==0 and a[j+1]==0)
			{
				sum++;
				a[j]=1;
			}
		}
		if(sum>=m) cout<<"true";
	}
	return 0;
}

蒟蒻求助

2023/8/2 15:59
加载中...