社区讨论

样例过了但只有30分,实在找不出哪错了,求助

P3654First Step (ファーストステップ)参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@lo319kp1
此快照首次捕获于
2023/10/23 23:09
2 年前
此快照最后确认于
2023/10/23 23:09
2 年前
查看原帖
rt
CPP
#include <bits/stdc++.h>
using namespace std;
int s[500][500]; 
int a,b,c,ans;//a:行,b:列,c:人数 
void right(int x,int y,int q)//x坐标,y坐标,次数 
{
	if (q==c)
	{
		ans++;
		return ;
	}
	if (s[x][y+1]==1)
	{
		right(x,y+1,q+1);
	}
} 
void under(int x,int y,int q)//x坐标,y坐标,次数 
{
	if (q==c)
	{
		ans++;
		return ;
	}
	if (s[x+1][y]==1)
	{
		right(x+1,y,q+1);
	}
} 
int main(int argc, char** argv) {
	int i,j;
	char p;
	cin>>a>>b>>c; 
	for (i=0;i<a;i++)
	{
		for (j=0;j<b;j++)
		{
			cin>>p; 
			if (p=='#')
			{
				s[i][j]=0;
			}
			else
			{
				s[i][j]=1;
			}
		}
	}
	for (i=0;i<a;i++)
	{
		for (j=0;j<b;j++)
		{
			if (s[i][j]==1)
			{
				right(i,j,1);
				under(i,j,1);
			}
		}
	}
	if (c==1)
	{
		ans/=2;
	}
	cout<<ans;
	return 0;
}

回复

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

正在加载回复...