總時間限制: 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...