Archive for 生活志

Authentic Happiness 读书总结

0. 缘起

始于3月31日的凌晨,止于4月6日的黄昏,我投入地阅读了这本名为 Authentic Happiness (台译《真实的快乐》)的书,它的主题是“积极心理学 (Positive Psychology)”(另译“正向心理学”或“正面心理学”,不过我更喜欢“积极”这种提法)。

我对心理学的了解开始于高中时阅读的《精神分析引论》《梦的解析》等弗洛伊德的著作,在读这本书以前也大体上局限于他创立的精神分析学派。可是后来我逐渐意识到,弗氏的学说固然有其历史意义(也许也蕴含有限的现实意义),但是把它作为一种指导个人生活的思想,却是我犯下的一个极大的错误。(我最近购买了《弗洛伊德批判》一书,打算藉此进一步清除心中的流毒,也许等我读完会专门撰文展开。)

最早了解到 Martin Seligman 这位学者以及他参与创立的“积极心理学”这一心理学分支,是在他以此为题的一次 TED 演讲中(顺便强烈推荐下 TED.com,绝对是开阔眼界提升思想的大宝库)。当即我就在 Kindle Store 上购买了他的书并放入 to-read 列表,不过直到最近完结掉其它好几本书以后才终于开始阅读,初读一两章便相见恨晚。这是一本让我感到思想被颠覆的书,这种感觉在我的读书历程中极其罕见。读的过程中,我在 Evernote 软件里用英文做了几十K的摘抄和笔记,以下是我整理那些笔记时用自己的话复述全书的读书总结。

(需要注明的是,本书第11、12两章,特别地讲了积极心理学在“Love”和“Raising Children”两个方面的应用,我在读的时候跳过了。因为这两方面的快乐,一个我当前足够满足,另一个则还为期遥远。为了看上去更有体系,话题相近的第10章“Work and Personal Satisfaction”也被略过了,也就是说完全没有总结 Positive Institution 这个话题。)

1. 基本问题

心理学的中心话题一度主要是关于如何治疗心理疾病 (mental illness) 的(这也正是弗洛伊德作为一名心理医师 (psychiatrist) 的切入角度),而积极心理学则聚焦于如何使正常人拥有更好的生活。事实上,即便从心理疾病的角度去考虑,积极心理学也提供了有效的预防手段。积极心理学期望的成果是快乐 (happiness or wel-being),研究对象包括积极的情感 (positive emotions)、积极的特质 (positive traits) 和积极的组织 (positive institution),这也正是本书的三个部分分别所讲述的。

什么是快乐呢?这个问题并不仅仅是简单的享乐主义理论 (simple hedonic theory) 能解释的。快乐也并不仅仅是快乐的感觉 (feelings)。简单的享乐是能引发快乐的“快捷方式” (shortcuts) ,但并不能带来真正的快乐。践行自己的优势和品德 (the exercise of strengths and virtues) 带来的快乐,才是真实的快乐。(本文以观点的总结为主,作者的这些观点在书中都有精采的论述和例证作为支撑,这里就不详述了。)

人为什么要寻求快乐呢?这也许是一个无需回答的问题,不过作者仍然在书中给出了为啥要快乐的科学证据:人的快乐程度与健康长寿、美满婚姻、事业成就都有显著的相关性 (correlation),例如有一个很有趣的例子是,在毕业照中真笑 (Duchenne smile) 的人比假笑的人日后拥有更美满的婚姻。同时研究表明更多的快乐直接导致了 (caused) 更高的生产力 (productivity) 和收入。

另一个值得回答的问题是:为何进化过程中发展出了快乐呢?负面情绪和积极情绪又分别是怎样产生的呢?答案是:负面情绪对于赢得进化中非赢即输的胜负游戏 (win-loss game) 有帮助,例如猎物对捕食者的恐惧情绪;而积极情绪则促进了生物个体应用双赢的局面 (win-win encounter),例如爱情的甜蜜和抚养下一代的满足感。换句话说,负面情绪和积极情绪分别标志着潜在的胜负游戏和双赢局面。

人的快乐能否通过人为干预而持久地 (lastingly) 提升呢?这个问题的答案并不显而易见。暂时地提升快乐水平是简单可行的(例如一份礼物,一场郊游,或一次高潮),但这种提升不能持续,例如研究表明彩票中大奖的人主观感受到的快乐程度会逐渐回落到原来的水平。积极心理学的研究认为,持久地提升人的快乐水平是可以做到的,并给出了如何做到的答案。

2. 积极情绪

持续的快乐水平 (enduring level of happiness) 由三个因素决定:个人可达到的快乐的区间 (set range),外部环境 (circumstances),以及你能自发控制的因素 (factors under your voluntary control)。研究表明你的快乐水平可能达到的最高上限和最低下限很大程度上是由基因决定的。外部环境因素也不同程度地决定了快乐与否,例如婚姻、丰富的社会生活 (social life)、所处组织 (institution) 的整体氛围等;自己主观认定的(而非客观衡量的)健康程度等因素也和快乐有很大相关性。可以自发控制的因素可分为三个方面:对过去的满足 (satisfaction about the past),对未来的乐观 (optimism about the future),和当下的快乐 (happiness in the present)。关于过去、现在和未来的三种积极情绪是不同的,且并不一定紧密相联。

提升对过去的满足情绪的唯一办法是重写 (rewrite) 自己的过去,手段包括:摒弃过去对于未来的决定论的思想体系;增强对于美好记忆的感恩之心;学会宽宥过去的错误。

对未来的乐观和悲观体现在两个方面:永久性 (permanence) 和普遍性 (pervasiveness),分别对应于时间和空间。永久性是指相信过去的事件是持续的 (persistent),导致事情发生的原因是由于个人的特质和能力。普遍性指对事情的发生做出普适的 (universal) 解释。于是,乐观和希望就是,对好事的来临做出永久和普适的解释,同时对不幸的事件找到暂时的 (temporary) 和专门的 (specific) 原因。

要知道自己以为确实的事情 (beliefs) 可能并非事实真相 (facts),我们做出的关于我们自己的判断可能是错误的。克服悲观情绪需要有意识地和自己的悲观想法争辩,辨认出这些想法,可以想象他们是出自一个专门和自己作对的敌人之口。做自我争辩 (self-disputation) 的方法包括:用证据来证明悲观想法在事实上的错误;对令人悲观的事情找到其它的原因来解释,这种原因应该是可改变的 (changeable)、专门的且并非针对个人的;做出现实的推断 (realistic implications),不偏向持续的或普适的解释;确定该想法是否有用,思索是否能够改变,如何做出改变,排除与此无关的无用的想法。有必要将有效的自我争辩的记录书写保存下来。

当下的快乐包括两个层面:享乐 (pleasures) 和满足 (gratifications)。享乐是指纯粹的感觉 (raw feels),如陶醉忘我 (ecstasy)、惊险刺激 (thrill)、性高潮 (orgasm) 等。这种感觉是短暂易逝的 (evanescent),而且极少或根本没有牵扯到思维。加强享乐感觉的方法有三种:避免习惯化 (habituation),就是要让特定种类的享乐感觉之间相隔较长的时间;细细品味 (savoring);留心观察 (mindfulness)。

3. 心流中的满足

享乐和满足之间的不同在于,享乐有关感觉和情绪 (senses and emotions),而满足则侧重于展现个人的优势和品德 (strengths and virtues)。这种满足的状态表现为完全沉浸于心流 (flow) 中,专注 (immersion) 代替了意识 (couciousness),情绪则完全不存在。这正是愉快的生活 (pleasant life) 与美好生活 (good life) 的分野。

心流 (flow) 的组成部分包括:有挑战性、需要技巧的事务;我们的专注;清晰的目标;即时的反馈 (feedback);深入而应付自如的参与 (deep, effortless involvement);控制感 (sense of control);自我的感觉 (sense of self) 消失不见;时间停止了。──过程中并没有积极情绪的参与,心流的核心正是情绪与意识的缺失。

这里可以引入心灵资本 (psychological capital) 的概念:享乐是心灵资本的消费,而心流中的满足则是心灵资本的投资。享乐标志着生理满足的成就 (achievement of biological satiation),而满足则标志心灵成长的成就 (achievement of psychological growth)。

那些抱着电视不放的人 (couch potato) 注视屏幕时的精神状态实际上普遍是轻度的抑郁 (mildly depressive)。当今社会抑郁 (depression) 的蔓延可解释为对快乐的“快捷方式”的过度依赖,这种自我专注 (self-absorption) 是心流和满足的反面,产生了一整代以自己一时感觉为先的自恋者 (a generation of narcissists whose major concern is with how they feel)。

为何人们宁愿选择享乐甚至不快 (displeasure) 也不选择满足的心境呢?因为享乐来得容易,而赢得满足是艰难的。满足产生心流,但这个过程需要技巧和努力,会遇到挑战,存在失败的可能性。

不要问“怎样才能快乐” (How can I be happy) 了,问自己“怎样才是美好的生活” (what is the good life) 吧。

(第七章讲gratifications的后半部分是本书重要的关节,也是给我启示最大的地方。这里的总结尚失全面,亟待补充。)

4. 优势和品德

