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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

hdu1287 破译密码

發(fā)布時(shí)間:2025/6/17 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu1287 破译密码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題意:

破譯密碼

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3227 Accepted Submission(s): 1452


Problem Description 有個(gè)叫“豬頭幫”的國(guó)家,采用一種簡(jiǎn)單的文法加密,他們所用的語(yǔ)言里面只有大寫字母,沒有其他任何字符;現(xiàn)在還知道他們加密的方法是:只用一個(gè)大寫字母和原文進(jìn)行異或運(yùn)算生成密文。請(qǐng)你幫忙解開。
Input 有若干組,每組輸入有2行,第一行整數(shù)N表示有N個(gè)密文,接著一行有N個(gè)整數(shù)分別表示N個(gè)密文。
Output 輸出僅有大寫字母組成的原文。

Sample Input 30 17 6 9 8 3 0 1 6 7 4 5 10 11 8 9 14 15 12 13 18 19 16 17 22 23 20 21 26 27 24
Sample Output SDKJABCDEFGHIJKLMNOPQRSTUVWXYZ


?思路:
? ? ? 首先明確一點(diǎn)就是,既然是密碼傳輸,估計(jì)是只能傳輸加密的東西,不能傳輸真實(shí)的東西,所以該題目的測(cè)試數(shù)據(jù)應(yīng)該給的是只有一種破譯方式的數(shù)據(jù),(這個(gè)是我自己猜的,不然沒辦法做,他也沒寫特判),對(duì)于異或 有這樣的規(guī)律 a^b^b = a;所以直接暴力枚舉他的加密異或字母,當(dāng)所有的都是大寫字母的時(shí)候就ok了...沒說(shuō)n多大,我開的是10W

#include<stdio.h> int num[100000]; int ans[100000];int main () { int n ,i ,j;while(~scanf("%d" ,&n)){for(i = 1 ;i <= n ;i ++){scanf("%d" ,&num[i]);}for(i = 1 ;i <= 26 ;i ++){for(j = 1 ;j <= n ;j ++){ans[j] = num[j] ^ i;if(ans[j]<=0 || ans[j] > 26)break;}if(j == n + 1) break;} for(i = 1 ;i <= n ;i ++)printf("%c" ,ans[i] + 64);printf("\n");}return 0; }


總結(jié)

以上是生活随笔為你收集整理的hdu1287 破译密码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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