2021.8.13提高B组模拟5T1 Brothers(暴力)

Posted SSL_LKJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021.8.13提高B组模拟5T1 Brothers(暴力)相关的知识,希望对你有一定的参考价值。

Brothers

题目大意

输入样例

1.

3 4 4 3
0 1 2 0
1 0 2 0
0 1 2 0
0 1 2 2

2.

4 2 3 4
1 0 3
2 1 2

3.

8 4 2 1
0 7
1 6
2 5
3 4

输出样例

1.

2 2 2 0
2 1 0 1
2 2 2 0
0 2 0 0

2.

1 0 3
2 1 2

3.

7 6
0 5
1 4
2 3

题目数据

解题思路

就是暴力,记得存储转移

AC代码

#include<cstdio>
using namespace std;
int n,r,c,K,a[105][105],b[105][105];
int dx[4]=0,0,1,-1;
int dy[4]=1,-1,0,0;
bool check(int x,int y)

	if(x>=1&&x<=r&&y>=1&&y<=c)return true;
	return false;

int main()

	scanf("%d%d%d%d",&n,&r,&c,&K);
	for(int i=1;i<=r;i++)
		for(int j=1;j<=c;j++)
			scanf("%d",&a[i][j]);
	for(int k=1;k<=K;k++)
	
		for(int i=1;i<=r;i++)//赋值
			for(int j=1;j<=c;j++)
				b[i][j]=a[i][j];
		for(int i=1;i<=r;i++)//暴力
			for(int j=1;j<=c;j++)
				for(int xx=0;xx<4;xx++)
				
					int x=dx[xx]+i,y=dy[xx]+j;
					if(check(x,y))
						if((a[i][j]+1)%n==a[x][y])
							b[x][y]=a[i][j];
				
		for(int i=1;i<=r;i++)//赋值
			for(int j=1;j<=c;j++)
				a[i][j]=b[i][j];
	
	for(int i=1;i<=r;i++,printf("\\n"))
		for(int j=1;j<=c;j++)	
			printf("%d ",a[i][j]);
	return 0;


谢谢

以上是关于2021.8.13提高B组模拟5T1 Brothers(暴力)的主要内容,如果未能解决你的问题,请参考以下文章

2021.7.16提高B组模拟5T1 并行博弈(博弈论)

2021.8.13提高B组模拟5T3 Word (暴力)

2021.8.13提高B组模拟5T2 Crisis(小根堆)

2021.8.13提高B组模拟5T3 Word (暴力)

2021.8.13提高B组模拟5T2 Crisis(小根堆)

2017.12.09NOIP提高组模拟赛A组