对优势和品德 (strengths and virtues) 进行研究的目的是建立一个广泛认同的分类系统(类似于 DSM-III 之类精神疾病的分类系统)。入选分类的人格特质应该尽量普适 (universal),在迥异的文化和历史的不同阶段中得到广泛的 (ubiquitous) 体现。

品德被分为六种:智慧和知识 (wisdom and knowledge),勇气 (courage),爱与人性 (love and humanity),公义 (justice),坚忍 (temperance),超越 (transcendence)。每种品德都有若干实现的途径 (way to achieve),这也就是不同的人格优势 (strengths of character),分为24种。

(各个人格优势的名称主要根据本书作者的另一本书 Character Strengths and Virtues, A Handbook and Classification 进行表述,分类和遣词有不同但无本质差别。)

智慧方面的优势包括:1. 创造力 (Creativity);2. 好奇心 (Curiosity);3. 开放思维 (Open-Mindedness);4. 热爱学习 (Love of Learning);5. 洞察力 (Perspective)。

勇气方面的优势包括:6. 英勇 (Bravery);7. 耐心 (Persistence);8. 真诚 (Integrity);9. 活力 (Vitality)。

人性方面的优势包括:10. 爱和被爱 (Love and Be Loved);11. 仁慈 (Kindness);12. 社交智慧 (Social Intelligence)。

公义方面的优势包括:13. 公民精神 (Citizenship);14. 公正 (Fairness);15. 领导才能 (Leadership)。

坚忍方面的优势包括:16. 宽恕和慈悲 (Forgiveness and Mercy);17. 谦恭及虚心 (Modesty and Humility);18. 小心谨慎 (Prudence);19. 自控 (Self-Regulation)。

超越方面的优势包括:20. 对卓越事物的欣赏 (Appreciation of Beauty and Excellence);21. 感恩 (Gratitude);22. 希望 (Hope);23. 幽默 (Humor);24. 精神感悟 (Spirituality)。

个人的优势可作为薄弱之处 (weaknesses) 的缓冲 (buffer)。而尤为重要的是个人的显著优势 (signature strengths),这些优势你能快速习得、灵活运用,这些优势给你真实拥有的感觉,运用这些优势给你带来的是兴致、热情甚至狂喜。

(我在 authentichappiness.org 上做了 VIA Survey of Character Strengths 的测试,结果的前五位分别是:Love of learning; Creativity, ingenuity, and originality; Capacity to love and be loved; Judgment, critical thinking, and open-mindedness; Curiosity and interest in the world.)

达成美好生活的公式就是:每天在生活的各种领域中运用自己的显著优势,以带来充沛的满足 (abundant gratification) 和真实的快乐 (authentic happiness)。

5. 意义和目的

拥有关于过去、未来和现在的积极情绪即是愉快的生活 (pleasant life),能发挥出自己的显著优势即是美好的生活 (good life),但这仍然未臻极致。拥有生活的意义和目的 (meaning and purpose),才是有意义的生活 (meaningful life),才是完满的生活 (full life)。

本书作者对于意义和目的的答案是神 (God),脱胎于宗教却并不同于宗教中的意义。他的论述大致是这样的。犹太教-基督教传统 (Judeo-Christian tradition) 中的神具有四个主要属性:全知 (omniscience),全能 (omnipotence),至善 (goodness) 和创世 (creation of the universe)。然而这最后一个属性是可能带来矛盾的,如果神是世界的设计师和创造者,同时既善良仁慈又全知全能,那为何这个世界仍存在疾病、罪恶和暴行?各种理论上调和矛盾的努力不令人满意,于是创造世界这一层神的属性被作者放弃了。放弃这个属性之后,全知全能至善的神是否存在呢?还用刚才那个矛盾来说明会给出否定的答案,同时神的全知全能与个体的自由意志 (free will) 也是存在矛盾的。所以结论是,这样的神在过去和现在不存在,神只能存在于将来。作者认为,双赢的自然进程 (natural principle of win-win) 和持续增加的复杂性 (complexity) 的最后就是全知、全能和至善的可称为神的实体的产生。当然,这并不会在我们个人的生命进程中实现,甚至可能不会在我们种族的历史进程中实现。我们作为个体能做的就是增进自己的知识、力量和善念,成为这一达到全知、全能和至善的进程的一分子。

以上是作者书中给出的答案,但每个人关于生活的意义的答案可以各有不同。各种答案的共同点是:它关联到某种大于你自身的让你想投入其中的东西。这种东西可以是道,可以是仁,可以是兼爱,可以是圣杯,可以是理念世界,可以是共产主义,可以是几何的公理系统,可以是神学的三位一体,可以是数学的哥德巴赫猜想,可以是物理的大一统理论,既可以是对爱情的渴望对知识的追求对人类苦难不可遏制的同情,也可以是为天地立心为生民立命为往圣继绝学为万世开太平,甚至可以是把有限的生命投入到无限的为人民服务之中去,同样可以是让每一张办公桌和每一个家庭里都有一台装有我们软件的电脑……但你得有你的答案,得有你自己心中的那个大于你自身的你想要投入其中的东西。

以全书的最后一段作为结束,本想翻译一下又觉得功力不够难免辞不达意,于是原文引用如下:

The good life consists in deriving happiness by using your signature strengths every day in the main realms of living. The meaningful life adds one more component: using these same strengths to forward knowledge, power, or goodness. A life that does this is pregnant with meaning, and if God comes at the end, such a life is sacred.

Comments (10)

这个寒假读的书及其它

今天,我回到了浙大,我把这算成寒假的结束。上个学期最后一门考试的前一天拿到了一台 Kindle DX,于是这个假期的所有书都是在这台 Kindle 上读的,大致按照读完的顺序如下:

周国平《尼采:在世纪的转折点上》
The Power of Less (Leo Babarta)
陈冠中《盛世》
《中国健康调查报告》
Outliers (Malcolm Gladwell)
Programming in Scala
A Rulebook for Arguments (Anthony Weston)
罗素《西方哲学史》卷一

四本中文书,四本英文书。有小说,有编程,有成功学,有哲学史,有健康指南,有批判思维。虽然数量不算多,不过我相信这是一段富有平衡性、充满营养的阅读体验。这些书读的时候多少都做了一些摘抄、提纲和感悟之类的文字,在此就对每本书做个简短的的读后总结吧。

周国平的《尼采》一书是在ASES读书会中了解到的。我喜欢周国平写的尼采,类似于我欣赏钱穆书中的孔子。钱穆以儒家信徒乃至道统传人的信念写《论语新解》,自然将论语的妙处诠释得淋漓尽致,读者也最能从中受益。(插一句广告,我一直坚定地认为钱穆《论语新解》是用来了解论语以及儒学的最好的入门读物,在此郑重推荐。)我无旁据地揣测,写此书时的周国平必自认为尼采的信徒(虽然不一定会公开承认这一点),而这个角度的介绍,是追求他山之石而非价值判断的我所乐于阅读的。

Leo Babarta 是我订阅了一段时间的英文 blogger,于是它的书 The Power of Less 的英文电子版躺在我硬盘里好久了。真正在 Kindle Store 里买了并从头到尾阅读一遍才如梦初醒,书中完全点明了我拖了那么长时间没抽出空来读它的症结。我非常庆幸能在寒假的开始以及一年的开始时读到这本书,其中的精神整个改变了我的寒假计划,我想也会改变我接下来一年的安排。这本书好像也刚出了中文版,强烈推荐给每个像我一样对“more”有着不懈追求的人。

《盛世》这本书我看的是 Twitter 上分享的陈冠中先生亲自校对和分享的盗版PDF。依我的理解,它从纯粹文学的角度看不算是第一流的小说艺术。对其思想性不评价,主要是因为觉得自己没那个能耐去评价吧。

会去看《中国健康调查报告》这本书是因为有践行书中建议的素食饮食习惯的朋友的推荐。读之前特意在 Google Scholar 里输入了作者的名字,发现确实是个学术大牛,才放心地读了下去。我承认书里的论据和结论都是非常有说服力的。这促使我在过年前的某一天中午对抢我的Kindle看了这书的一部分的我妈说,今天中午吃一顿素食吧。这顿素食带来的后果是我在几个小时之后窜到厨房里对正在准备晚餐的我妈大声喊:“我要吃肉!我要吃肉!”于是这本差不多是素食主义者的圣经的书遇上我这个打小无肉不欢的家伙就完全没起任何作用。嗯……应该说这本书还是带来了一些让我在四十岁或者更老的时候转向素食主义的可能性,至于现在就算了吧……

Malcolm Gladwell 写的 Outliers 一书的副标题是 The Story of Success,最初是在李笑来老师的blog上听说此书的。这本书论证讲述了现实世界中的事业成功被哪些因素左右,并得出了一些有悖于常识却又有说服力的结论。中文译本的书名是叫《异类》,推荐给每个希望了解并达到事业成功的人。

假期里读的唯一一本跟我自己的专业直接相关的书是 Programming in Scala,是因为最近要用到而读的。作为一本编程语言的入门书,它是中规中矩的。至于 Scala 语言本身,我本来想好好写一段技术评论,不过眼界和经验所限,还是不写出来误导人了吧。总之,我的结论是,Scala 绝对大有可为。

