查看: 1675|回復: 5
打印 上一主題 下一主題

[TOJ] 64 - E.風聲

[複製鏈接]
  • TA的每日心情
    慵懶
    2015-4-10 14:18
  • 簽到天數: 78 天

    [LV.6]常住居民II

    176

    主題

    612

    帖子

    3959

    積分

    管理員

    Rank: 9Rank: 9Rank: 9

    積分
    3959

    台南一中資訊社新手達陣程式設計達人 - 2014

    跳轉到指定樓層
    樓主
    發表於 2014-5-28 17:05:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

    趕快加入我們來參與討論吧!

    您需要 登錄 才可以下載或查看,沒有帳號?加入我們

    x
    原題:http://toj.twbbs.org/oj/pro/64/
    AC:http://toj.twbbs.org/oj/chal/2151/

    [youtube]doBxbVJctgM[/youtube]


    解題方法:
    關鍵概念:XOR的運算。

    考慮XOR的運算規則:
    交換律:[tex]A%20%5Coplus%20B%20%3D%20B%20%5Coplus%20A[/tex]
    消除律:[tex]A%20%5Coplus%20A%20%3D%200[/tex]
    衡等律:[tex]A%20%5Coplus%200%20%3D%20A[/tex]

    已知:TA、TAB、TB。解法如下:
    1.對TA,TAB作XOR,可以得B,因為消去律,T跟A都被消除為0,而B因衡等律保留下來,此動作又稱為互反
    2.將求得的B,與TB再做XOR,可以得原文T,輸出即是答案。

    解題狀況:
    許多人對於16進位與char的轉換很有困難,許多人解出的答案如下:

    ABA2C56FA741A66EB6DCB04AA4DFB750C1C2ACC3ADABA641A8A3B4C1ABDDA641ACDBB37B

    苦主 EX:
    http://toj.twbbs.org/oj/chal/2550/
    http://toj.twbbs.org/oj/chal/2544/

    其實只要你把這一個16進放入char陣列,輸出就會得到答案。或許留社就差這一步,真是可惜!

    @把16進位放到char陣列
  • #include<cstdio>
  • using namespace std;
  • int main()
  • {
  •     char op[]={     0xAB,0xA2//哈
  •                 ,0xC5,0x6F//囉
  •                 ,0xA7,0x41//你
  •                 ,0xA6,0x6E//好
  •                 ,0xB6,0xDC//嗎
  •                 ,0xB0,0x4A//衷
  •                 ,0xA4,0xDF//心
  •                 ,0xB7,0x50//感
  •                 ,0xC1,0xC2//謝
  •                 ,0xAC,0xC3//珍
  •                 ,0xAD,0xAB//重
  •                 ,0xA6,0x41//再
  •                 ,0xA8,0xA3//見
  •                 ,0xB4,0xC1//期
  •                 ,0xAB,0xDD//待
  •                 ,0xA6,0x41//再
  •                 ,0xAC,0xDB//相
  •                 ,0xB3,0x7B//逢
  •                 ,0x00};//'\0'
  •     puts(op);
  • }

  • 標程:

    #include<cstdio>
  • int main(){
  • puts("哈囉你好嗎衷心感謝珍重再見期待再相逢");
  • }





  • 回復

    使用道具 檢舉

  • TA的每日心情
    開心
    2014-8-14 16:02
  • 簽到天數: 1 天

    [LV.1]初來乍到

    12

    主題

    138

    帖子

    863

    積分

    高級會員

    Rank: 4

    積分
    863

    台南一中資訊社新手達陣

    頭香
    發表於 2014-5-28 19:07:25 | 只看該作者
    大家加油呀~這最多只有南區賽水題的等級而已阿

    點評

    5.本版除解題文之外,禁止回復,對解法之意見請使用點評或至發問區中提問,違者最重單板禁貼。  發表於 2014-5-30 23:15
    回復 支持 反對

    使用道具 檢舉

  • TA的每日心情
    開心
    2015-4-12 10:09
  • 簽到天數: 137 天

    [LV.7]常住居民III

    142

    主題

    686

    帖子

    3559

    積分

    邁向天堂

    蘇多門

    Rank: 8Rank: 8

    積分
    3559

    新手達陣台南一中資訊社程式設計達人 - 2014

    3#
    發表於 2014-5-30 22:08:25 | 只看該作者
    第一個code會wa

    點評

    5.本版除解題文之外,禁止回復,對解法之意見請使用點評或至發問區中提問,違者最重單板禁貼。  發表於 2014-5-30 23:15
    Linux下的字元集是UTF-8,與Windows下的BIG5不同,要使用local的字串形式讓編譯器自動編碼才不會WA  發表於 2014-5-30 23:06
    蘇多門 domen111
    My Web: https://sites.google.com/site/domenprg/
    回復 支持 反對

    使用道具 檢舉

    您需要登錄後才可以回帖 登入 | 加入我們

    本版積分規則

    快速回覆 返回頂部 返回列表