Ozy 本名岡田佑一,是齣生於日本大阪的一位短碼高手。他花費相當長的時間提升短碼編程技術,進而將其發展成一種技能,曾獲得程序設計大賽的冠軍。他開辦過程序設計方麵的培訓班,目前緻力於數學教育和程序設計師的培養工作。
第1章 入門 1
1.1 引言 2
1.1.1 什麼是短碼編程 2
1.1.2 短碼編程的三要素 3
1.1.3 熱情、聰明的短碼編程者 4
1.1.4 短碼編程者的傳奇 4
1.2 戰場:在綫評分係統 4
1.2.1 什麼是在綫評分係統 4
1.2.2 世界各地的在綫評分係統 4
1.2.3 PKU Judge Online 5
1.3 動手試試:短碼編程的基礎 6
1.3.1 編程環境 6
1.3.2 使用的編程語言和編譯器 6
1.3.3 注冊POJ賬號 6
1.3.4 基本規則 7
1.3.5 微妙的規則 8
1.3.6 道德上的規則 8
1.4 熱身 10
1.4.1 關於運行環境 10
1.4.2 首先從簡單的加法運算開始 10
1.4.3 不簡單加法運算 16
1.4.4 計算平均值 21
1.4.5 推齣重疊的牌 24
1.4.6 開始模仿編程 28
1.4.7 熱身結束 31
第2章 必讀!絕妙技巧 33
2.1 精通規則 34
2.1.1 醉漢看守 34
2.1.2 階段 43
2.1.3 連續數的和 49
2.2 Quick Sort Hack 55
2.2.1 快速排序 55
2.2.2 qsort函數 55
2.2.3 Hack風暴 56
2.2.4 挑戰變態排序一 58
2.2.5 挑戰變態排序二 65
2.2.6 永遠的Hack 69
2.3 熟練運用庫函數 69
2.3.1 方便的庫函數 69
2.3.2 好用的strtol函數 74
2.3.3 strtol與itoa天生一對 77
2.3.4 轉換樂園 82
2.3.5 海狸啃木頭 84
2.3.6 係繩 87
2.4 精減1字節的靠山 91
2.4.1 好用的~運算符 91
2.4.2 好用的%運算符 94
2.4.3 分組建立長期政權 99
2.4.4 ISBN碼 106
2.4.5 非常活躍的數學問題 110
2.5 按位運算的超級魔法 114
2.5.1 超級魔法的二叉樹 114
2.5.2 超級魔法的密碼 119
2.5.3 超級魔法的極緻 123
2.6 精通指針 129
2.6.1 短碼編程中的指針 129
2.6.2 鏇轉拼圖的智力遊戲 130
2.6.3 超長加法 135
2.6.4 指針和數組的密切關係 138
2.7 數學問題 142
2.7.1 不要依賴公式 142
2.7.2 越界(數列篇) 143
2.7.3 越界(排列組閤篇) 146
2.7.4 與周期有關的問題 150
2.7.5 僞隨機數的周期性 151
2.7.6 三個周期 153
2.7.7 斐波那契數列 158
2.8 活用算法 163
2.8.1 高速、節省內存是編寫短碼的關鍵 163
2.8.2 三角形 163
2.9 數字的新常識 171
2.9.1 關鍵在“三” 171
2.9.2 整理電話號碼 176
2.10 字節的熱情 184
2.10.1 附上答案 184
2.10.2 漢諾塔 184
第3章 短碼編程研究 193
3.1 更高的編程技巧 194
3.1.1 開始 194
3.1.2 關於錶示法 194
3.2 精簡循環 194
3.2.1 精通之後就能成為頂尖的短碼編程者 194
3.2.2 簡單的例子 195
3.2.3 常用結構 197
3.2.4 短碼編程的基本類型 197
3.2.5 重要的短碼語法 199
3.2.6 取數字遊戲 200
3.2.7 葡萄酒買賣 202
3.2.8 難解:精簡多層循環 204
3.3 強大的擴展語法 208
3.3.1 對短碼編程者有用的擴展語法 208
3.3.2 條件運算符 208
3.3.3 數字根 209
3.3.4 擴展左值 212
3.3.5 擴展關係運算符 213
3.4 宏能不能縮短代碼 213
3.4.1 基於短碼編程的宏 213
3.4.2 while語句的可能性 214
3.4.3 數組的可能性 217
3.5 神奇的main遞歸 219
3.5.1 main遞歸可以最大限度地縮短代碼 219
3.5.2 從單純循環到main遞歸 219
3.5.3 破解難題的main遞歸 220
3.5.4 基於遞歸算法的main遞歸 232
3.5.5 傳說中的1145 233
3.5.6 小結 239
3.6 Quick Sort HackⅡ 240
3.6.1 徵服二進製等於徵服短碼編程 240
3.6.2 縮短匯編代碼 244
3.6.3 進一步縮短 248
3.7 作弊代碼和安全性 251
3.8 挑戰難題 254
3.8.1 短碼編程的靈魂 254
3.8.2 組成最強陣容 254
第4章 語言對決 277
4.1 短碼編程不限語言 278
4.1.1 各種程序設計語言 278
4.1.2 本章結構 278
4.2 Java與C 278
4.2.1 Java是有缺陷的程序設計語言 278
4.2.2 使用Java的地方 279
4.2.3 多精度時就交給Java 279
4.2.4 C語言仍然強大 285
4.3 Pascal與C 292
4.3.1 遇到麻煩的Pascal語言 292
4.3.2 用Pascal寫齣比C語言更短的代碼 293
4.3.3 復利計算 293
4.4 C++與C 294
4.4.1 不經常使用的C++ 294
4.4.2 基本技巧 295
4.4.3 檢查順序 296
4.4.4 G++擴展運算符與變態GCC源代碼的對比 299
4.5 更多的挑戰 306
4.5.1 成為一名真正的短碼編程者 306
4.5.2 世界各地的短碼編程者的活動 306
4.5.3 挑戰Code Golf 307
4.5.4 嘗試用所有語言編寫短碼 312
第5章 磨練自己 313
5.1 緻親愛的讀者 314
5.1.1 嚮短碼編程者學習 314
5.1.2 源代碼的可讀性 314
5.1.3 希望寫齣錯誤少的程序 315
5.1.4 更大程度地提高 316
5.1.5 有人情味、富有魅力 317
5.2 珍貴的參考資料 318
5.2.1 珍貴的書籍 318
5.2.2 網站介紹 323
5.3 精明強乾的短碼編程者 325
5.3.1 緻謝 325
5.3.2 短碼高手們(敬稱略,按字母順序) 325
5.4 最後 327
附錄 331
A.1 問題一覽 332
A.2 ASCII碼錶 337
A.3 運算符的優先級與結閤規則 338
· · · · · · (
收起)
樣章試讀:
http://www.china-pub.com/computers/common/mianfeisd.asp?id=197616
本書主要介紹短碼編程,首先介紹瞭短碼編程的三要素:數據結構和算法、執行環境以及短碼編程的精神。書中以北京大學的PKU Judge Online 在綫評分係統為編程環境,選取瞭該係統中比較典型的問題,如海狸啃木頭、鏇轉拼圖、葡萄酒買賣,利用數據結構和算法的知識加以分析,最 後編程實現,並嘗試使用各種編程語言,不斷地將源代碼縮短。同時還介紹並分析瞭一些鑽安全漏洞的代碼,旨在通過短碼編程幫助程序員集中注意力,鍛煉忍耐力,開拓視野。
本書適閤所有對短碼編程感興趣的人。
短碼之美 下載 mobi epub pdf txt 電子書 格式
評分
☆☆☆☆☆
##看瞭樣章瞭. 譯者還算閤格, 當然在偶看來譯的並不好. 這封麵 ACM 寫成 AMC 瞭? :D 瞧乾瞭件什麼事這是... 看在原作者的份上三星. 書店站讀非預覽部分, 樣章果然是相對比較無用的部分, 方法實際是相當巧妙的. see also https://github.com/jed/140bytes/wiki/Byte-saving-techniques
評分
☆☆☆☆☆
評分
☆☆☆☆☆
##隻是看瞭china-pub的第3章試讀的開頭一點。
評分
☆☆☆☆☆
POJ AMC是神馬
評分
☆☆☆☆☆
##look,邪教來瞭
評分
☆☆☆☆☆
評分
☆☆☆☆☆
評分
☆☆☆☆☆
##偶然在廣州圖書館看到這本書,看瞭前邊幾章覺得短碼太變態瞭,以前在做一些ACM題目時確實用到一些技巧,但是沒有作者說的那麼變態。當然作者要倡導的想法是在code過程追求極緻,而不是真的在生産環境放這麼難懂的代碼,不過後邊找瞭盜版的pdf看,沒什麼感覺,也略顯枯燥。 僅舉第一章的一例: PKU 3062 Celebrity jeopardy http://poj.org/problem?id=3062 做法就是輸入什麼輸齣什麼. 書中給的最短代碼是 main(){for(;gets();)puts();} GCC提交纔能AC 之後還有main函數遞歸,cmp函數寫成字符串形式... 很多人批評代碼不易維護等等,可以在這明確說明,...
評分
☆☆☆☆☆