会在 Kindle Store 上买了 A Rulebook for Arguments 这本书来读,最初的动力是打算在了解和学习 critical thinking 这个领域内的知识。至于为什么在卷帙浩繁中选了这本作为开始,我也记不清楚了……不过读完了以后意识到这个选择真是如此幸运啊。讲得深入浅出精炼透彻不说,书最后的 Resources 一节全面的介绍了这个领域的各个方面以及相关推荐书目。非常感激作者的用心。这本书我打五颗星。

罗素《西方哲学史》我从假期的一开始就着手读了,一直作为我读英文书编程书之类读累了的调剂,读得断断续续,直到在回杭州的火车上才最终读完题为“古代哲学”的第一卷,主要内容是古希腊哲学。我这种消遣的读法实在没记住什么东西,只是觉得古希腊的文化真是光辉灿烂,那种感觉跟我高中和大一时泛读诸子差不多,就是发现了一座宝藏。接下来还有“天主教哲学”和“近代哲学”两卷要读,我的计划是还这样泛读过去,然后根据兴趣和需要再选一些章节来精读吧。

写到最后想起来,还读了一本叫 Know Can Do! (中文译本《知道做到》)的英文小书。我的鉴定是这是本在书店里翻翻目录及每章的最后一页即可放下的书。算上或者不算上它对我寒假读书的价值几无影响。

然后列下我正在看还没看完的书单:

罗素《西方哲学史》还差两卷要看。
The Elements of Style (Fourth Edition) 刚刚开始看。这本英语写作方面的绝对经典当然是不能错过的。希望它也能在 critical thinking 的领域有所助益。
The Definitive Guide to Lift 是手头的项目所需要尽快看完的。
The Now Habit (Neil A. Fiore) 是讲拖延症的权威著作。以前读过一次,读到一半就由为书中所载的顽疾本身所累半途而废了。现在重新拿起细读,但进展不快,需要加油。

我下一步要读的书目包括:

Authentic Happiness (Martin Seligman),积极心理学的代表作 。我高中的时候读过弗洛伊德在精神分析上的一些代表作,深以为然,以其信徒自居。直到最近才警醒过来,且不论弗洛伊德学说本身的价值,把他的学说当成一种精神指南来信奉绝对是害大于益的。于是我打算阅读对个人发展更有建设性作用的积极心理学方面的著作,有必要的话还会读一本《弗洛伊德批判》来解毒。

Programming Pearls,打算读但一直没读过的经典编程书籍。

Being Logical: A Guide to Good Thinking (Joseph M. Williams),思维领域的下一本书。

What Is Mathematics?: An Elementary Approach to Ideas and Method,高中时读过的数学科普书。打算重读一遍,一方面是试图重试对数学的兴趣,另外也完全有理由相信现在可以从本书中汲取更多的内容。

Pragmatic Thinking and Learning: Refactor Your Wetware 一书的作者 Andy Hunt 曾以 Pragmatic Programmer 一书深深地影响了高中时期的我。我希望这本书能开启我了解和学习脑科学、认知科学的门径。

Armchair Economist (Steven E. Landsburg),选择读的第一本通俗经济学读物。

The 7 Habits of Highly Effective People (Stephen R. Covey) 是久闻盛名的经典,下一步打算读。

上面的书单竟全部都是英文书啊。中文书的话,现在唯一确定下一步要看的是钱穆《国史大纲》,等到把大部头《西方哲学史》啃完就开始吧。

除此之外,我还有一个包含23本书的 to-read 列表,一个包含31本书的 sometimes/maybe 书单,而且它们的容量还一直在快速增加……于是深刻体会到“吾生也有涯,而知也无涯”,几要发出“以有涯随无涯,殆已”的悲鸣。可我仍愿尝试“求知若渴,虚心若愚(Stay Hungry, Stay Foolish)”,初生牛犊般无畏地前行。

Comments (16)

2008年11月24日

昨天,ACM/ICPC杭州赛区以金奖(第五名)谢幕。对于Genesis队,本赛季的所有比赛已经结束,以后不大可能再在比赛中看到我们这支队伍了,希望Genesis得到的两块regional金牌以及一直以来的表现能让关注我们的人满意。

对于我已经研一的两名队友,这大约是他们最后一次以队员的身份出现在ACM/ICPC的赛场上;与高远(xgy)、杨克特(T_T)两位学长的无间配合是太过愉快的经历,学长的经验也让我受益良多。

而对于我,一名正式进入大学才三个月的大一新生,一切才刚刚开始;前方还长的路让人激动憧憬,请相信我会带来更多惊喜。

其实,这赛季能够连拿两金,取得对于我这种新手来说可称辉煌的成绩,不仅取决于全队的努力,对于我自己来说,其实不乏运气成分。这学期我主要的突破是仔细读了本《简明数论》(其实这书只有一半名副其实,“明晰”是无疑的,“简单”则谈不上),打下了还算扎实的数论基础,差不多能应付Regional中通常的数论题了,结果我们队参加的哈尔滨和杭州两个赛区正好都有数论题出现,特别是我们在哈尔滨最后才解出的B题更是我们夺金的关键。另外,在杭州赛的前几天,我匆匆浏览了《柔性字符串匹配》的后半部分,主要内容是用有限自动机做正则表达式匹配。对那本书的主题我自然是一知半解,不过倒对有限自动机有了较多的感受和认识。没想到杭州赛区的H题就是判断两个有限确定性自动机是否等价的题目。虽然没见过,但正好这几天见识了很多与自动机有关的内容,灵光一现就得出了算法,使我们队解出了第6题,也是场上解出的最后一道关键题目。

这样看来,我第一年的ACM/ICPC征程真可称顺风顺水,似乎幸运眷顾,完全没遇到挫折地走下来。当然,以后还是老老实实提高自身实力才是王道,近期打算学学Java,读读SICP之类的书。

这个学期还剩下大约一半,除了为了保持状态做点SRM以外,就不再寻求编程竞赛方面的突破了,应该多尝试点不同的内容。学Java达到与目前的C++近似的熟练程度,读SICP、Concrete Maths、Programming Pearls是必须完成的内容,如果还有闲暇就打算读读Algorithm Design以及一些AI方面的书目。最近一本《数学分析原理》让我多少发现了纯数学的美感,虽然这学期应该不大可能了,但以后还是要读些纯数学的经典教材的。物理是这学期多少令人头疼的科目,得抓紧看一下,希望能培养出兴趣。

好吧,读书去了。

Comments (9)

《数学分析原理》旁注(上)

注:凡“旁注”性质的笔记,都是无规划不成系统的读书随想。尤其与我大多数短篇的读书笔记一样,并不求别人也看懂。

第1章 (2008.11.16)

1.24:引入复数的一切都很完美,只是这个乘法的定义还是略显突兀。能否通过M1~M5以及零元、幺元等内容将这个定义更顺畅地推导或引入呢?换句话说,有了很自然的加法的定义,要满足(1,0)为幺元以及M1~M5,有了这些条件能否得出“合理”的乘法定义有哪些?于是就是函数方程了。如果这是唯一满足的定义那就完美了,不过我的推测是:它是函数方程所有解中明显、特殊、或朴素的一个。

1.35:又是那种“神来之笔”的证明……怎样理解这优美的构造?

1.A.9:任何两个具有最小上界性的有序域同构。我会找到它的证明。

第2章 (2008.11.17)

这章的目的为何?完全不明白,也没办法搞清定理之间的联系。

2.12:可数个可数集的并是可数集。

2.23:所以同为开集与闭集的集就仅有空集和全集。

2.23:紧集,对于集合的每个开覆盖,存在一个有限子集也是开覆盖。

2.44:Cantor集的概念。

第3章 (2008.11.17)

这章的目的应该是判断及求得数列以及级数的极限。

3.1:极限的概念可以直接在度量空间中定义。

3.21:定理能按数列与级数两种语言来叙述与应用。

3.27:正项不增序列a_i的级数收敛当且仅当2^k a_{2^k}的级数收敛。这可以用相对很稀疏的项判断级数的收敛性。

3.38:幂级数的收敛圆(由根值法推出)。

3.42:∑a_n有界,b_n单调递减到0,∑a_n b_n收敛。(分部法)推论:交错递减则收敛。

3.47:级数乘积的定义有卷积的味道。

3.53:对(收敛但非绝对收敛的)级数重排会改变收敛的值!奇妙……

数列:单调有界定理,比较法,Cauchy准则。

级数:比较法,3.27,另一种形式叙述的Cauchy准则,比率法与根值法(3.37说明前者有效的后者一定有效),收敛半径,分部法及推论。

第4章 (2008.11.18)

4.8:函数 f: X->Y 连续,当且仅当对于Y的每个开集V,f-1(V)是是X中的开集。(由于开集的补集是闭集,所以叙述中可以换成闭集。)

4.18:一致连续是函数(在某个定义域上)的性质,而连续是函数在点上的性质。然而在紧集上,这两个概念等价。

4.23:函数的连续性保持定义域的连通性。

这章应该是探讨了函数的连续性与第2章中集合的特性的关系。2、4两章应该都是构建后文微分、积分理论大厦的基石与原材料。

