日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hihocoder 1632 : Secret Poems 思维|技巧

發(fā)布時(shí)間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hihocoder 1632 : Secret Poems 思维|技巧 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題意

定義一個(gè)矩陣 他有n*n大小 然后給出他的真實(shí)信息的走法 讓我們變換走法 再次把真實(shí)信息填入矩陣中
n<=100

分析

可以發(fā)現(xiàn)原文的讀取方式無非就是如此
(0,1)向左
(1,-1)左下
(1,0)向下
(-1,1)右上
1邊界檢查
(1,0)向下
(1,-1)左下
(0,1)向左
(-1,1)右上
2退出檢查
觀察發(fā)現(xiàn)其中下和左移動(dòng)都是1步 走斜線都是走到頭
所以可以用邊界檢查控制移動(dòng)方向從而按照對(duì)應(yīng)的移動(dòng)方式還原真實(shí)信息
當(dāng)經(jīng)過1后 發(fā)現(xiàn)剩下的方向就是1處之前的順序 倒著來
那么我們就可以用一個(gè)方向向量表示方向
然后到1處就 逆序遍歷方向向量
注意n的奇偶情況下 路徑不同 但都是在右上或左下 走逆序方向
發(fā)現(xiàn)n為奇數(shù)時(shí) 在右上逆向 n為偶數(shù)在左下逆向 然而分別都是走斜邊到的這一點(diǎn)
那么我們就可以在走斜邊的時(shí)候判斷如果到了這兩點(diǎn) 就把他們方向逆序化0
得到了密文信息 螺旋矩陣輸入就可以了
就是邊界檢查什么的 還有控制移動(dòng)的時(shí)候不好寫 還原信息的過程易出錯(cuò)

#include<bits/stdc++.h> using namespace std; typedef long long ll; char a[105][105],ans[105][105]; int dir[][2] = {{0,1},{1,-1},{1,0},{-1,1}},dir2[][2] = {{0,1},{1,0},{0,-1},{-1,0}}; int main() {int n;while(~scanf("%d",&n)){for(int i=1;i<=n;i++)scanf("%s",a[i]+1);string l;int x=1,y=1,tmp=1;l = a[x][y];//第一個(gè)字符要先加進(jìn)去for(int i=0;;i=(i+tmp+4)%4){//方向變化 為了防止倒方向出現(xiàn)問題 還是再+4if(x==n&&y==n)break; //這句話比較奇怪 加在這里AC 下面的if-else 后面就RE 哪位細(xì)心地網(wǎng)友看出來為何了 可以留言一下if(i%2==0){x+=dir[i][0];y+=dir[i][1];l.append(1,a[x][y]);}else{while(x+dir[i][0]!=0&&x+dir[i][0]<=n&&y+dir[i][1]!=0&&y+dir[i][1]<=n){//邊界判斷用試加法 如果可行再加 因?yàn)橐坏┰浇鐩]有回來的向量x+=dir[i][0];y+=dir[i][1]; l.append(1,a[x][y]);}if((x==1&&y==n)||(x==n&&y==1))tmp=-tmp;//當(dāng)?shù)阶笊匣蛴蚁罗D(zhuǎn)換方向}}int t=0;x=1,y=1;ans[x][y]=l[t++];for(int i=0;t<=n*n-1;i=(i+1)%4){while(t<n*n&&x+dir2[i][0]>0&&y+dir2[i][1]>0&&x+dir2[i][0]<=n&&y+dir2[i][1]<=n&&ans[x+dir2[i][0]][y+dir2[i][1]]==0)ans[x+=dir2[i][0]][y+=dir2[i][1]]=l[t++];} for(int i=1;i<=n;i++)printf("%s\n",ans[i]+1);memset(ans,0,sizeof(ans));memset(a,0,sizeof(a));}return 0; }

總結(jié)

以上是生活随笔為你收集整理的Hihocoder 1632 : Secret Poems 思维|技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。