g題卡片帶師
本次森崗杯的G題
我打了一個多小時,終於ac了;
吐了
題目描述
桌上有一張卡片,卡片是一個N * N的網格,每個網格正反兩面都包含一個整數。開始卡片被正面朝上放在桌上,請你判斷在執行
下列若干次操作之後卡片中網格的數字分佈:
操作1:1 x y val 表示將第x行,第y列數字修改為val,只修改當前正面朝上的元素。(1 <= x, y <= n)
操作2:2 x y 將卡片第x行和第y行交換。(x, i) <–> (y, i)其中(1 <= i <= n)。(1 <= x, y <= n)
操作3:3 x y 將卡片第x列和第x列交換。(i, x) <–> (i, y)其中(1 <= i <= n)。(1 <= x, y <= n)
操作4:4 將卡片翻轉,正面變反面,反面就會變成正面。
操作5:5 將卡片順時針旋轉90度。
操作6:6 將卡片順時針旋轉180度。
操作7:7 將卡片順時針旋轉270度。
注意:每個網格正反兩面都是一個整體,在交換,旋轉過程中其背面元素是跟著正面元素改變位置的。
輸入描述:
輸入第一行包含兩個整數n, m。表示卡片網格大小和操作次數。
然後跟n行,每行n個整數,表示卡片的正面n * n網格
然後跟n行,每行n個整數,表示卡片的反面n * n網格。
然後跟m行,每行一個操作指令。
輸出描述:
在m個操作指令執行之後,輸出答案。
輸出前n行,每行n個整數,表示卡片的正面。
然後再輸出n行,每行n個整數,表示卡片的反面。
示例1
輸入
複製
3 7
1 2 3
4 5 6
7 8 9
7 8 9
4 5 6
1 2 3
1 1 3 0
2 1 3
3 2 3
4
5
6
7
輸出
複製
8 9 7
5 6 4
2 3 1
2 0 1
5 6 4
8 9 7
說明
正面 反面
1 2 3 7 8 9
4 5 6 4 5 6
7 8 9 1 2 3
在執行1 1 3 0之後:
正面 反面
1 2 0 7 8 9
4 5 6 4 5 6
7 8 9 1 2 3
在執行2 1 3之後:
7 8 9 1 2 3
4 5 6 4 5 6
1 2 0 7 8 9
在執行3 2 3之後:
7 9 8 1 3 2
4 6 5 4 6 5
1 0 2 7 9 8
在執行4之後:
1 3 2 7 9 8
4 6 5 4 6 5
7 9 8 1 0 2
在執行5之後:
7 4 1 1 4 7
9 6 3 0 6 9
8 5 2 2 5 8
在執行6之後:
2 5 8 8 5 2
3 6 9 9 6 0
1 4 7 7 4 1
在執行7之後:
8 9 7 2 0 1
5 6 4 5 6 4
2 3 1 8 9 7
備註:
1 <= n, m, val <= 100
程式碼如下
#include<iostream>
#include<algorithm>
using namespace std;
const int N=105;
int n,m;
int a[N][N];//正面
int b[N][N];//反面
//方案一
void fan_1(int x,int y,int val){
a[x][y]=val;
}
//方案二
void fan_2(int x,int y){
int c[N];int d[N];
for(int i=0;i<n;i++) c[i]=a[x][i],d[i]=b[x][i];
for(int i=0;i<n;i++) a[x][i]=a[y][i],b[x][i]=b[y][i];
for(int i=0;i<n;i++) a[y][i]=c[i],b[y][i]=d[i];
}
//方案三
void fan_3(int x,int y){
int c[N];int d[N];
for(int i=0;i<n;i++) c[i]=a[i][x],d[i]=b[i][x];
for(int i=0;i<n;i++) a[i][x]=a[i][y],b[i][x]=b[i][y];
for(int i=0;i<n;i++) a[i][y]=c[i],b[i][y]=d[i];
}
void fan_4(){
int c[N][N];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
c[i][j]=a[i][j];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
a[i][j]=b[i][j];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
b[i][j]=c[i][j];
}
//方案五
void fan_5(){
int c[N][N];int d[N][N];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
c[i][j]=a[n-j-1][i];
d[i][j]=b[n-j-1][i];
}
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
a[i][j]=c[i][j];
b[i][j]=d[i][j];
}
}
//方案六
void fan_6(){
int c[N][N];int d[N][N];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
c[i][j]=a[n-i-1][n-j-1];
d[i][j]=b[n-i-1][n-j-1];
}
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
a[i][j]=c[i][j];
b[i][j]=d[i][j];
}
}
//方案七
void fan_7(){
int c[N][N];int d[N][N];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
c[i][j]=a[j][n-i-1];
d[i][j]=b[j][n-i-1];
}
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
a[i][j]=c[i][j];
b[i][j]=d[i][j];
}
}
int main(){
cin>>n>>m;
//輸入正反數
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>a[i][j];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>b[i][j];
//執行操作
for(int i=0;i<m;i++){
int f_a;
cin>>f_a;//執行方案輸入
//到底是用swith還是級聯,我選擇swith;
int x,y,val;
switch(f_a){
case 1:
cin>>x>>y>>val;fan_1(x-1,y-1,val);break;
case 2:
cin>>x>>y;fan_2(x-1,y-1);break;
case 3:
cin>>x>>y;fan_3(x-1,y-1);break;
case 4:
fan_4();break;
case 5:
fan_5();break;
case 6:
fan_6();break;
case 7:
fan_7();break;
}
}
//輸出正面
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cout<<a[i][j]<<(j!=n-1?" ":"\n");
//輸出反面
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cout<<b[i][j]<<(j!=n-1?" ":"\n");
return 0;
}
一個萌新的無奈,只會用這種笨辦法0.0
還不是會長非要叫我打
我才懶得打
相關文章
- P2192 HXY玩卡片 題解
- 【10.24 牛客普及(四)】 卡片 題解
- 5G,將給我們程式設計師帶來哪些機會?程式設計師
- card 卡片 htmlHTML
- 【需求解決系列之一】移動卡片實現答題功能
- 卡片瀑布流實現
- scrum看板工具卡片管理Scrum
- ai老師帶我飛AI
- CodeForces Ruler (1999G1&G2) 題解
- 抖音私信卡片,訊息卡片連結圖文私信名片製作方法
- 5G帶給我們的機會
- 卡片盒筆記法筆記
- 卡片旋轉動畫效果動畫
- uva10935卡片遊戲遊戲
- 2019情人節送花卡片怎麼寫?2019送花卡片內容簡短表白語
- 程式設計師筆記|3個問題帶你入門資料建模程式設計師筆記
- (乾貨)記前端工程師面試題,一起帶大家理一理前端工程師面試題
- CF2004G 題解
- ABC367G 題解
- 題解:CF1926G
- CF1530G 題解
- [題解]AT_abc281_g [ABC281G] Farthest City
- AT_abc343_G [ABC343G] Compress Strings 題解
- 【分享】 一款自用的Anki卡片模板:黃子涵單詞卡片 v1
- uniapp自定義卡片輪播圖APP
- 技術卡片 - 不要使用 else
- Flutter 可拖拽的層疊卡片Flutter
- Unity-卡片迴圈滾動Unity
- Dynamics NAV 2018物料卡片Manufacturing Policy
- 卡片跳轉快應用指定頁面,如何點返回直接退出快應用回到卡片
- 電子工程師資料合集2.38G工程師
- AT_abc216_g [ABC216G] 01Sequence 題解
- AT_abc287_g [ABC287G] Balance Update Query 題解
- AtCoder Beginner Contest 350 A - G 題解
- CF717G Underfail 題解AI
- 題解:AT_abc367_g [ABC367G] Sum of (XOR^K or 0)
- AT_abc287_g [ABC287G] Balance Update Query 題解2
- 騰訊大牛帶你上路 AI 工程師AI工程師