第5章 (2008.11.19)

5.9:直接证一般中值定理,很赞。

5.12:导函数可以不连续,但不能有第一类间断,且在区间内能像连续函数一样取到所有中间值。

5.13:L’Hospital法则的证明,看上去很不直观。Wikipedia上的证明似乎更优美。

5.15:这个证Taylor定理/Lagrange余项的方法简洁得很诡异,其实没看懂……Wikipedia上的先证integral reminder再用积分中值定理直接得到Lagrange reminder的方法直接且精炼。

第6章 (2008.11.20-21)

6.1:这个定义与Wikipedia上的Darboux integral完全相同。上积分、下积分——它们必定存在,可积性便等价于二者是否相等——于我是新鲜的概念。以下便用这些定义(还有一个“加细”)证明了若干关于可积性的性质。

6.2:在概念中增添“-Stieltjes”之后,让关于x的Riemann积分可以关于任意函数α(x),扩充的要点是,α不必可导,甚至不必连续。

6.15:有点绕……第一遍没看明白。不过的确是一下子让人发现Riemann-Stieltjes对于Riemann的扩充,然后函数值、级数(6.16)都可用一个Riemann-Stieltjes积分来表示,6.18是点出本质的总结。

6.20-21:微积分基本定理的两部分。我总是觉得Wikipedia上的证明一下子就能看懂,这书故作高深的倾向却要让人看很久才知道他是怎么证出来的……这种从定义就开始“立意求高”类似于“伤人乎不?问马。”,教材中的例子有萧树铁的《大学数学——代数与几何》中对行列式的定义。这样的教材的确有境界,不过最好还是借助大众化的Wikipedia补充一下。

Comments (2)

《简明数论》的简明笔记(中):13~21节

  • Euler函数φ(m),定义,积性不完全;
    • \phi(m)=m\prod_{p|m}(1-\frac{1}{p})
    • \phi(m)=m\sum_{d|m}\frac{\mu(d)}{d}
    • \sum_{d|m}\phi(d)=m
      • 用积性证很简单;证明二:按与m的最大公约数分类。
  • f(n)的Mobius变换:F(n)=\sum_{d|n}f(d)
    • Mobius逆变换:f(n)=\sum_{d|n}\mu(d)F(\frac{n}{d})
      • 以上两式等价,f(n)与F(n)的积性也等价。
    • f与g的Dirichlet卷积:h(n)=\sum_{d|n}f(d)g(\frac{n}{d}),h保持f与g的积性。
  • 同余:
    • a对模m的最小非负剩余、绝对最小剩余;
    • 同余式是等价关系;同余式可加减乘;ca≡cb (mod m)等价于a≡b (mod m/(c,m) );
    • 对模m的逆的定义。
  • 同余类、完全剩余系定义;
    • 既约剩余系包含的同余类个数即φ(m)。
    • (a,m)=1时,x遍历m的完全/既约剩余系当且仅当ax遍历m的完全/既约剩余系。
      • 用这个可轻松证明Fermat-Euler定理。
  • Wilson定理,即(p-1)! ≡ -1 (mod p)。
    • 证:除了-1外,其它因子可与(不相等的)逆元配对抵消。
    • 即,p的既约剩余系的积模p得-1。
      • 扩展:p可换成pk,2pk(这两者p是奇素数)。
    • 事实上,r不取1,2,4,pk,2pk时,r的既约剩余系的积模r得1。
  • ax≡b (mod m) 型的同余方程。
    • (a,m)|b 是有解的充要条件,解有(a,m)个。
      • 可求a对m的所有逆元。
    • 注意到一个解是 x_0 = a^{\phi(m)-1}b,也可用扩展欧几里德求特解。
    • 所有解是x_0 + \frac{m}{(a,m)}t,其中0<=t<(a,m)。
  • 形如x \equiv a_i \pmod{m_i}的一次同余方程组。
    • 若{m_i}两两既约,则解数必为1(中国剩余定理)。
      • 解为x \equiv \sum M_i M_i^{-1}a_i \pmod{m}
      • 其中m = \prod m_i = M_i m_iM_i M_i^{-1} \equiv 1 \pmod{m_i}
      • 当a_i分别遍历m_i的完全/既约剩余系时,x遍历m的完全/既约剩余系。
    • 若{m_i}并非两两既约,例如(m_i,m_j)=a时,可将模m_i与m_j的两个方程化成模a、m_i/a、m_j/a的三个方程。
      • 编程时,直接化为若干个模p^k的方程似更简便,其中p^k || [m_1,m_2,...,m_i,...]。
    • f(x)≡0 (mod n) 的解数设为 T(f;n),则T(f;n)是关于n的积性函数。
      • 于是只需研究f(x)≡0 (mod p^k)型方程的解法。
      • 即求解多个方程后再解个模{p^k}的一次同余方程组。

Leave a Comment

ACM/ICPC – Asia Harbin 2008 小结

10月8日晚的火车,三十多个小时的旅途,去往一座遥远陌生的北方城市,哈尔滨。

上火车后,惊喜地发现,我们硬卧车厢的走廊窗口下竟然有两相和三相的电源插座!可以无顾忌地使用电脑,似乎会给旅途增添不少趣味和意义。火车上,我把觉得比较有用的论文看了一遍,又对照着CD看了几章《听音乐》。

我在重要的比赛或考试之前容易滋生紧张情绪,这也是NOI2007的败笔之一。不过这次不同,一路上有队友相伴,本应枯燥的车厢里,充满欢声笑语。

灿哥通过神奇方式买到的火车票十张全是上铺,不过大家发现这种新式车厢的上铺非常舒服。更何况,在某人的下铺处有一只天真无邪可爱动人如假包换的小萝莉……这个话题不展开了,请自行YY。

T_T同学出了一些猥琐的迷题(e.g. 一只公牛和一只母牛同时踩坏了别人家的田,为何公牛主人赔偿三分之一而母牛主人赔偿三分之二?),令大家都很惊讶的,某位dd同学几乎每次都反应很快地第一个说出答案。好吧……在此我申明三点:第一,那些迷题没有一个是我之前听过的;第二,之所以我每次都能最先得出答案,我的唯一解释就是:我的思维敏捷、智商高;第三,我很天真哒,我的话讲完啦。

火车上的每顿饭都去餐车吃,虽然贵且不好吃,但毕竟是能找到的最佳选择了。这时T_T同学的母亲在德州站送上来的三只扒鸡正如雪中送炭,众饕餮很快就将那些可怜的无毛二足动物杀得片甲不留,对其二足尤不留情^_^。

火车到站时间是10日早晨5时许,一群几乎都没来过东北的人立即领教了寒风的威力。一干人等饥寒交迫地奔赴某盖头gg事先选定的车站门口的KFC,却发现人满为患无处容身。我通过手机上的Google Map搜索到了最近的另一家KFC,大家便打车前往。BTW,发现哈尔滨的GPRS网络很棒,明显感觉到比杭州的快,然而不知为何某只很拉风的iPhone在哈尔滨却无论怎样都连不上GPRS……

KFC的早餐让大家都找回了久违的饱腹感,充电完成的一干人等玩起了由gdb引进的多人纸牌游戏“盖棉被”。如果仅描述规则的话,听起来真是一个挺傻气且低技术含量的游戏:若干人轮流出牌,同时循环报数1至13;若某人打出的牌和说出的数字恰相同,所有人都需要尽量快地将手掌盖向牌堆,盖在最上面的手掌(也即反应最慢的)需要拿走所有的牌;手中无牌者胜。不过大家都玩得不亦乐乎,情不自禁高声大叫,引来了KFC MM礼貌的制止。在KFC的经历,让大家明白了一个深刻的道理(做小学生作文状):南北风俗不一样!好吧,看不懂的请略过或自行YY -___-。

打车来到哈尔滨工程大学……门口的八一宾馆报到,然后在志愿者MM的带领下入住十五元一天的学生宿舍-___-,还好后来在我们强烈要求下换成八一宾馆的标准间了^_^,偶和可爱的xgy队长gg一间哦~

10日一天都没什么安排,继续盖几圈棉被以后,一堆无聊人士围坐一圈玩起了同样低技术含量的梭哈,用另一副牌当筹码。赌博的结果是有的人(可怜的xgy gg,cmft)输到倾家荡产,有的人(就是我啦^_^,嘻嘻)成了大资本家,我赢了比翻倍还要多哦~

午饭选在某忘记了名字的火锅店,灿哥中途从机场赶来加入。相信大家都吃饱了,而且我自己认为吃得还不错,只是某人点了过多的丸子浪费不少……

下午和晚上,除了必要的赛前准备,大家仍然把时间用在了打牌与谈天之类娱乐放松的项目上。期间七个人玩两副牌的接龙还是挺好玩的。顺便炫耀下,在哈尔滨玩的很多盘接龙的分数都记录了下来,在幸运与实力的双重照耀下,dd同学是总积分的最后赢家~oh yeah~

期间值得一提的事情是,我们目睹了某欧阳极囧的脸红过程,并拍下了真相。欲知详情,请私下交流或自行YY……关键字:罩杯-___-。

10日晚上一直玩到午夜才睡。

