對於交換行、交換列的操作,分別記錄當前狀態下每一行、每一列是原始陣列的哪一行、哪一列即可。
對每一行、每一列加乙個數的操作,也可以兩個陣列分別記錄。注意當交換行、列的同時,也要交換增量陣列。
輸出時通過索引找到原矩陣中的值,再加上行、列的增量。
複雜度o(q+mn)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
typedef
long
long ll;
using
namespace
std;
#define inf 0x3f3f3f3f
#define n 1010
int a[n][n];
int ans[n][n];
int xh[n],h[n];
int xl[n],l[n];
int main()
memset(xh,0,sizeof(xh));
memset(xl,0,sizeof(xl));
for(int i=1;i<=n;i++)
h[i]=i;
for(int i=1;i<=m;i++)
l[i]=i;
int k,x,y;
for(int i=0;iscanf("%d%d%d",&k,&x,&y);
if(k==1)
else
if(k==2)
else
if(k==3)
else
if(k==4)
}for(int i=1;i<=n;i++)
}for(int i=1;i<=n;i++)
printf("\n");}}
return
0;}
矩陣交換行
問題描述 在main函式中,生成乙個5 5的矩陣,輸入矩陣資料,並輸入n,m的值。判斷n,m是否在陣列範圍內,如果不在,則輸出error 如果在範圍內,則將n行和m行交換,輸出交換n,m後的新矩陣。輸入 5 5矩陣的資料,以及n和m的值。輸出 如果不可交換,則輸出error 如果可交換,則輸出新矩陣...
矩形交換行
描述 給定乙個5 5的矩陣 數學上,乙個r c的矩陣是乙個由r行c列元素排列成的矩形陣列 將第n行和第m行交換,輸出交換後的結果。輸入輸入共6行,前5行為矩陣的每一行元素,元素與元素之間以乙個空格分開。第6行包含兩個整數m n,以乙個空格分開。1 m,n 5 輸出輸出交換之後的矩陣,矩陣的每一行元素...
矩陣交換行
給定乙個5 5的矩陣 數學上,乙個r c的矩陣是乙個由r行c列元素排列成的矩形陣列 將第n行和第m行交換,輸出交換後的結果。輸入共6行,前5行為矩陣的每一行元素,元素與元素之間以乙個空格分開。第6行包含兩個整數m n,以乙個空格分開。1 m,n 5 輸出交換之後的矩陣,矩陣的每一行元素佔一行,元素之...