LuoguP7059 [NWRRC2015]Lucky Chances 题解

Content

有一个名叫 Lucky chances 的游戏,游戏一开始给出一个 \(r\times c\) 的矩阵,你可以选定矩阵中任意一个元素以及上、下、左、右四个方向中的任意一个方向进行游戏。如果这个方向上的任意一个元素都严格小于所选的元素,那么你就赢了。

试求出所有元素的能够使得你赢得游戏的方向的总和。

数据范围:\(1\leqslant r,c\leqslant 100\),矩阵内的每个元素不超过 \(1000\)

Solution

我们直接每个方向直接模拟,看能否赢得游戏,能的话就把它加入到答案里面。

Code

int r, c, a[107][107], ans;

int main() {
	r = Rint, c = Rint;
	F(i, 1, r) F(j, 1, c) a[i][j] = Rint;
	F(i, 1, r) F(j, 1, c) {
		int flag = 1;
		R(k, i - 1, 1) if(a[k][j] >= a[i][j]) {flag = 0; break;}
		ans += flag, flag = 1;
		F(k, i + 1, r) if(a[k][j] >= a[i][j]) {flag = 0; break;}
		ans += flag, flag = 1;
		R(k, j - 1, 1) if(a[i][k] >= a[i][j]) {flag = 0; break;}
		ans += flag, flag = 1;
		F(k, j + 1, c) if(a[i][k] >= a[i][j]) {flag = 0; break;}
		ans += flag;
	}
	printf("%d\n", ans);
	return 0;
}
posted @ 2021-12-16 14:52  Eason_AC  阅读(38)  评论(0)    收藏  举报