11日上午貌似仍然是谈天玩牌。哈工程“大学生美食广场”午饭后,Genesis+gdb的猥琐男们在哈工程的长椅上懒洋洋地晒太阳,顺便开展猥琐的分手现场偷窥行动以及路过MM打分行动,期间小耗子乱入-___-。

下午试机,觉得电脑上的NetBeans还算好用,决定第二天比赛就用它了。试机期间,主办方的组织让人不能满意:每队三个人只有一份题目且不说,最不能忍受的是judge故障连连。我默默祈祷正式比赛时最好不要出现judge问题。

11日晚上,大家没有过分的娱乐,早早回到了各自的房间里养精蓄锐。我看了lrj“习题指导”和北大出版社《简明数论》两本书中的重要章节,听了贝交第五全曲,九点半安然入睡。

12日早晨六点半,醒来后的我感到前所未有的精神焕发,觉得这应该就是所谓的最佳比赛状态了。早餐中,灿哥给我们讲了若干“坚持到最后一分钟翻盘”的传奇故事。我相信听者没人想到,那天的比赛中,我们中的一支队伍会创造另一个传奇,一个毫不逊色,且注定被一遍遍讲述的传奇。

开赛半小时前进入场地,我们的装备大致如下:德芙巧克力一盒、红牛饮料若干罐、圣经一本(和合本+NIV对照)、牛津高阶词典一本、以及常用参考书一堆。

比赛开始了,共有十题,从A到J。按照一贯的读题分配:T_T看ABC,xgy看DEFG,我看HIJ。

我分到的题目都比较长,H大致看懂了,断定绝不是前期能写的题;I题意很简单,给定一个顶点的度序列,问是否存在对应的无向简单图,我觉得这应该是的经典问题,但却完全没看过类似的问题或算法;J的题意也不难理解,但可以看出,相当有大自然题的潜质。

大家把题都看的差不多了以后,互相两两交流了一下题意,没发现明显可做的题目。这时看到大屏幕上已经有四个队过题了,过的都是I。我意识到,I肯定不是难题,便专心yy之。期间xgy和我都怀疑是否只判断一下度的奇偶性就可以了,不过很快找到了反例。仿佛灵光一闪,我脑中突然出现了一个贪心构造的方法,讨论后,大家都没思路证明其正确性,却也找不到反例,于是我便上去敲了代码并提交之。

这时看到有牛队过了A,T_T给我讲了题意后,我写出前N层和的表达式给了他,他完善了一下二分答案的细节,便上去写了。写完后发现,按照我给的表达式计算的话,虽然输入不会超过六十四位整数,然而计算的中间过程完全可能会溢出,一时没有找到解决之道,只好由xgy把这个C++程序翻译成Java用BigInteger来写,交上去以后很快返回了Yes。这时已经拖了不知多久的I终于返回了,还好是个Yes。拿到两个气球的我们排名并不乐观。

在此之前,xgy给我讲了他对F的想法,我在他的基础上很快推出了完整的充要条件,但我俩都不太确定该怎么实现比较好。T_T听见后表示,如果充要条件是这样的话,那么他完全能写,因为写过很类似的题目。于是他上去用DP/递推的方式写了个程序,很快Yes了。三道题都1Y的我们第一次冲进了前十名。

写F期间,我和xgy在讨论G题,这道题的文字叙述得挺模糊的,不过通过仔细阅读加合理推测,我们很快发现原来就是一个有向无环图上的博弈问题,拓扑排序一遍再DP就行了,我上去写了以后也1Y了。当我们第4题的AC反映在大屏幕上的时候,我发现,在比赛时间过去约一半时,我们是全场第一个AC 4题的队伍,排名第一。旁边堪称全明星的清华IronGods队也只有三个气球。

这是我第一次感到情绪波动的时候,在此之前,我一直都保持着平和淡定的情绪,精神非常集中,头脑非常清醒,基本上处于巅峰状态,思考和敲题的效率都很高。然而此刻,看着大屏幕上飘扬在最上方的team53(我们的队伍编号),我出现了不应该有的过分激动以及过分自信。现在,我(多少有些羞愧地)承认,在那一瞬间,我想到了斯德哥尔摩。暂时领先造成的情绪波动直接影响到了我后半程的发挥,这也是我个人本次比赛得到的最重要的教训。

C题大概是早就得出了二分图最优匹配的算法,T_T上去写,似乎是用了令我难以置信的短暂时间就敲完了。交上去以后,返回了我们的第一个WA。我提醒T_T是否注意到船到达port以后不能再出来的条件,他意识到忽视了这一点,很快改好了,没想到仍然是WA。于是T_T打印了代码让xgy和我看。给代码查错应该是最需要集中精力的活,而我在看那份代码时却完全做不到这点,草草地、甚至一目十行地在看,怎么看都觉得没错误。很无奈的我们便想,是不是题目比较阴险必须用64位整数才可以过呢?其实赛后来看,这绝对是不必要的想法。因为当时至少有十多支队伍过了C,不少队伍都是作为第四道题过的C,且其中不乏1Y。这可以推断出,WA不大可能源于出题人的阴险,而是应该源于我们自身的问题。不过,当时的情况是,改了long long,依然WA。这期间,4题甚至5题的队伍越来越多,我们的rank一直在跌,前景非常不容乐观。看来我的缺点就是这样……处于顺境的时候容易被冲昏头脑,只有适当的逆境才能达到冷静。我再次看T_T的代码,不漏过一个字符的认真看,终于发现了程序中的低级bug。——只是注释掉了一行代码,程序就AC了。那个错误的根本原因是T_T在写那一小段时稍微有点想错了,而我从局外的角度看这段代码时,本应很快意识到这个几近愚蠢的错误,然而由于第一遍的不专心,我直到若干次WA之后第二遍阅读代码时才发现了它,这题做得不好,我至少应该承担一半的责任。

还好,虽然C题罚时比较多,在我们前四道题全部1Y的基础上,终于五题的我们名次还不错。接下来可做的题只有B和D。前者是数论题,我已经推导出了一个结果,有算法了;后者是纯粹的高斯消元而已;二者的共同点是都需要用到大数,最好是用Java来写。嗯……应该是我们队的另一个缺陷吧,我们没有人能把Java写得跟C++一样熟,所以必须用Java写的题在敲代码的速度上是吃亏的,甚至有些有关语言特性的东西还需要在赛场上试一试才知道。我们三人中写Java最熟练的xgy队长觉得B似乎更容易实现,于是便上去写。花费了比通常要多的时间,但却是严格地按照我给定的算法写出来的,没想到交上去以后WA了,只好打印出来交给我们查错,而他自己接着写D。——我想在这时我们的缺陷就完全暴露出来了:剩下两道可以写的题都需要用Java写,而赛前的训练中用Java写过题的竟只有xgy一人。这导致此时能写D的仍然只有xgy,而自己写的B还没能AC的xgy恐怕无法专心全力去写D,T_T和我在下面对着打印出来的B的Java代码YY其bug……T_T和我一致认为那Java代码十分“诡异”,表达算法时显得很不直白,但分析的结果也无法找到错误。我建议把那代码改成不那么诡异的形式再试试,大家同意了,便放下D来改B的代码。终于改出了比较清晰易懂的代码以后,测试的结果却似乎与刚才“诡异”的程序并无区别……(期间我还忍不住下手帮着写了几行,现在回忆时发现,赛场上的那几行其实是我平生第一次写Java代码- -。。。)貌似又是在我的撺掇下,把那个改完以后完全看不到区别的程序提交了,结果又是WA。这时进入比赛的最后一小时已经有一段时间了,封了board,各个队伍的排名已经不再实时公布,但从现场升起的气球情况来看,貌似已经有七题的队伍了,如果我们再不抓紧时间搞出第六题,能否拿到金牌相当未知……这时xgy继续写不知道有多大希望的D,而T_T和我做了一个相当正确的决定:我们从题意开始,对推导的过程完整地讨论地检查了一遍。期间,T_T的一句话启发了我,我发现原来是我在一开始的数学推导中少考虑了一种情况,难怪一直WA到死……我谢罪。。。还好把那种情况的代码加到程序里并不困难,加上以后就AC了,在比赛还剩十多分钟的时候,我们终于六题。

看到屏幕上的Yes的时候,我们全都激动地站了起来振臂欢呼。这是出现了一个喜剧性的小插曲,比赛的志愿者MM给我们送气球时弄错了:应该给我们的是B题对应的浅紫色气球,她却拿来了J题对应的深紫色气球。据说当时观众席上立刻一片哗然,没人想到会有队伍在比赛中把最不可做的J给做出来。周维民教授(ICPC中国区秘书长)也马上带着一堆摄影记者走过来对着我们不住地拍照。(嗯,以上文字有野史的风范,若有不确切之处请一笑而过^_^。。。)

最后几分钟的时间里xgy在敲D,不过花在这题上的时间和精力的确是比较少,加之我们不知道高斯消元在无需考虑精度的情况下会有比标准的做法好写很多的实现,所以直到最后也没能写完。至于旁边我们的Sirius凭借最后一分钟提交的D题冲至第五的神迹,我们也只有深深膜拜了。。。Orz

