25 螺旋加密

2021-09-27 10:03:55 字數 1316 閱讀 3346

總時間限制: 1000ms 記憶體限制: 65536kb

描述chip和dale發明了一種文字資訊加密技術。他們事先秘密約定好矩陣的行數和列數。接著,將字元按如下方式編碼:

所有文字只包含大寫字母和空格。

每個字元均賦予乙個數值:空格=0,a=1,b=2,……,y=25,z=26。

按照下圖所示的方式,將每個字元對應數值的5位二進位制數依次填入矩陣。最後用0將矩陣補充完整。例如,對於資訊「acm」,行列數均為4時,矩陣將被填充為:

將矩陣中的數字按行連起來形成數字串,完成加密。例子中的資訊最終會被加密為:0000110100101100。

輸入一行。首先是兩個整數r(1≤r≤20)和c(1≤c≤20),表示行數和列數。之後是乙個只包含大寫字母和空格的字串。字串的長度≤(r*c)/5。r和c之間以及c和字串之間均用單個空格隔開。

輸出一行,為加密後的二進位制串。注意你可能需要用0將矩陣補充完整。

樣例輸入

4 4 acm

樣例輸出

0000110100101100

#include

using

namespace std;

intmin

(int x,

int y)

//取最小值

intmain()

else

for(k=

1;k<=

5;k++

) a[i*

5+k-1]

=c[k];}

for(i=leng*

5;i) a[i]=0

;//往a裡賦值

for(i=

0;i<

21;i++

)for

(j=0

;j<

21;j++

) b[i]

[j]=2;

//初始化陣列b

int z;

z=min(x,y)/2

+1; i=

0,j=

0,k=0;

while

(z--

)while

(iwhile

(j>=0)

while

(i>0)

//四個while決定了螺旋

}for

(i=0

;i)for

(j=0

;j)printf

("%d"

,b[i]

[j])

;//輸出

return0;

}

1050 螺旋矩陣 25

測試點2與6沒過 主要的點是 1 求得m與n,這個我是從1到一直到數的一半試的 2 構造螺旋矩陣,使用的是一圈一圈的方法,就是先把最外面的一圈填上,然後再填裡面的一圈,對於最後可能剩下的單獨一列,則是使用的列表是否為空來判斷,因為我把排好序的元素從列表中乙個個的彈出,然後放到矩陣中。未完待續。imp...

1050 螺旋矩陣 25

1050.螺旋矩陣 25 本題要求將給定的n個正整數按非遞增的順序,填入 螺旋矩陣 所謂 螺旋矩陣 是指從左上角第1個格仔開始,按順時針螺旋方向填充。要求矩陣的規模為m行n列,滿足條件 m n等於n m n 且m n取所有可能值中的最小值。輸入格式 輸入在第1行中給出乙個正整數n,第2行給出n個待填...

7 7 螺旋方陣 (25 分

所謂 螺旋方陣 是指對任意給定的n,將1到n n的數字從左上角第1個格仔開始,按順時針螺旋方向順序填入n n的方陣裡。本題要求構造這樣的螺旋方陣。輸入在一行中給出乙個正整數n 10 輸出n n的螺旋方陣。每行n個數字,每個數字佔3位。51 2 3 4 5 16 17 18 19 6 15 24 25...