社区讨论

玄关求助!!(小学生已死)

P10719[GESP202406 五级] 黑白格参与者 4已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
8 条
当前快照
1 份
快照标识符
@mj450idk
此快照首次捕获于
2025/12/13 18:12
2 个月前
此快照最后确认于
2025/12/15 21:20
2 个月前
查看原帖
救救我救救我!感觉逻辑是对的但是40!!!求大佬帮助,回复必关!!!求求了帮帮我这个可怜的小学生
CPP
#include<bits/stdc++.h> 
using namespace std;
int n,m,k1;
int arr[150][150];
int cnt;
bool check(int i,int j,int k,int l)
{
	int sum=0;
	cnt=0;
	for(int a=i;a<=j;a++)
	{
		for(int b=k;b<=l;b++)
		{
			cnt++;
			if(arr[a][b]==1)
			{
				sum++;
			}
		}
	}
	if(sum==k1)
	{
		return true;
	}
	else
	{
		return false;
	}
}
int main()
{
	long long minx=100000000;
	cin>>n>>m>>k1;
	for(int i=0;i<n;i++)
	{
		string as;
		cin>>as;
		for(int j=0;j<as.size();j++)
		{
			arr[i][j]=as[j]-'0';
		}
	}
	bool flag=false;
	for(int i=0;i<n;i++)
	{
		for(int j=i;j<n;j++)
		{
			for(int k=0;k<m;k++)
			{
				for(int l=k;l<m;l++)
				{
					if(check(i,j,k,l))
					{
						if(minx>cnt)
						{
							minx=cnt;
							flag=true;
						}
					}
				}
			}
		}
	}
	if(flag)
	{
		cout<<minx;
	}
	else
	{
		cout<<0;
	}
	return 0;
}

回复

8 条回复,欢迎继续交流。

正在加载回复...