金牌到手的我们无忧无虑,下午我玩了会儿牌,听了会儿音乐,晚上代表队伍上台领奖(非常感谢队里的两位gg给我这个荣耀的时刻)。

接下来的时间里,Genesis与Sirius们都兴高采烈,发挥失误获得银牌的三个gdb则无法避免地淡淡失落。不过大家都知道团结勤奋的gdb实力还是相当强的,相信你们下次在成都的比赛中会弥补这次的遗憾!

其实我发现……比赛结束以后的事情我大都不太清楚了,因为颁奖结束的那天晚上起我就全身心地沉迷在一本奇书里。包括在归途火车上也一直是捧着电脑在进行一千多页的脑力激荡与思维历险……嗯,接下来我会抽空慢慢写点关于GEB的读后感的,虽然一下子很难整理出繁复的思绪。。。

哦……这次的哈尔滨之行Sirius与gdb各自也有非常精彩的小结,请原谅这篇略有些虎头蛇尾的文章吧,这五千多字已经写得我要吐血啦。。。有什么脱误遗漏错愕指出请指出,我一定修改。

好了,下一站杭州,在自己家门口比赛,相信通过对哈尔滨之行的总结,我们会越发完美。Genesis加油!

Comments (16)

《简明数论》的简明笔记(上):1~12节

按:数论貌似是我目前还接触太少的领域,遵从vls的推荐借了北大出版社的《简明数论》来浏览,还是很好玩儿的……下面是从中总结的一些比较新鲜的结论。

  • {a_i} 的最大公约数等于 {a_i} 的所有整系数线性组合组成的集合中的最小正整数;
    • 事实上,被最大公约数整除,等价于能表示成整系数线性组合。
  • 一次不定方程 ∑a_i*x_i=c 有解的充要条件是 c|({a_i});
    • 解一次不定方程的算法(待实现)。
  • x^2+y^2=z^2 的本原解:x=r^2-s^2, y=2rs, z=r^2+s^2;
    • 其中r>s>0, (s,r)=1, 2不整除r+s;
    • 等价地刻画了单位圆周上的有理点。
  • Chebyshev不等式:\frac{x \ln{2}}{3 \ln{x}} < \pi(x) < \frac{6\ln{2}x}{\ln{x}}\frac{n\ln{n}}{6\ln{2}} < p_n < \frac{8n\ln{n}}{\ln{2}}
    • 其实重点在于:O(π(x))=x/log x,O(p_n)=n log n。
      • (π(x)即不大于x的素数个数;p_n即第n个素数。)
  • 数论函数:[完全]积性函数的充要条件;
    • 除数和函数\sigma(n)=\prod_{j=1}^{r}\frac{p_j^{a_j+1}-1}{p_j-1}
    • F(n)=∑_{d|n}f(d) 保持f(n)的积性。(除数即Divisor)
  • Mobius函数:\mu(n)=\left\{ \begin{array}{ll} 1, & n=1\\ (-1)^r, & \text{n is product of }r\text{ distinct primes}\\ 0, & \text{otherwise} \end{array} \right
      • 事实上与容斥原理很有关联;
      • 引理:\sum_{d|n}\mu(d)=[\frac{1}{n}]
    • 集合A中与K互质的元素个数S(A;K)= \sum_{d|K}\mu(d)|A_d|},其中A_d是A中被d整除的子集;
    • 将A取不超过x的实数,K取不超过的所有素数的乘积,可得\pi(x)=\pi(\sqrt{x})-1+\sum_{d|K}\mu(d)[\frac{x}{d}],这样可以在已知不超过的素数的前提下求π(x)。
      • 从算法的角度看似无意义?

Comments (3)

July 14th, 2008

每个或有或无意义的开始,我都会变得兴奋而躁动,一些忘却抛弃,一些憧憬期许。就像今年一月我无理由地坚定地认为2008年是美好的一年一样,七月的最初,我同样坚定地做出七八月的暑训、今年下半年以及整个大一的一年时光都将美丽姣好的没有理由的结论。——七月四日

过了二分之一的这个七月,给我的感觉不同于以往的任何一个时期。——极度繁复的同时,也极度简约。极度火热的同时,又极度冷寂。贯穿每日的主线是,一边拼命挣钱、一边拼命花钱,一边努力出题、一边努力做题,一边尽力提高自己、一边尽力指导别人。就是这样,若非亲历很难体会。

集训前两周期已经结束的六场比赛需要总结一下。

Contest 2 by Balloon 是没进行任何ACM/ICPC有关的活动几十天之久后第一次比赛,完全没状态,Rank 12。依序看到D,便知道该怎么做了,19 min 1Y,是全场第一个AC此题的。看到有两人AC了A,略思考便想到了跟NOI某题类似的做法。当时认为,精度的缘故,需要写一个分数类,很快的敲完了。后来的事实证明,我现场敲的分数类对负数的处理有极大漏洞。可我错误地估计了错误,一遍遍地在主程序中寻找bug,WA无数次才意识到是分数类写得有问题。后来我发现,只要把我第一次提交的很垃圾的程序加上两行补丁,就可以AC。现场在66min交到第九次才AC的原因,一是一开始错误地估计了bug的位置,二是正确地找出bug以后没有仔细思考就开始写较为复杂的补丁,而没有看清错误的本质所在。这两个题水过以后,看上去可做的题目有B和E。对于B,我非常怀疑自己此时的coding能力能否应对这个算法不难代码似乎不好写的题目,于是看E,这个我最终交了13次也没AC的题目。交了4次E,完全不知道为什么WA,放弃了。然后开始很慢的写B,写一种极度麻烦的算法,一直到145min才交了两次AC。再次概览剩下的题目,仍然认为只有E可做,拼命查错和提交,一直到比赛结束都无果。最终才明白,原来E是因为误解了scanf中”\n”的意思,导致读入出错了……交的第二个程序的算法就是完全无误的。如果能更早地做掉E,显然与它的加强版F题不存在AC的障碍。真没想到算法一点问题都没有还会败在输入上……

Contest 3 by Cannon 也是一场郁闷的比赛,Rank 8,虽然Rank有所上升,但是题数上非常不满意,只有两题,是第一名的三分之一。陷入两个大坑,是做过的所有比赛中最郁闷的一次。看了A就觉得可做,不过大概由于慢热的缘故,26min时交到第4次才AC,原因主要是coding时欠考虑吧。又看了B和C,B觉得略有麻烦,C似乎是裸的高精而已,就开始写大数类。看来是完全没有吸取上次手写分数类的教训,对自己当下的coding能力认识不足,大数类不是写错就是效率有问题。期间推了下B的式子,也AC了。在C还是没能AC的情况下,又陷入了F,记忆化搜索,WA无数。后来发现,我的算法和标程不一样,但也没找到实质性的错误。剩下的时间就是在疯狂地改和交C和F,无果。比赛结束前20min意识到C可以用模板,可惜对学校的大数模板完全不熟悉,C++中stream相关的内容也基本忘了,输入输出都有点搞不定……现在看来,这次比赛AC
题数过少的原因之一是我较为熟悉和擅长的DP一题都没出。见到的题目太少,略有些 ad hoc 的题目就会搞不定,这是目前最大弱点。

Contest 4 by Die 的感觉稍微好一点,Rank 5。35 min时一次AC了H,擅长的套路。然后67min时用了三次提交AC了G,算法完全正确,问题在于无视了题目中一个条件,导致两次WA。然后就看到很多人过了B,便也很容易地AC了,在此之前的一次提交竟然是MLE……原因是忘了输入完成以后break。下一道题的目标我选了E,交了9次基本都TLE以后,确定自己的算法错了,就中途离开机房吃饭去了。这场比赛做得太急,导致不细心。赛后觉得,如果更多地花点时间思考下D,是应该能搞出来的,错误地估计了其难度与麻烦程度。

第一轮完毕以后,计罚时和不计罚时的rank分别是9和11。

第二轮,从 Contest 5 by Balloon 开始,逐步有了状态,Rank 3,比赛过程可称顺利。一开始看到了B,觉得是一般难度的DP,随手写了交上去,然后WA。静下来看一下,发现整个算法是错的,换了正确的算法重写,结果疏忽了一句保持单调性的话,交到第三遍才AC。下面是E,非算法题,比较熟练地用着STL,1Y了。F又是一个DP,吸取教训仔细想清楚了才写,同样1Y。接下来做A的时候又卡了一下。最开始写的是搜索,没有估计好复杂度,TLE两次,第一次交TLE了以后还以为是被卡了常数,第二次TLE后算了下复杂度才意识到必须加上记忆化。加记忆化的时候又写错了一次,第四次才AC,属于失误。看到wanwei似乎很轻松的1Y了winsty的小蘑菇题G,虽然明知自己对这种题目根本不擅长,但也没发现有别的可做的题目了。写了很久,调了很久,花费了近一个小时,还好1Y了。在这一段过程中一直都是紧随Murphy,排名第二,看到他过了C,就也去搞。没想到一下子就看出了C的本质,用DP预处理一下后,又1Y了。这时,只剩下了一道没人碰的蘑菇题D,我怎么看都没信心,很累,又计算了一下发现后面的人不大可能超过来,就很高兴地提前近一个小时出去吃饭了。后来得知G的数据有小问题,rejudge了以后rank 2的位置变成了watashi。在题数上,应该说没有任何遗憾,1Y率有提高,很满意。

