【题解】2021.9.18 - zhengru IOI 七连测 Day4

T1 扫雷

思路

  • 因为只需要求雷的总数,所以只需要找若干个区间覆盖整个图即可。

  • 然后,每隔 \(3\) 个统计一下答案即可。

  • 如果行/列是 \(3\) 的倍数,那么应从 \(2\) 开始枚举;

  • 如果 \(\mod 3\)\(2\) ,可以直接从 \(1\) 开始枚举;

  • 如果余 \(1\) ,也可以直接从 \(1\) 开始枚举,因为这样可以先转换为余 \(2\) 的形式,然后又相当于是从 \(1\) 开始,仍然合法。

  • 然后就是代码了。

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int n,m,ans;
int x,ny,my;
int main(){
	scanf("%d%d",&n,&m);
	ny=(n%3)?1:2;my=(m%3)?1:2;
	for(register int i=1;i<=n;++i)
		for(register int j=1;j<=m;++j){
			scanf("%d",&x);
			if(!((i-ny)%3)&&!((j-my)%3)) ans+=x;}
	printf("%d\n",ans);
	return 0;
}

T2 翻转

思路

代码

T3 斜率

思路

代码

T4 任务

思路

代码

posted @ 2021-10-06 16:07  Binaries  阅读(37)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end