D. Matrix Cascade

原题链接

题解

对某一片区域+1-1等操作,二维差分,注意每一维的含义和往下一维转移的细节就行了

code

#include<bits/stdc++.h>
using namespace std;

int wave1[3005]={0},wave2[3005]={0};
int sum[3005]={0};
string s[3005];

int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>s[i];
            s[i]=' '+s[i];
        }

        int ans=0;
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                sum[j]=sum[j-1]+wave1[j]-wave2[j];
            }
            for(int j=1;j<=n;j++)
            {
                if(sum[j]%2!=s[i][j]-'0')
                {
                    ans++;
                    wave1[j]++;
                    wave2[j+1]++;
                }
            }

            wave1[1]+=wave1[2];
            for(int j=2;j<n;j++) wave1[j]=wave1[j+1];
            wave1[n]=0;

            for(int j=n;j>1;j--) wave2[j]=wave2[j-1];
            wave2[1]=0;
        }
        cout<<ans<<"\n";
        for(int i=1;i<=n+1;i++)//n+1主要是为了清空wave2
        {
            wave1[i]=0;
            wave2[i]=0;
        }
    }
    return 0;
}

posted @   纯粹的  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示