Contest 6 by Cannon 是目前位置的最好成绩,Rank 2,但是不像上次一样毫无遗憾,因为是由于不必要的失误没得到Rank 1。前一天晚上只睡了五个小时不到导致状态很差。开场先做了矩阵题G,打算秒杀之,没想到一开始就因为矩阵乘法写得不太好而TLE两次,优化了效率以后又接连地WA,要郁闷死了。到论坛里看了答疑才知道原来自己把题意理解错了,改之即AC。91min第7次才AC这题,真是开场不利。AC了G以后开始做C,很老的题,用匹配做,没想到竟然WA。难道自己已经退化到连Hungary这样简单的算法都会写错?很沮丧,就暂时放下了。看到A是不难的DP。哦……好吧,对于我来说不难的DP,WA一次以后AC了,WA的原因是没看清题……寒。把手放在键盘旁的圣经上,定神了以后做C,一个不太难的搜索题,终于一次AC。接下来的时间就在搞C,出很多组数据来测,怎么都看不出为何会WA……这时看到自己是Rank 2,3题的两人之一,但由于罚时太多太多后面的人很有可能超过来。十一点一刻的时候最后交了一次WA终于放弃了,因为实在是找不到错误,加上极其瞌睡,就跑掉了。没想到但是直到结束竟然能保持住Rank 2的位置。后来得知,C是因为输入处理错了导致不断WA。竟然又是该死的scanf里面的”\n”,第三道题了!所以太遗憾了……真不应该那么早离开的。以后再遇到这种莫名其妙的WA一定要仔细验证下输入输出。

Contest 7 by Die 打破了前五场Rank单调递减的神话,Rank 6。做得不够好,罚时太多了,而且策略有失误。开场以后大致看了一遍题,发现A是可做的DP,虽然有点麻烦。写了四十多分钟,交上去WA。惊讶地发现这时AC两题的都有了,都是B和E,E有十几个AC的。意识到E是第一遍没看出来的极水的题,随便一写就1Y了。又去做A,又WA一次,发现没看清题,53min第三次提交才AC了。接下来当然是做B,做的过程很不顺利。一开始发现搜索可做,经历了MLE、TLE和两次WA以后,对搜索有些绝望了。惊奇地发现用匹配可做,粘贴了任意图匹配的模板,终于很不容易地AC了。事实上这题完全可以用搜索,是我一开始写丑了。接下来的目标我锁定在D上,自以为对这类最优比率的题目非常熟悉,不就是二分答案么。虽然写起来也有点繁,不过还是很有信心地在写。写完以后,就总是WA,发现我的Bellman-Ford总是莫名其妙地找不到负环……在那边拼命地调啊改啊,基本上各种可能的错误返回都经历了一遍,还是没能AC。期间发现比我多一题的都是AC了F,但是F使我非常不熟悉的类型,完全没法形成完整的思路。到了只剩一个小时的时候,我终于放弃了搞了一个半小时的D,开始硬着头皮写思路还想不清楚的F,加上这时已经很累了,一直到比赛结束还没调出样例来……罚时太多就不说了,看错题写错代码还可以解释成状态不好。关键是,这场比赛的策略太失误了!像A那么麻烦的DP显然不应该作为第一道题来做,要相信肯定会有比这水的题嘛,这直接导致了E和B的用时比正常值多多了。至于D,后来知道,应该用迭代法做的。自己不会这个方法,AC不了,也没什么不正常。但问题就在于,D搞了那么长时间,交了24次,实在有些过于固执了。虽然E是我不熟悉的类型,但毕竟是非常可做的题,那么多人都AC了,只要有时间慢慢搞应该不存在问题的,至少完全可以写个复杂度略高但好写很多的算法。唉,还是经验少,太莽撞。

第二轮结束以后,计罚时和不计罚时的Rank都是6。

~~~~以下是三、四轮的总结~~~~、

Contest 9 by Cannon,一场有失误、没遗憾的比赛,Rank 6。开场扫了一遍题,没发现特别秒杀的,就开始写F,一道简单的树的题,轻松1A。不久后又有人过了A,属于经典问题。一开始没想清楚算法,WA了,又因 为忘了删掉调试语句Output Limit Exceeded了一次(第一次得到这种返回的说- -)。好在第三次提交就AC了。这时有一些人过了C,一个小蘑菇题。这种题我也掌握了一些诀窍了,就是不厌其烦地尽量结构化,让自己能掌握全局的思路,就 可以了。似乎用了十多分钟就很高兴地AC了这题。E是一个数论题,略加考虑写了一个递推求欧拉函数的程序,还不厌其烦地加了很多优化,没悬念地AC了。这 时,比赛开始才一个半小时,我AC了4题,速度都很快,排名第一位。这时,D那种蘑菇题我显然是不写的,F可以看出来是搜索可怎么分析都会TLE(后来知 道标程是IDA*)。可做的题目只剩下B,一个背包问题的变体。我yy了一会儿,发现自己可能“证明”了,可以将一种规模一定不可做的01背包问题规约到 这个题,所以说,这题一定不可做了!我甚至抱定了“标程的算法是错的”这样的信念。加上我很期盼的快件到了,便很潇洒地离开了机房。当然,当时“规约”的 证明是完全错误的,属于失误了。最后有五个人很艰难地搞出了B题,我就排到了第六,不过也没什么遗憾的。呵呵,恐怕我觉得不遗憾的原因之一是我离开机房以 后取到了期盼已久的相当漂亮的原版书吧,Music: An Appreciation Fifth Brief Edition (with 4 CDs and 1 CD-ROM)。

Contest 10 by Die,发挥正常,成绩斐然,Rank 2。顺序看到C以后觉得好做,一道不难写的图论。第19分钟,全场第一个提交,AC了,然后继续看题。一分钟以后的全场第二次提交是hhgg的,AC了G 题。于是马上去看,发现又是一道跟背包有关的DP。由于细节的错误,拖到52分钟交了第三次才AC。不过仍然是全场第一个2题的,保持rank 1。再次仔细看了剩下的题目,A根本读不懂题意,B是我绝对不碰的蘑菇题,D是暂时不想碰的小蘑菇,E和F好像都是建立图论的模型。于是在那里做E,连续 WA了四次以后才领悟:我建立的图论模型完全是错误的,这不是一道图论题!(事实上,赛后得知是用搜索做的。)放弃了E以后,在很麻烦地写F。一次TLE 和一次WA以后,感到对这题没有把握,无法控制程序的思维复杂度,放下了。看到好多人都在写不太好处理的D,只好跟风了。这题是一道较为麻烦的文本处理的 题目。做这题我采取了非常正确的策略:先在forum里看了长达数页的问题,确保正确理解了题意、没有漏掉细节,然后仔细地设计了程序的结构,怎样最方便 处理,很充足的准备以后才开始写。第一次提交返回的PE比较让人振奋,194分钟时交了第三次AC了。很囧的是,两次PE的唯一原因是没看到输出的 cases之间要加空行的要求……很有喜剧效果。这时好多好多人都三题了,没想到我竟然是总罚时最少的。不记得最后的及时分钟在做什么了,大约已经放弃写 程序了,坐在那里静静地读圣经吧。结果,比赛剩不到十分钟时Fire大神AC了B,就得了第二。

Contest 12 by Balloon,有一定失误,Rank 10。大致看了题以后,没发现能秒杀的。只有小蘑菇题G似乎能做,快速地敲完了代码,却TLE,尝试优化时间效率,却TLE依旧,非常茫然。半小时左右的 时候,看到有很多人AC了F,便去做。写程序找了半天规律,推出了公式,拷贝了大数模块,提交以后SF。改了大数类里的数组大小,就AC了。同时,有不少 人1Y了A,判断出一定是第一次没看出来的秒杀题。找到了一个必要条件,充分性不会证,写出程序过了样例就提交了,一次AC。想到了B的算法,二分答案加 匹配,于是做。第一次有种特例没处理到,SF了,第二次提交AC。期间还在修改和提交最开始写的题G,找到了一处导致死循环的错误,把TLE变成了WA, 又因为某种小错误折腾了很久,终于在九次提交以后AC了,真是很没状态。剩下的题目里,C与E,由于算法复杂和程序蘑菇的缘故,对于我来说不可做。D与H 是可以考虑的,前者是大家都在搞的字符串蘑菇题,后者是数据结构题,用平衡树或者块链做都没问题。二者之间,我选择了H,开始写需要不少扩展的 Treap。最后两小时一直在搞这题,太久没有写这种东西,期间失误数不胜数,最终也没能AC。这次的失误在于:面对令人困扰的G,没能冷静、细致地查 错,而是一遍遍地无策略地乱提交,导致在相同题数的家伙中间排名很靠后。H在实现时有失误,为了删除操作的简洁,采用了懒惰删除的策略,却没有意识到,这 会使其它每种操作都要额外考虑更多的情况,大大提高了整个程序的编程和思维复杂度。B组比赛的特点,似乎是每到题目多多少少都会融入蘑菇的元素,导致我做 起来不顺。这大约与B组组长的特质有关?^_^

