区间修改——前缀和,差分或线段树或树状数组

Matrix Subtraction

https://ac.nowcoder.com/acm/contest/7501/J

题意:有t组输入,有一个n * m的矩阵,每次只能在n * m的矩阵中取一个a * b大小的矩阵,将其全部减一,问经过若干次后,能否将n * m的矩阵,都变为0,若可以输出"^_^",否则输出"QAQ"
分析:
把区间减一这个操作翻过来看,就是 地毯地毯题解(二维前缀和,差分)
此题为固定区间修改
区间修改————前缀和,差分或线段树或树状数组

#include<bits/stdc++.h>
using namespace std;
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int const N=1e3+7;
int n,m,a,b,f;
int mp[N][N];   //原数组
int c[N][N];   //差分数组
int main(){
  fio;
  int t;
  cin >> t;
  while(t--){
    f=0;
    memset(mp,0,sizeof(mp)); 
    memset(c,0,sizeof(c));
    cin >> n >> m >> a >> b;
    for(int i=1;i<=n;++i){
      for(int j=1;j<=m;++j){
        cin >> mp[i][j];
        c[i][j]=mp[i][j]-(mp[i-1][j]+mp[i][j-1])+mp[i-1][j-1]; 
      }
    }
    for(int i=1;i<=n;++i){
      for(int j=1;j<=m;++j){
        mp[i][j]=c[i][j]+(c[i-1][j]+c[i][j-1])-c[i-1][j-1];
        if(mp[i][j]<0){
          f=1;break;
        }
        if(i+a-1<=n&&j+b-1<=m){
          c[i][j]-=mp[i][j];
          c[i+a][j]+=mp[i][j];
          c[i][j+b]+=mp[i][j];
          c[a+i][b+j]-=mp[i][j];
        }
        else if(mp[i][j]!=0){
          f=1;break;
        }
      }
      if(f) break;
    }

    if(f) cout << "QAQ" << endl;
    else cout << "^_^" << endl;
  }
  return 0;
}
全部评论

相关推荐

03-20 17:35
武汉大学 Java
薛悦悦:强烈推荐!这个笔记写得很清晰 http://github.com/AccumulateMore/CV
点赞 评论 收藏
分享
好奇的伊登准备进厂:找了两个多月沟通六千多,不到十个面试至今仍未找到实习,看完你还想坚持下去吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
10911次浏览 93人参与
# 你的实习产出是真实的还是包装的? #
1938次浏览 42人参与
# 巨人网络春招 #
11359次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7621次浏览 43人参与
# 简历第一个项目做什么 #
31729次浏览 339人参与
# 重来一次,我还会选择这个专业吗 #
433520次浏览 3926人参与
# MiniMax求职进展汇总 #
24095次浏览 309人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187185次浏览 1122人参与
# 牛客AI文生图 #
21445次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152429次浏览 888人参与
# 研究所笔面经互助 #
118956次浏览 577人参与
# 简历中的项目经历要怎么写? #
310324次浏览 4217人参与
# AI时代,哪些岗位最容易被淘汰 #
63764次浏览 826人参与
# 面试紧张时你会有什么表现? #
30508次浏览 188人参与
# 你今年的平均薪资是多少? #
213120次浏览 1039人参与
# 你怎么看待AI面试 #
180105次浏览 1258人参与
# 高学历就一定能找到好工作吗? #
64330次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76524次浏览 374人参与
# 我的求职精神状态 #
448113次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363477次浏览 2638人参与
# 腾讯音乐求职进展汇总 #
160665次浏览 1112人参与
# 校招笔试 #
471093次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务