NOIP模拟 Matrix 矩阵运算
来源:互联网 发布:c语言中文字选择题 编辑:程序博客网 时间:2024/06/18 18:31
题目描述
给出两个 N×N 的矩阵 A、B,矩阵每行每列标号 0~N-1 。
定义这两个矩阵的乘积 AB 为
(AB)i,j=∑k=0n−1Ai,jBi,j
现在要在这两个矩阵上依次进行 Q 次修改操作,两种操作描述如下:
A i j K ,将 Ai,j 的值修改为 K 。
B i j K ,将 Bi,j 的值修改为 K 。
在每一次修改操作进行后,输出矩阵 AB(这两个矩阵的乘积矩阵)中每个位置元素的权值之和。
输入格式
第一行,一个正整数 N ,表示矩阵的大小。
接下来 N 行,每行 N 个整数,描述矩阵 A 。
接下来 N 行,每行 N 个整数,描述矩阵 B 。
接下来一行,一个正整数 Q ,表示操作次数。
接下来 Q 行,每行描述一个操作,格式如题面所示。
输出格式
输出 Q 行,每行一个整数,表示这次操作完成后的答案。
样例数据 1
输入 [复制]
2
1 2
3 4
4 3
2 1
3
A 1 1 2
B 0 1 3
A 0 0 10
输出
40
40
103
备注
【数据规模与约定】
对于 10% 的数据,N = 1。
对于 30% 的数据,N,Q≤10。
对于 80% 的数据,1≤N≤100,|Ai,j|,|Bi,j|≤10。
对于 100% 的数据,1≤N≤1000,1≤Q≤105,|Aij|,|Bi,j|≤1000。
解题思路
可以发现,若修改的是A
同理,最开始是可以用A
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<cmath>#include<queue>#include<vector>using namespace std;int getint(){ int i=0,f=1;char c; for(c=getchar();(c>'9'||c<'0')&&c!='-';c=getchar()); if(c=='-')c=getchar(),f=-1; for(;c>='0'&&c<='9';c=getchar())i=(i<<3)+(i<<1)+c-'0'; return i*f;}const int N=1005;int n,m;long long A[N][N],B[N][N],Asumy[N],Bsumx[N];long long ans;int main(){ //freopen("matrix.in","r",stdin); //freopen("matrix.out","w",stdout); n=getint(); for(int i=0;i<n;i++) for(int j=0;j<n;j++) { A[i][j]=getint(); Asumy[j]+=A[i][j]; } for(int i=0;i<n;i++) for(int j=0;j<n;j++) { B[i][j]=getint(); Bsumx[i]+=B[i][j]; ans+=(long long)Asumy[i]*B[i][j]; } m=getint(); int x,y,val,delta;char c; while(m--) { for(c=getchar();c!='A'&&c!='B';c=getchar()); x=getint(),y=getint(),val=getint(); if(c=='A') { delta=val-A[x][y]; A[x][y]=val; Asumy[y]+=delta; ans+=(long long)delta*Bsumx[y]; cout<<ans<<'\n'; continue; } if(c=='B') { delta=val-B[x][y]; B[x][y]=val; Bsumx[x]+=delta; ans+=(long long)delta*Asumy[x]; cout<<ans<<'\n'; continue; } } return 0;}
阅读全文
0 0
- NOIP模拟 Matrix 矩阵运算
- 【NOIP模拟】Matrix
- 【NOIP模拟】矩阵
- [NOIP模拟] 矩阵
- noip提高组模拟Matrix
- (noip 模拟 Matrix)<逃避矩阵乘法的好方法#滑稽>
- JZOJ__Day 1【NOIP普及模拟】MATRIX
- 矩阵的运算 Matrix Operations
- 【Noip模拟】【dp】【LIS】【矩阵快速幂】
- 【2016.10.7NOIP普及模拟】幂运算
- poj 3233 Matrix Power Series(矩阵运算)
- numpy教程:矩阵matrix及其运算
- hdoj Matrix 5671 (矩阵模拟&技巧)
- 【矩阵快速幂+矩阵运算性质】Fast Matrix Calculation HDU
- NOIP模拟题 [线段树][矩阵快速幂]
- [NOIP模拟题][位运算][建模][并查集]
- Noip模拟
- HDU 4965 Fast Matrix Calculation(利用矩阵运算性质)
- MATLAB神经网络视频教程【1】
- TCP定时器相关总结
- String的概述及其构造方法
- 视频监控源码阅读知识基础
- J
- NOIP模拟 Matrix 矩阵运算
- Linux中的中断处理
- mui禁止上拉
- 怎样在ionic2中引入jquery?
- 注解
- JavaScript——对象属性、创建对象、继承、原型链
- 【数据结构】树 的实现代码
- BigData预处理(完整步骤)
- 【洛谷2014】选课