程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 百練 2819 W的密碼 解題報告

百練 2819 W的密碼 解題報告

編輯:C++入門知識

1.Link:http://poj.grids.cn/practice/2819/

2.content

總時間限制:
1000ms
內存限制:
65536kB
描述
加密一條信息需要三個整數碼, k1, k2 和 k3。字符[a-i] 組成一組, [j-r] 是第二組, 其它所有字符 ([s-z] 和下劃線)組成第三組。 在信息中屬於每組的字符將被循環地向左移動ki個位置。 每組中的字符只在自己組中的字符構成的串中移動。解密的過程就是每組中的字符在自己所在的組中循環地向右移動ki個位置。
例如對於信息 the_quick_brown_fox 以ki 分別為 2, 3 和 1藹進行加密。加密後變成 _icuo_bfnwhoq_kxert。下圖顯示了右旋解密的過程。



觀 察在組[a-i]中的字符,我們發現{i,c,b,f,h,e}出現在信息中的位置為{2,3,7,8,11,17}。當k1=2右旋一次後, 上述位置中的字符變成{h,e,i,c,b,f}。下表顯示了經過所有第一組字符旋轉得到的中間字符串,然後是所有第二組,第三組旋轉的中間字符串。在一 組中變換字符將不影響其它組中字符的位置。



所有輸入字符串中只包含小寫字母和下劃線(_)。所有字符串最多有償服務0個字符。ki 是1-100之間的整數。
輸入
輸入包括一到多組數據。每個組前面一行包括三個整數 k1, k2 和 k3,後面是一行加密信息。輸入的最後一行是由三個0組成的。
輸出
對於每組加密數據,輸出它加密前的字符串。
樣例輸入
2 3 1
_icuo_bfnwhoq_kxert
1 1 1
bcalmkyzx
3 7 4
wcb_mxfep_dorul_eov_qtkrhe_ozany_dgtoh_u_eji
2 4 3
cjvdksaltbmu
0 0 0

樣例輸出
the_quick_brown_fox
abcklmxyz
the_quick_brown_fox_jumped_over_the_lazy_dog
ajsbktcludmv

3.code

 #include <iostream>
 #include <cstdlib>
 #include <cstdio>
 #include <cstring>
     MAX =   map[] =        
     
      ks[               
      sum =      ( i = ; i < ; i++          cin>>         sum +=      
               
         cin.         cin>>         
                   length =         ( i = ; i < ; i++  
              k =              ( j = ; j < length; j++                  ch =                 (ch == ) ch = ch -  +  +                  
                 (i == (map[ch - ] -                       outstr[k++] =               
             
                               instr2[outstr[(( + ks[i]) % k)]] = instr[outstr[                 ( j = ; j < k; j++                      instr2[outstr[j]] = instr[outstr[(j - ks[i] + k*ks[i]) %               instr2[length] =           
 
         cout<<instr2<<         
         sum =          ( i = ; i < ; i++              cin>>             sum +=       
     
       }

4.method

1. bad code

2.need the new array to save result

3.didn't say the string length,so I guess less than 10000

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved