牛客 D.LaunchPad(异或)

题目链接:点击这里
在这里插入图片描述
在这里插入图片描述
超时。

开两个数组分别记录当前行或列是否有操作,再开一个二维数组计算每个灯在操作后的亮灭情况(用来调整行和列所带来的一次操作而不是两次操作)。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1000+10;
int a[maxn], b[maxn];
int c[maxn][maxn];

int main()
{
    int n, m, q, x, y;
    scanf("%d %d", &n, &m);
    scanf("%d", &q);
    while(q--)
	{
		scanf("%d %d", &x, &y);
		c[x][y] ^= 1;
		a[x] ^= 1;
		b[y] ^= 1;
    }
    
    int ans = 0;
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= m; j++)
            ans += a[i]^b[j]^c[i][j];
            
    printf("%d\n", ans);
    return 0;
}
发布了673 篇原创文章 · 获赞 103 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_42815188/article/details/104054132