奇怪做法 WA*6
查看原帖
奇怪做法 WA*6
524801
不食嗟来之食楼主2022/8/25 23:04
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int ans,n,m,a[105][105],x;
int main()
{
	freopen("P1387_2.in","r",stdin);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			scanf("%d",&x);
			if(x==1)
			{
				a[i][j]=a[i][j-1]+1;
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(a[i][j])
			{
				if(a[i][j+ans])
				{
					int z=i;
					for(z=i;z<=ans+i-1;z++)
					{
						if(a[z][j]<=a[z+1][j]) continue;
						else
						{
							z=-1;
							break;
						}
					}
					if(z==-1) continue;
					else 
					{
						ans++;
						j--;
					}
				}
			}
		}
	}
	printf("%d",ans);
	return 0;
}

好像是求二维的某个位置之前有多少个1,这样从边数向下找,找到<=此边数1的长度的就可以读入 wa的地方都是answer与正确answer差了一点

2022/8/25 23:04
加载中...