Contest 13 by Die,发挥不错,Rank 1,第一次呢,8题的比赛AC掉7题也算比较圆满了。开场看到C题以后觉得比较水,8 min的时候秒杀了(其实还小调试了一会儿弱智错误)。提交的时候看到好几个人过了A,判定一定是水题,找了个充分不必要条件就写了很短的程序交了,13 min时1A。下一道去做的是H,一道多少有点old的题,隐式图里BFS找最短路,同样还是因为弱智错误调试了一会儿,没想到38 min AC的时候还是全场第一个三题的。这时剩下的就没有水题了,明显的广搜但写起来很繁的是B,不太擅长的几何题是D,E看上去挺大自然的,简单但是处理起来 麻烦的是F,一般困难但完全可做的图论题G。考虑了以后,我还是选了F先做,因为这题到最后会被很多人AC,我是不得不做的。好在没有出什么低级失 误,83 min时1A。接下来的选择就不太好做。别人在这时大概都会选D做,因为这的确是剩下的题里面难度最小的一道,不过考虑到我不擅长几何,还是去做了更有把 握的G,果然写起来很顺利,113 min时一次AC。迄今的五题全部是一次AC,用时非常低,Rank 1保持。这时D好几个人过了,B还没人碰,不得不写D了。发现自己这么晚写D还是有好处的,因为一开始题目描述有误,更新了以后变简单了。写好了以后,不 断地过不了样例,不断地发现一开始的思路就有错。好不容易把样例调过了,交上去,返回了我本场的第一个WA……检查了好久才发现是题目要求输出之前要排 序,175 min用了三次提交AC。剩下的两道题里看上去可做的只有B。离结束还有半小时的时候写好了,提交上去WA。很无望地在读代码查错,怎么看都觉得代码无懈 可击,用了几种诡异的办法打补丁,仍持续WA。直到距比赛结束还有五分钟时才猛然发现:自己开数组时犯了一个6*6=24的错误!又是这种令人沮丧的情 形,数组开小了造成的后果是WA而非SF……把数组开大以后,终于在最后时刻AC了,凭借相对很少的罚时,保住了Rank 1。赛后发现,最终也没人碰的E事实上是完全可做的,如果B的数组没有开小,最后留下半小时写E的话,还是有一定可能圆满8题的,算一点点遗憾吧。

Contest 15 by Balloon,令人没想到的是,在上场的个人最好成绩以后,这场迎来了暑期集训的最差表现,Rank 16,惨不忍睹,感觉整个比赛都在梦游。总结教训的话,却找不到什么能凸显出来的失误,只是不知为何一直在犯低级错误。

Contest 16 by Cannon,最后一场,比得如何都很难影响最终的结果,所以对我是一场轻松平淡的比赛,Rank 4。开场很快AC了B和G,简单图论和简单DP。C是一道有一定难度的猜数字的题,O(N^2)的DP是显然的,但这样会TLE也是显然的,我把DP写出 来了以后一直找规律,但无果。后来发现从另一个不太显然的角度去设计状态复杂度就低了,就AC了这题。期间小失误若干,TLE一次,因为忘了测试时 main里写的是for(;;),汗。F是搜索题,时限5s非常厚道,我的复杂度非常高的程序用时4.4s一次AC了,呵呵。 剩下的题里面,可做的只有D,一道可以用RMQ解决的题。SF、MLE很多次,才发现用的RMQ模块有bug……很艰难地用了七次提交AC了。剩下的时间 在yy A题,看到有人过了,但是想不出来,就去吃饭了。

Comments (4)

七月的第一天

前两天期末考试结束了,一下子就感到满心的轻松自在。虽然逐步公布的成绩不断刷新着低分记录,但至少担心挂科的危险已经没有了。不愉快的事情几乎已经遗忘过去,我再次表现出了不想记得的事就能迅速抛到脑后的优良品质,没心没肺惬意地活着。

考试完了以后,就一直在准备家教的最初几节课,还在非常认真地做ppt:简要介绍OI、讲解初赛知识、C语言的Hello World……很繁琐呢。听说大多做一对一家教的人都不做ppt直接讲的?反正我是打算要做就做到极致和完美。也就是说,我打算做的工作量,基本等于自己写一本完善的从零开始的NOIP辅导教程。不过,那不是我一直想做的事情吗?教育是高尚的事情。虽然还没正式开始,发现自己已经很热爱这件事情了呢!后天去第一次试讲,我知道那会很成功的。

这学期上的C语言课程,期末可以编写“大型程序”赢取额外的加分。我编了一个“表达式解析计算器”,可以完成基本的四则运算、科学计算等,还会绘出表达式树(调用graphviz),被助教评为95分。有兴趣的可以下载来看一下,包含完整的源码、Win32可执行程序以及文档。其中我的代码没有什么license,可以拿去任意使用。

放假了,blog 的风格会转为少量多次的即时更新。

Comments (5)

无题 [20080627]

这几天经历众所不太周知的变故和打击,再加上人际关系、期末考等方面的压力,几乎就会崩溃了。

每天和挚友通很长时间电话聊天,在电脑上做很多很无聊的事情,也许只是为了避免静下来细想种种。

好在,好在,除了亲人以外,还有人会无条件地支持我、相信我、鼓励我。让我在这一个人的孤岛,感受到温暖,与感动。

刚才,宋晨姐姐就要离开了,还会想起我,送我那么多东西,多想和她长谈,虽然也许再也没有机会。还有的朋友,会很小心地避免提起让我伤心的字眼,会故意地把话题转移到那些让我激动欢乐的成功经历和辉煌时刻,为了我他们多么良苦用心。

谢谢你们。我保证我会振作。

~~~~~~~~下一段无关主题的分割线~~~~~~~~

许飞《恰许同学年少》。我从来都是喜欢有特点的女声,以及女生。顺便说下,那句“写一首淡淡的歌给你丫(呀)”我听来其囧无比,每听必喷饭。

在听 Rubinstein 的 The Chopin Collection,11CD。随便听了一首 Nocturne之后,我就发现,以前听的 Chopin 都白听了。以前的我一直是只注重作品,忽视演奏者和版本之类。阴差阳错地,竟然从未听到过坊间所称“最正宗的” Robinstein 演绎的 Chopin。一听之下,惊为天人。与其他人相较,我认为 Rubinstein 的演绎既有弹性、不过火,又有激情、蕴涵力量,拿捏得恰到好处。不过 Rubinstein 好像没演奏过革命练习曲(Etudes in C Minor, Op. 10 No. 12 “Revolutionary”),我最喜欢的作品之一,小小遗憾。

看了1999年的影片版 Animal Farm。大约是制作班底的功力原因,力量远不如原著。不过,影片自有文本不能代替的表现力,仍然有令人睁大眼睛思考的片段:巨大的 Napoleon 塑像,俄罗斯风格的革命歌曲,双足站立着西装的猪,都让人难忘。如果像我一样是 George Orwell 以及 Animal Farm 的 fans,这种周边产品自然是非看不可的。没看过原著的,强烈推荐仔细读一下 Animal Farm 的英文原著。

听了郭静的专辑《下一个天亮》。起初没什么感觉,后来几乎沉浸在那旋律中不能自拔。的确很少听过这种描写爱情的歌曲了,那词曲不经意间就触动了什么。还有袁泉《孤独的花朵》,很文艺,很唯美,很好听。

买了不少东西,漫步者的耳塞H180,和耳机H500。本来想买森记MX500、PX200之类的东西,后来想通了,花那么多钱干嘛,支持国产品牌。果然,性价比让我非常满意,对于我这种只是用电脑和手机听音乐的人来说已经相当足够了。还缺一个隔音好的入耳,漫步者H260上百的价钱我看来有点贵了,有人给推荐没?

在淘宝商城买了美的电动牙刷MQ-Y21,用了一次就有点后悔。单独一个旋转刷头本来就是比较初级的设计,如果卖50元以下还比较容易接受。性价比也有点低,下次一定买欧乐B。不过,话说估计任何一种电动牙刷都要比我自己刷得干净。

看了《三体II:黑暗森林》,很震撼。感觉大刘的文风和想象力都比写第一部时成熟、完整了许多,这本书带给我的是远超《三体I》的震撼。当然,也许是因为看第一部时是一段一段地看连载,没有完整地看,导致没有这么好的印象吧。

看了纪录片《森林之歌》的一个精编版。说来惭愧,以前基本没看过这种自然风光题材的纪录片。看了以后,一下子发现,自己作为人类的一员,以前都是以这个星球当仁不让的唯一主人自居的。了解了一点神奇的自然,就开始对以前的那种唯我独尊感到羞愧。打算逐步多看一点此类纪录片,比如最近的 Wild China 以及国家地理之类,为进一步谦卑,为心灵的平和与自如。

再次欣赏了很久以前就听过的唱片《我的海洋》,宽阔。

~~~~~~~~逐步平静与集中的分割线~~~~~~~~

接了一份暑假的OI家教,加上集训,这个假期注定是紧张忙碌热火朝天的。下学期的十五门课,也强迫自己不能不努力调整学习状态。

生活在继续,我也一样。

Comments (8)