UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#212013#3815. 种树KianXie1001ms1204kbC++644b2024-10-13 10:10:052024-10-13 12:54:52

answer

#include<bits/stdc++.h>
using namespace std;
int cnt,n,m,b;
bool a[100][312];
bool ck()
{
	int r=0;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			if(a[i][j]==1)
			{
				r++;
				if(a[i-1][j]==1||a[i+1][j]==1||a[i][j-1]==1||a[i][j+1]==1)
					return false;
			}
	return r==b;
}
void dfs(int x,int y,int k)
{
	if(x==n&&y==m)
	{
		a[x][y]=1;
		if(ck())cnt++;
		a[x][y]=0;
		if(ck())cnt++;
		return;
	}
	int nxtx=x,nxty=y+1;
	if(nxty>m){nxty=1,nxtx++;}
	//放
	a[x][y]=1;
	dfs(nxtx,nxty,k+1);
	//不放
	a[x][y]=0;
	dfs(nxtx,nxty,k);
}
int main()
{
	cin>>n>>m>>b;
	dfs(1,1,b);
	cout<<cnt;
	return 0;
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 10
Accepted
time: 0ms
memory: 1200kb

input:

2 2 1

output:

4

result:

ok 1 number(s): "4"

Test #2:

score: 10
Accepted
time: 0ms
memory: 1204kb

input:

2 3 2

output:

8

result:

ok 1 number(s): "8"

Test #3:

score: 10
Accepted
time: 0ms
memory: 1204kb

input:

4 4 2

output:

96

result:

ok 1 number(s): "96"

Test #4:

score: 10
Accepted
time: 0ms
memory: 1200kb

input:

4 4 5

output:

304

result:

ok 1 number(s): "304"

Test #5:

score: 10
Accepted
time: 0ms
memory: 1204kb

input:

3 4 3

output:

84

result:

ok 1 number(s): "84"

Test #6:

score: 10
Accepted
time: 1ms
memory: 1200kb

input:

3 5 2

output:

83

result:

ok 1 number(s): "83"

Test #7:

score: 10
Accepted
time: 0ms
memory: 1200kb

input:

3 5 3

output:

215

result:

ok 1 number(s): "215"

Test #8:

score: 10
Accepted
time: 0ms
memory: 1200kb

input:

3 5 4

output:

276

result:

ok 1 number(s): "276"

Test #9:

score: 10
Accepted
time: 0ms
memory: 1200kb

input:

3 5 5

output:

174

result:

ok 1 number(s): "174"

Test #10:

score: 10
Accepted
time: 0ms
memory: 1200kb

input:

4 3 5

output:

18

result:

ok 1 number(s): "18"

Extra Test:

score: 0
Extra Test Passed