<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>笃志以砺，决起而飞</title> <atom:link href="http://ceeji.net/blog/feed/" rel="self" type="application/rss+xml" /><link>http://ceeji.net/blog</link> <description>You know some birds are not meant to be caged, their feathers are just too bright.</description> <lastBuildDate>Sun, 08 Jan 2012 03:00:23 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>取钱惊魂</title><link>http://ceeji.net/blog/%e5%8f%96%e9%92%b1%e6%83%8a%e9%ad%82/</link> <comments>http://ceeji.net/blog/%e5%8f%96%e9%92%b1%e6%83%8a%e9%ad%82/#comments</comments> <pubDate>Sun, 08 Jan 2012 02:59:53 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[未分类]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1804</guid> <description><![CDATA[<p>事情是这样的。晚上刚才肚子饿死了，所以出去吃饭。发现身上身无分文，于是过去中国工商银行取钱。</p><p>走着走着，路边人逐渐少了，到银行附近基本没人。我扭头观察一下，发现一辆白色面包车停在附近。</p><p>突然我想起，今天刚在新闻里看到的枪击抢劫案，南京平头哥。上次他作案就是在开了个黑车在附近蹲点，人出来直接搞定。转眼一想，我一个学生又没多少钱，他应该知道的，略微放心。但是又突然想起今天新闻里讲到的他的作案历史里有这么一条：</p><p>长沙市</p><p>2009年10月14日</p><p>长沙市天心区南郊公园山坡上发生一起枪击案，遇害人李成寿身中6枪，身上20元钱未被抢。</p><p>对于这种20块钱都抢的人，正如某人所说，“没有原则的人是最令人恐怖的”，你根本不知道什么时候他会对谁开枪。</p><p>取完钱，我看到周围空旷无人的街道，又看着那辆诡异的白色面包车…狠下决心，按动按钮打开自动取款处的大门，若无其事的回去…总算平安归来，但是这是我这么长时间来第一次感觉到强烈的不安全感。这个社会，真是……</p><p>所以最近大家还是相互转载分享一下，都注意注意。这人现在全国通缉，估计早豁出去了。</p><p>相关文章推荐： 采姑娘的小蘑菇 【成绩】百度NOIP吧编程挑战赛成绩公布</p>]]></description> <content:encoded><![CDATA[<p>事情是这样的。晚上刚才肚子饿死了，所以出去吃饭。发现身上身无分文，于是过去中国工商银行取钱。</p><p>走着走着，路边人逐渐少了，到银行附近基本没人。我扭头观察一下，发现一辆白色面包车停在附近。</p><p>突然我想起，今天刚在新闻里看到的枪击抢劫案，南京平头哥。上次他作案就是在开了个黑车在附近蹲点，人出来直接搞定。转眼一想，我一个学生又没多少钱，他应该知道的，略微放心。但是又突然想起今天新闻里讲到的他的作案历史里有这么一条：</p><p><em>长沙市</em></p><p><em>2009年10月14日</em></p><p><em>长沙市天心区南郊公园山坡上发生一起枪击案，遇害人李成寿身中6枪，身上20元钱未被抢。</em></p><p>对于这种20块钱都抢的人，正如某人所说，“没有原则的人是最令人恐怖的”，你根本不知道什么时候他会对谁开枪。</p><p>取完钱，我看到周围空旷无人的街道，又看着那辆诡异的白色面包车…狠下决心，按动按钮打开自动取款处的大门，若无其事的回去…总算平安归来，但是这是我这么长时间来第一次感觉到强烈的不安全感。这个社会，真是……</p><p>所以最近大家还是相互转载分享一下，都注意注意。这人现在全国通缉，估计早豁出去了。</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/%e9%87%87%e5%a7%91%e5%a8%98%e7%9a%84%e5%b0%8f%e8%98%91%e8%8f%87/' rel='bookmark' title='采姑娘的小蘑菇'>采姑娘的小蘑菇</a></li><li><a
href='http://ceeji.net/blog/noip-2-res/' rel='bookmark' title='【成绩】百度NOIP吧编程挑战赛成绩公布'>【成绩】百度NOIP吧编程挑战赛成绩公布</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e5%8f%96%e9%92%b1%e6%83%8a%e9%ad%82/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>繁體與正體（轉載）</title><link>http://ceeji.net/blog/%e7%b9%81%e9%ab%94%e8%88%87%e6%ad%a3%e9%ab%94%ef%bc%88%e8%bd%89%e8%bc%89%ef%bc%89/</link> <comments>http://ceeji.net/blog/%e7%b9%81%e9%ab%94%e8%88%87%e6%ad%a3%e9%ab%94%ef%bc%88%e8%bd%89%e8%bc%89%ef%bc%89/#comments</comments> <pubDate>Tue, 03 Jan 2012 10:22:35 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[未分类]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1801</guid> <description><![CDATA[<p>台灣大約從三、四年前開始，刮起一陣「繁體正名」風。正名的原因，似乎是因為「簡體」一詞，中的「簡」有簡潔、簡明之意，相較之下，「繁體」一詞中的的「繁」則有繁複、繁雜之貶意。</p><p>2002 年 11 月，台北市政府教育局就曾與我聯絡，希望我可以出席「臺北市政府推動正體字及國字標準字體說帖等相關事宜」的會議。不過因為我人在南部，當日整天又都有排好的行程，沒辦法出席此次會議。</p><p>雖然無法出席會議，我還是回了封信，簡單陳述了我的論點。基本上，我覺得華語兩種書寫系統的比較，是一個有趣的議題，但在討論的時候很不容易保持中立的立場。我看過北市教育局寄給我參考的文件，發現許多比較是一面倒地支持繁體字。尤其其中許多論點都是十分直觀的，沒有實徵證據支持，因此並非十分有說服力。</p><p>我個人非常不贊成使用「正體」一詞。「正體」的「正」有正確、正統之意，等於視簡體字為錯字或異體，對簡體字是一種非常強烈的歧視。「正體」一詞的使用，不僅未能適當反映華文的現狀，還有些情緒化與泛政治化。</p><p>我覺得驚訝的是，「繁體正名」的情緒化和泛政治化，和中華人民共和國最初推行文字改革的心態，出奇地相似。當初推動簡化字的終極目標是廢漢字，將漢字拉丁化。廢漢字的主要論點有二，都非常情緒化：</p> 漢字太難學，導致中國識字率低； 漢字不科學，阻礙中國進步。<p>「漢字簡化方案」在 1956 年正式推行時，在許多激進的文字改革者心中只是過渡產物。實際在推行文字改革時，卻連簡化字都有被接受的困難。1977 年推行的第二次「漢字簡化方案」，就因為造成許多亂象，在 1986 年又被廢止。</p><p>五十年後的今天，我們會發現當年的論點都沒有實徵證據。比較台灣與大陸的識字率，讓大家體認到，關鍵在普及教育，而非簡化漢字。當年宣判漢字不科學的一些諸如漢字不方便打字的技術理由，現在看來也很可笑。因為技術的進步，讓漢字也一樣能夠資訊化。</p><p>固然在歷史上簡體字較繁體字晚出現，然而現在兩者的地位是平行的，都已經標準化，也都是現代華語的標準書寫系統之一。就像英文一樣，英式和美式的拼法不同，但你不能說哪一個是「正體英文」。而且，不論是從記錄口語的功能來看，或是從閱讀的心理歷程來看，華語的兩種書寫系統之中的哪一種都不會明顯優於另外一種。</p><p>今天再談簡繁體字的優劣問題，其實已經沒有太大意義。台灣不可能改用簡體字，現在的中國也不可能再像當年一樣再來一次文字改革。但我們確實可以從漢字簡化的歷史上學到一個教訓，那就是政策的推行要有實徵研究作基礎，而且必須與政治區隔，不能只憑決策者的直覺與情緒就一意孤行。</p><p>不喜歡「簡體／繁體」用詞的人，可以改用「傳統字／ 簡化字」的用法，既避開了「繁體」的負面聯想，又不會有「正體」的歧視性。如果還是想用雙字詞，「繁體」一詞雖讓某些人不滿意，但還是應該接受。因為「正體」一詞的使用對簡化字實在過於歧視，真的用不得。</p><p>来自 http://taiwan.chtsai.org/2005/11/12/fanti_yu_zhengti/</p><p>相关文章推荐： 采姑娘的小蘑菇 【成绩】百度NOIP吧编程挑战赛成绩公布</p>]]></description> <content:encoded><![CDATA[<p>台灣大約從三、四年前開始，刮起一陣「繁體正名」風。正名的原因，似乎是因為「簡體」一詞，中的「簡」有簡潔、簡明之意，相較之下，「繁體」一詞中的的「繁」則有繁複、繁雜之貶意。</p><p>2002 年 11 月，台北市政府教育局就曾與我聯絡，希望我可以出席「臺北市政府推動正體字及國字標準字體說帖等相關事宜」的會議。不過因為我人在南部，當日整天又都有排好的行程，沒辦法出席此次會議。</p><p>雖然無法出席會議，我還是回了封信，簡單陳述了我的論點。基本上，我覺得華語兩種書寫系統的比較，是一個有趣的議題，但在討論的時候很不容易保持中立的立場。我看過北市教育局寄給我參考的文件，發現許多比較是一面倒地支持繁體字。尤其其中許多論點都是十分直觀的，沒有實徵證據支持，因此並非十分有說服力。</p><p>我個人非常不贊成使用「正體」一詞。「正體」的「正」有正確、正統之意，等於視簡體字為錯字或異體，對簡體字是一種非常強烈的歧視。「正體」一詞的使用，不僅未能適當反映華文的現狀，還有些情緒化與泛政治化。</p><p>我覺得驚訝的是，「繁體正名」的情緒化和泛政治化，和中華人民共和國最初推行文字改革的心態，出奇地相似。當初推動簡化字的終極目標是廢漢字，將漢字拉丁化。廢漢字的主要論點有二，都非常情緒化：</p><ol><li>漢字太難學，導致中國識字率低；</li><li>漢字不科學，阻礙中國進步。</li></ol><p>「漢字簡化方案」在 1956 年正式推行時，在許多激進的文字改革者心中只是過渡產物。實際在推行文字改革時，卻連簡化字都有被接受的困難。1977 年推行的第二次「漢字簡化方案」，就因為造成許多亂象，在 1986 年又被廢止。</p><p>五十年後的今天，我們會發現當年的論點都沒有實徵證據。比較台灣與大陸的識字率，讓大家體認到，關鍵在普及教育，而非簡化漢字。當年宣判漢字不科學的一些諸如漢字不方便打字的技術理由，現在看來也很可笑。因為技術的進步，讓漢字也一樣能夠資訊化。</p><p>固然在歷史上簡體字較繁體字晚出現，然而現在兩者的地位是平行的，都已經標準化，也都是現代華語的標準書寫系統之一。就像英文一樣，英式和美式的拼法不同，但你不能說哪一個是「正體英文」。而且，不論是從記錄口語的功能來看，或是從閱讀的心理歷程來看，華語的兩種書寫系統之中的哪一種都不會明顯優於另外一種。</p><p>今天再談簡繁體字的優劣問題，其實已經沒有太大意義。台灣不可能改用簡體字，現在的中國也不可能再像當年一樣再來一次文字改革。但我們確實可以從漢字簡化的歷史上學到一個教訓，那就是政策的推行要有實徵研究作基礎，而且必須與政治區隔，不能只憑決策者的直覺與情緒就一意孤行。</p><p>不喜歡「簡體／繁體」用詞的人，可以改用「傳統字／ 簡化字」的用法，既避開了「繁體」的負面聯想，又不會有「正體」的歧視性。如果還是想用雙字詞，「繁體」一詞雖讓某些人不滿意，但還是應該接受。因為「正體」一詞的使用對簡化字實在過於歧視，真的用不得。</p><p>来自 <a
href="http://taiwan.chtsai.org/2005/11/12/fanti_yu_zhengti/">http://taiwan.chtsai.org/2005/11/12/fanti_yu_zhengti/</a></p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/%e9%87%87%e5%a7%91%e5%a8%98%e7%9a%84%e5%b0%8f%e8%98%91%e8%8f%87/' rel='bookmark' title='采姑娘的小蘑菇'>采姑娘的小蘑菇</a></li><li><a
href='http://ceeji.net/blog/noip-2-res/' rel='bookmark' title='【成绩】百度NOIP吧编程挑战赛成绩公布'>【成绩】百度NOIP吧编程挑战赛成绩公布</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e7%b9%81%e9%ab%94%e8%88%87%e6%ad%a3%e9%ab%94%ef%bc%88%e8%bd%89%e8%bc%89%ef%bc%89/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>初探软件开发的千种风情 PPT 下载</title><link>http://ceeji.net/blog/%e5%88%9d%e6%8e%a2%e8%bd%af%e4%bb%b6%e5%bc%80%e5%8f%91%e7%9a%84%e5%8d%83%e7%a7%8d%e9%a3%8e%e6%83%85-ppt-%e4%b8%8b%e8%bd%bd/</link> <comments>http://ceeji.net/blog/%e5%88%9d%e6%8e%a2%e8%bd%af%e4%bb%b6%e5%bc%80%e5%8f%91%e7%9a%84%e5%8d%83%e7%a7%8d%e9%a3%8e%e6%83%85-ppt-%e4%b8%8b%e8%bd%bd/#comments</comments> <pubDate>Fri, 18 Nov 2011 18:59:38 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[未分类]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1798</guid> <description><![CDATA[<p>点此下载</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>相关文章推荐： 百度NOIP吧编程挑战赛 解题报告 采姑娘的小蘑菇</p>]]></description> <content:encoded><![CDATA[<p><a
href="http://ceeji.net/docs/start-program.pptx" target="_blank">点此下载</a></p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/noip-2-down/' rel='bookmark' title='百度NOIP吧编程挑战赛 解题报告'>百度NOIP吧编程挑战赛 解题报告</a></li><li><a
href='http://ceeji.net/blog/%e9%87%87%e5%a7%91%e5%a8%98%e7%9a%84%e5%b0%8f%e8%98%91%e8%8f%87/' rel='bookmark' title='采姑娘的小蘑菇'>采姑娘的小蘑菇</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e5%88%9d%e6%8e%a2%e8%bd%af%e4%bb%b6%e5%bc%80%e5%8f%91%e7%9a%84%e5%8d%83%e7%a7%8d%e9%a3%8e%e6%83%85-ppt-%e4%b8%8b%e8%bd%bd/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>儿时二三事</title><link>http://ceeji.net/blog/%e5%84%bf%e6%97%b6%e4%ba%8c%e4%b8%89%e4%ba%8b/</link> <comments>http://ceeji.net/blog/%e5%84%bf%e6%97%b6%e4%ba%8c%e4%b8%89%e4%ba%8b/#comments</comments> <pubDate>Tue, 25 Oct 2011 16:48:41 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[未分类]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1790</guid> <description><![CDATA[<p>今天在人人上偶遇小学同学，经过她的提醒，突然想起了一些小时候的事情。</p> 一 我的世界<p>大概小学三年级左右，铅笔逐渐被钢笔代替，而后又出现了中性笔（我们那里叫水笔）的浪潮。当然，如此一来很多人就开始错字连篇，比如我。这时候各种更正类产品就横行于世了。当时我们那里所卖的改正纸是散装的，容易丢失。所以我就灵机一动，费劲脑汁，将改正纸装订成册，并署名”改正纸公司”，并拉拢我们班的同学帮我卖。有人说她还记得当时我给她的工资是1.2元。</p><p>这让我回想起了很多我小时候自己的世界。随后我还做过很多类似的事情，有过相当多的发明和创新。</p><p>比如，我精心制作了自己品牌的作业本，这种作业本采用了不同于普通作业本的装帧设计，对其纸张、封面都非常考究，装订更是下了特别的功夫，有效避免了其他作业本写了就散架的命运。每本作业本的封面都有我自己的艺术性的设计，对于其中的一笔一划都有讲究。高级一些的作业本，还采用了包皮封面设计，封面由较为解释的打印纸包裹内页纸设计而成，并在毫米级别上保证封面和内页的长宽的吻合。</p><p>在写小学语文老师布置给我的”优美词句”作业时，我就仿佛又开了一家期刊公司。每次写优美词句作业，我会设计很多”系列文章”，采用连载的方式进行抄写，很多很长的文章（印刷后十几页、几十页的文章）硬是被我连载抄写完成，坚持不懈绝不中断。我特别注重优美词句本上各种颜色、各种文章类型和各种风格的平衡，很注重诗词、小说、散文的搭配，不同颜色花边的搭配，甚至页码风格的统一性。这样的优美词句本我积累了好多本，到现在也不舍得扔。</p><p>我小学的记事本也颇有特色。首先，我的记事本是保持统一的系列的，如果中断我会感到特别难过。我的记事本一般不叫记事本，我会给她起一个艺术的名字。翻开记事本，会有自己设计的封面，（一般是单色水笔描绘），并有抒发情感和激励自己进步的句子，再往后会有严格的目录和页码编排。目录一般是空出来的，在本子用完之后，认认真真地总结好，写在前面。对于比较重大的事件（比如今天下午不上课），我会画很多画来庆祝，比如灯笼，飞翔的小鸟等，并用自己设计的艺术字体来展现这一兴奋。而对于老师安排的很多事情，如果我记录在本子上，也会用别人无法理解的特殊符号或者是文字来进行记录，自己觉得又形象又生动。</p><p>小学五年级，在父母的要求下，我上了少儿剑桥英语培训班，可是我对英语不感兴趣。上课对我来说很煎熬，然而，老师说最后还要考试，内容是读课文。我就要想出一个应付策略。于是我硬是发明出了一套完整的个人音标记录法，在老师上课读课文的时候，用这套符号完整记录了每句话的发音。期末考试之时，老师抽签选定页码，并要求阅读一段课文。虽然我完全不知道我自己在读什么，但是因为上面标的有自己的音标，所以顺利地过关了。</p><p>那时候我还设想过我这些所有的产品和发明都要有一套统一的信号和通信系统，于是我在我所经过的所有地方（主要是各种书本和作业本上），到处都画上了信号塔，并且在很多地方标上了信号的强度。距离信号塔近的地方信号强，距离信号塔远的地方信号弱。那时候，英语书上的单词我几乎都不认识，但是天生的好奇心让我还是想知道上面写的是什么。于是每当老师讲解这些单词时，我还是会把意思标上的（虽然我懒得去记忆和学习）。但是就算标上英文单词意思这件小事，我也做的不同寻常。我设想，英语书上的单词就像一个触摸屏上的区域，当我眼睛盯着他看的时候，上面应该会显示出单词的意思，这是”通过信号塔里的信号连接网络进行屏幕取词”获得的。所以，在信号强的地方，我就把意思写的又多又详细，甚至还有我自己的音标，而信号弱的地方，我竟然可以坚持不写意思，即使这个地方很重要。我只是想证明，信号弱的地方无法取词。所以，翻看我小学的剑桥英语书，会发现上面到处都是类似于Windows”工具提示”的小气泡，里面悬浮显示单词的意思，而这个悬浮的气泡，我一般会精确地描绘出它的阴影。我一般将阴影画在右下方。</p><p>有了信号塔的引导，我小学的课桌就倒霉了。每次我拿起自己的水笔，就好像看到了一个强大的国家，这个国家有自己的作业场、改正纸场、信号塔，当然也要有——火箭。这些火箭是通过信号塔进行精确制导的，而火箭本身实际上就是——水笔。每当上课无聊之时，我就拿起水笔，笔直地放在地上，然后想象其应该偏移的角度（虽然没有学过物理），然后3、2、1、发射，水笔腾空而上（在我手举着水笔的情况下），准确飞行，在各种信号塔（类似于GPS）的制导下，准确落在敌方指定区域，四周马上惨不忍睹（用水笔尖狠狠地扎桌面），千疮百孔。有时候会发射失败，我会非常懊恼（但是其实发射失败也是我自己的手控制的，类似于精神分裂），我玩这个可以不亦乐乎，但是不知道我的母校有多少桌椅因此受损。</p> 二 我的软件<p>大概小学四年级的时候，我终于拥有了相当于自己的电脑（实际上是家里共用，但显然大部分时间是我在用）。当时的我，很痴狂地写出了自己的系列产品，并且都以”希冀公司”的名义发布，包括播放器（还有两个版本）、俄罗斯方块、五子棋等。</p><p></p><p></p><p></p><p></p><p></p><p>播放器还是一款共享（收费）软件。我在那款软件中写了完整的注册代码，并且自己编了一个正确的序列号。我满怀期望地将这款软件发布出去，大肆宣传。</p><p>很多年之后，有一个人花了10元购买了正版的软件。虽然我早以忘记了这款软件的正确序列号是什么，但是却对这个人抱有感激之心。在这个年代，肯花10元购买播放器的人，真的不多见。</p><p>小学的时候，我的另一个伟大的软件项目就是”快乐编程”编程语言，这是一款面向对象、全可视化、支持扩展的中文编程语言。我写出了它的可视化界面，核心类库，以及部分语法解析，但终究没能完成完整的语法树解析。为了这个编程语言，我努力并陶醉了两三年。而现在，源代码已经找不到了。</p> 三 我的音乐<p>四岁的时候，我开始表现出自己的音乐天赋。那时候，我每天在家里骑小自行车绕着客厅转着玩，玩的时候就开着我们家的磁带机，播放一些儿歌。有一天，我爸拿出很小的一个电子琴，告诉我按键盘可以发出声音，于是我摸索了几下，就弹出了一首我听过的曲子。父母大为惊异，就送我去学电子琴。时至今日，我一直能够在听到曲子就听出准确音高、音长并将曲谱牢记在心，别人问我是怎么做到的，其实从小就会。</p><p>刚开始学习音乐的日子并不快乐，我的童年也因此和别人迥异。下学后，别人总是和小朋友们玩耍，而我经常要练习枯燥无味的曲子。由于那时候对音乐鉴赏能力不足，很多时候我根本我练的曲子有什么好听的。这样的生活持续了几年，直到小学三四年级的时候。</p><p>那时候我在我们市里已经稍有名气，在各个场合里经过很多的上台演出，我毫不怯场，表现优异。记得有一次我来到某个商场外面，看到他们雇了一个人在那里弹琴招揽生意，我就过去说，你弹的不好，让我来吧。随后我让那个人让位置，我自己开始弹奏。</p><p>由于参加比赛和演出，有时候我走在外面，会被别人问，你就是电视上的那个人吗？我父母会自豪的说，是的。</p><p>可是”稻花香”杯器乐大赛改变了我。那一次我参加了市里的比赛，只获得了三等奖。我差点将奖杯摔在地上，哭着喊，有什么了不起，一等奖不就是因为弹的是钢琴么。</p><p>那时候我家里并不富裕，但是我不懂。后来回想，那时父母定然是下了很大决心，才有勇气给我买了钢琴。我破旧的小家里突然来了这么一个庞然大物时，我自己突然感觉很惭愧。我并不是因为喜欢钢琴而学习，而是因为要强。</p><p>钢琴学了两三年，我的水平并不算很高，随着课业的加重，我就逐渐放弃了音乐的专业学习。但是，毕竟是从四岁开始的熏陶，音乐对我如同血液，已经与我无法分割。随着年龄的增长，我对音乐的热爱已经根深蒂固，如痴如醉。自从我第一次听到了笛子的声音，我就感到了我我属于笛子。那是中华民族自己的乐器，也呼唤着我心中最本质的热爱。现在，我作为武汉大学笛箫协会主席团，也在尽自己最大的努力宣传民族音乐和中华传统文化。</p><p>相关文章推荐： 采姑娘的小蘑菇 【成绩】百度NOIP吧编程挑战赛成绩公布 [...]]]></description> <content:encoded><![CDATA[<p>今天在人人上偶遇小学同学，经过她的提醒，突然想起了一些小时候的事情。</p><h2>一 我的世界</h2><p>大概小学三年级左右，铅笔逐渐被钢笔代替，而后又出现了中性笔（我们那里叫水笔）的浪潮。当然，如此一来很多人就开始错字连篇，比如我。这时候各种更正类产品就横行于世了。当时我们那里所卖的改正纸是散装的，容易丢失。所以我就灵机一动，费劲脑汁，将改正纸装订成册，并署名”改正纸公司”，并拉拢我们班的同学帮我卖。有人说她还记得当时我给她的工资是1.2元。</p><p>这让我回想起了很多我小时候自己的世界。随后我还做过很多类似的事情，有过相当多的发明和创新。</p><p>比如，我精心制作了自己品牌的作业本，这种作业本采用了不同于普通作业本的装帧设计，对其纸张、封面都非常考究，装订更是下了特别的功夫，有效避免了其他作业本写了就散架的命运。每本作业本的封面都有我自己的艺术性的设计，对于其中的一笔一划都有讲究。高级一些的作业本，还采用了包皮封面设计，封面由较为解释的打印纸包裹内页纸设计而成，并在毫米级别上保证封面和内页的长宽的吻合。</p><p>在写小学语文老师布置给我的”优美词句”作业时，我就仿佛又开了一家期刊公司。每次写优美词句作业，我会设计很多”系列文章”，采用连载的方式进行抄写，很多很长的文章（印刷后十几页、几十页的文章）硬是被我连载抄写完成，坚持不懈绝不中断。我特别注重优美词句本上各种颜色、各种文章类型和各种风格的平衡，很注重诗词、小说、散文的搭配，不同颜色花边的搭配，甚至页码风格的统一性。这样的优美词句本我积累了好多本，到现在也不舍得扔。</p><p>我小学的记事本也颇有特色。首先，我的记事本是保持统一的系列的，如果中断我会感到特别难过。我的记事本一般不叫记事本，我会给她起一个艺术的名字。翻开记事本，会有自己设计的封面，（一般是单色水笔描绘），并有抒发情感和激励自己进步的句子，再往后会有严格的目录和页码编排。目录一般是空出来的，在本子用完之后，认认真真地总结好，写在前面。对于比较重大的事件（比如今天下午不上课），我会画很多画来庆祝，比如灯笼，飞翔的小鸟等，并用自己设计的艺术字体来展现这一兴奋。而对于老师安排的很多事情，如果我记录在本子上，也会用别人无法理解的特殊符号或者是文字来进行记录，自己觉得又形象又生动。</p><p>小学五年级，在父母的要求下，我上了少儿剑桥英语培训班，可是我对英语不感兴趣。上课对我来说很煎熬，然而，老师说最后还要考试，内容是读课文。我就要想出一个应付策略。于是我硬是发明出了一套完整的个人音标记录法，在老师上课读课文的时候，用这套符号完整记录了每句话的发音。期末考试之时，老师抽签选定页码，并要求阅读一段课文。虽然我完全不知道我自己在读什么，但是因为上面标的有自己的音标，所以顺利地过关了。</p><p>那时候我还设想过我这些所有的产品和发明都要有一套统一的信号和通信系统，于是我在我所经过的所有地方（主要是各种书本和作业本上），到处都画上了信号塔，并且在很多地方标上了信号的强度。距离信号塔近的地方信号强，距离信号塔远的地方信号弱。那时候，英语书上的单词我几乎都不认识，但是天生的好奇心让我还是想知道上面写的是什么。于是每当老师讲解这些单词时，我还是会把意思标上的（虽然我懒得去记忆和学习）。但是就算标上英文单词意思这件小事，我也做的不同寻常。我设想，英语书上的单词就像一个触摸屏上的区域，当我眼睛盯着他看的时候，上面应该会显示出单词的意思，这是”通过信号塔里的信号连接网络进行屏幕取词”获得的。所以，在信号强的地方，我就把意思写的又多又详细，甚至还有我自己的音标，而信号弱的地方，我竟然可以坚持不写意思，即使这个地方很重要。我只是想证明，信号弱的地方无法取词。所以，翻看我小学的剑桥英语书，会发现上面到处都是类似于Windows”工具提示”的小气泡，里面悬浮显示单词的意思，而这个悬浮的气泡，我一般会精确地描绘出它的阴影。我一般将阴影画在右下方。</p><p>有了信号塔的引导，我小学的课桌就倒霉了。每次我拿起自己的水笔，就好像看到了一个强大的国家，这个国家有自己的作业场、改正纸场、信号塔，当然也要有——火箭。这些火箭是通过信号塔进行精确制导的，而火箭本身实际上就是——水笔。每当上课无聊之时，我就拿起水笔，笔直地放在地上，然后想象其应该偏移的角度（虽然没有学过物理），然后3、2、1、发射，水笔腾空而上（在我手举着水笔的情况下），准确飞行，在各种信号塔（类似于GPS）的制导下，准确落在敌方指定区域，四周马上惨不忍睹（用水笔尖狠狠地扎桌面），千疮百孔。有时候会发射失败，我会非常懊恼（但是其实发射失败也是我自己的手控制的，类似于精神分裂），我玩这个可以不亦乐乎，但是不知道我的母校有多少桌椅因此受损。</p><h2>二 我的软件</h2><p>大概小学四年级的时候，我终于拥有了相当于自己的电脑（实际上是家里共用，但显然大部分时间是我在用）。当时的我，很痴狂地写出了自己的系列产品，并且都以”希冀公司”的名义发布，包括播放器（还有两个版本）、俄罗斯方块、五子棋等。</p><p><img
class="alignnone" src="http://ceejiupload-upload.stor.sinaapp.com/1.png" alt="" width="380" height="155" /></p><p><img
class="alignnone" src="http://ceejiupload-upload.stor.sinaapp.com/2.png" alt="" width="345" height="330" /></p><p><img
class="alignnone" src="http://ceejiupload-upload.stor.sinaapp.com/3.png" alt="" width="380" height="335" /></p><p><img
class="alignnone" src="http://ceejiupload-upload.stor.sinaapp.com/4.png" alt="" width="357" height="388" /></p><p><img
class="alignnone" src="http://ceejiupload-upload.stor.sinaapp.com/5.png" alt="" width="394" height="126" /></p><p>播放器还是一款共享（收费）软件。我在那款软件中写了完整的注册代码，并且自己编了一个正确的序列号。我满怀期望地将这款软件发布出去，大肆宣传。</p><p>很多年之后，有一个人花了10元购买了正版的软件。虽然我早以忘记了这款软件的正确序列号是什么，但是却对这个人抱有感激之心。在这个年代，肯花10元购买播放器的人，真的不多见。</p><p>小学的时候，我的另一个伟大的软件项目就是”快乐编程”编程语言，这是一款面向对象、全可视化、支持扩展的中文编程语言。我写出了它的可视化界面，核心类库，以及部分语法解析，但终究没能完成完整的语法树解析。为了这个编程语言，我努力并陶醉了两三年。而现在，源代码已经找不到了。</p><h2>三 我的音乐</h2><p>四岁的时候，我开始表现出自己的音乐天赋。那时候，我每天在家里骑小自行车绕着客厅转着玩，玩的时候就开着我们家的磁带机，播放一些儿歌。有一天，我爸拿出很小的一个电子琴，告诉我按键盘可以发出声音，于是我摸索了几下，就弹出了一首我听过的曲子。父母大为惊异，就送我去学电子琴。时至今日，我一直能够在听到曲子就听出准确音高、音长并将曲谱牢记在心，别人问我是怎么做到的，其实从小就会。</p><p>刚开始学习音乐的日子并不快乐，我的童年也因此和别人迥异。下学后，别人总是和小朋友们玩耍，而我经常要练习枯燥无味的曲子。由于那时候对音乐鉴赏能力不足，很多时候我根本我练的曲子有什么好听的。这样的生活持续了几年，直到小学三四年级的时候。</p><p>那时候我在我们市里已经稍有名气，在各个场合里经过很多的上台演出，我毫不怯场，表现优异。记得有一次我来到某个商场外面，看到他们雇了一个人在那里弹琴招揽生意，我就过去说，你弹的不好，让我来吧。随后我让那个人让位置，我自己开始弹奏。</p><p>由于参加比赛和演出，有时候我走在外面，会被别人问，你就是电视上的那个人吗？我父母会自豪的说，是的。</p><p>可是”稻花香”杯器乐大赛改变了我。那一次我参加了市里的比赛，只获得了三等奖。我差点将奖杯摔在地上，哭着喊，有什么了不起，一等奖不就是因为弹的是钢琴么。</p><p>那时候我家里并不富裕，但是我不懂。后来回想，那时父母定然是下了很大决心，才有勇气给我买了钢琴。我破旧的小家里突然来了这么一个庞然大物时，我自己突然感觉很惭愧。我并不是因为喜欢钢琴而学习，而是因为要强。</p><p>钢琴学了两三年，我的水平并不算很高，随着课业的加重，我就逐渐放弃了音乐的专业学习。但是，毕竟是从四岁开始的熏陶，音乐对我如同血液，已经与我无法分割。随着年龄的增长，我对音乐的热爱已经根深蒂固，如痴如醉。自从我第一次听到了笛子的声音，我就感到了我我属于笛子。那是中华民族自己的乐器，也呼唤着我心中最本质的热爱。现在，我作为武汉大学笛箫协会主席团，也在尽自己最大的努力宣传民族音乐和中华传统文化。</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/%e9%87%87%e5%a7%91%e5%a8%98%e7%9a%84%e5%b0%8f%e8%98%91%e8%8f%87/' rel='bookmark' title='采姑娘的小蘑菇'>采姑娘的小蘑菇</a></li><li><a
href='http://ceeji.net/blog/noip-2-res/' rel='bookmark' title='【成绩】百度NOIP吧编程挑战赛成绩公布'>【成绩】百度NOIP吧编程挑战赛成绩公布</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e5%84%bf%e6%97%b6%e4%ba%8c%e4%b8%89%e4%ba%8b/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>关于方滨兴在武汉大学计算机学院被砸事件</title><link>http://ceeji.net/blog/%e5%85%b3%e4%ba%8e%e6%96%b9%e6%bb%a8%e5%85%b4%e5%9c%a8%e6%ad%a6%e6%b1%89%e5%a4%a7%e5%ad%a6%e8%ae%a1%e7%ae%97%e6%9c%ba%e5%ad%a6%e9%99%a2%e8%a2%ab%e7%a0%b8%e4%ba%8b%e4%bb%b6/</link> <comments>http://ceeji.net/blog/%e5%85%b3%e4%ba%8e%e6%96%b9%e6%bb%a8%e5%85%b4%e5%9c%a8%e6%ad%a6%e6%b1%89%e5%a4%a7%e5%ad%a6%e8%ae%a1%e7%ae%97%e6%9c%ba%e5%ad%a6%e9%99%a2%e8%a2%ab%e7%a0%b8%e4%ba%8b%e4%bb%b6/#comments</comments> <pubDate>Sun, 24 Jul 2011 20:36:05 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[未分类]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1739</guid> <description><![CDATA[<p>这件事可以简述为：前段时间，北京邮电大学校长，中国国家网络防火墙（GFW）之父方滨兴先生在武汉大学计算机学院B404教室进行项目的调研验收时，在计算机学院大门口被一名来自华中科技大学建筑学系的学生所扔的鞋砸中胸部。</p><p>这件事发生后牵连到了几个方面，我说一下自己的观点。</p> 一、该不该砸？<p>个人觉得该砸。这样说难免会被很多人认为不理性且不文明。不少人认为，方滨兴只是做技术的，并不是政策的制定者，砸方滨兴并不能解决问题；而且封锁网站的指令也肯定不是方滨兴做主的。方滨兴只是跳梁小丑而已。</p><p>然而，方滨兴作为中国工程院院士，北京邮电大学校长，自愿（至少也是半自愿）地参与到了防火墙的研发中，作为一个自愿参加者和既得利益者，其责任决不能因为自己不是制定政策者而逃脱。既然享受了既得便利，就理应承担相应的责任。如果方滨兴是被逼迫参与该课题，倒有情可原，然而从现有的证据来看，暂时看不出有这样的迹象。然而，其应该承担多大的责任？我个人认为不大。原因如上所示：“封锁网站的指令肯定不是方滨兴做主的。方滨兴只是跳梁小丑而已。”</p><p>再者就是文明问题。我个人也是很崇尚文明的，然而，在说别人是否文明之前，有一个很重要的问题，任何人的权利受到侵害时，进行适当的反击是合情合理合法的事情，这叫做“正当防卫”。道德也是一个各人有各人看法的问题，如果你认为当别人侵犯了你的权利时，骂对方出气是道德的，那么扔鸡蛋扔鞋应该也不算过分。反之也成立。</p> 二、如果是我，我会去做吗？<p>我不会。因为我认为砸他并不能解决问题，而且，我不是一个喜欢出气的人。</p> 三、应该取消网络监管吗？<p>现有的网络防火墙过于严格是IT界大多数人公认的，但并不代表我支持取消网络防火墙。对于有些内容的过滤我是赞成的。如果防火墙过滤的内容是虚假广告、民族仇恨煽动、宣扬反人类与恐怖活动、诈骗与钓鱼网站之类的内容，我认为我是可以接受的。尤其是，如果中国可以实现“只要一个钓鱼网站被发现，全国访问这个网站都会被重置”，我想没有多少人会反对。我对GFW最大的仇恨在于，该屏蔽的不屏蔽，不该屏蔽的却屏蔽。屏蔽网站其实和古代审查书籍出版是一样的，不会有一个国家允许任何图书出版，即使是在现在的民主国家。宣扬极端、仇恨、恐怖主义、诈骗、反人类的书籍都不可能被出版，所以我认为这一原则也可以适用于互联网。然而，书籍监管的模式是，我拿着书稿过去，出版社看了之后说，不行，然后我心服口服，说，嗯嗯，确实不行。网络监管的模式却是，我发表一篇文章，自己觉得行，却被删了，我想找人说理，发现我在和一个幽灵说话，我根本不知道是谁在审查，也不知道是如何审查的。我也没有申辩的权利和机会。</p><p>之前我曾经也持有一种观点，就是网络审查应该被完全取消。可是经过很长时间的思考，现在我的观点发生了变化，那就是网络监管不应该被取消。在现在中国国民的政治与思维教育还存在严重缺陷的时候，如果取消网络审查，人们很容易被一些势力所利用。目前，很多的翻墙软件都有其背景，这种背景势力并不是中立的，当你使用它进行翻墙的时候，它就会尽力引导你走向它们提供的新闻等内容，以便灌输他们的价值观。这和在墙内接受主流思想熏陶并无本质区别，只是熏陶内容不同而已。</p><p>我的观点是，墙不应该取消，但是应该极大的宽松化与规范化，并给予公民申辩的机会。</p><p>相关文章推荐： 【成绩】百度NOIP吧编程挑战赛成绩公布 百度NOIP吧编程挑战赛防作弊系统：基于向量空间法检查作弊</p>]]></description> <content:encoded><![CDATA[<p>这件事可以简述为：前段时间，北京邮电大学校长，中国国家网络防火墙（GFW）之父方滨兴先生在武汉大学计算机学院B404教室进行项目的调研验收时，在计算机学院大门口被一名来自华中科技大学建筑学系的学生所扔的鞋砸中胸部。</p><p>这件事发生后牵连到了几个方面，我说一下自己的观点。</p><h2>一、该不该砸？</h2><p>个人觉得该砸。这样说难免会被很多人认为不理性且不文明。不少人认为，方滨兴只是做技术的，并不是政策的制定者，砸方滨兴并不能解决问题；而且封锁网站的指令也肯定不是方滨兴做主的。方滨兴只是跳梁小丑而已。</p><p>然而，方滨兴作为中国工程院院士，北京邮电大学校长，自愿（至少也是半自愿）地参与到了防火墙的研发中，作为一个自愿参加者和既得利益者，其责任决不能因为自己不是制定政策者而逃脱。既然享受了既得便利，就理应承担相应的责任。如果方滨兴是被逼迫参与该课题，倒有情可原，然而从现有的证据来看，暂时看不出有这样的迹象。然而，其应该承担多大的责任？我个人认为不大。原因如上所示：“封锁网站的指令肯定不是方滨兴做主的。方滨兴只是跳梁小丑而已。”</p><p>再者就是文明问题。我个人也是很崇尚文明的，然而，在说别人是否文明之前，有一个很重要的问题，任何人的权利受到侵害时，进行适当的反击是合情合理合法的事情，这叫做“正当防卫”。道德也是一个各人有各人看法的问题，如果你认为当别人侵犯了你的权利时，骂对方出气是道德的，那么扔鸡蛋扔鞋应该也不算过分。反之也成立。</p><h2>二、如果是我，我会去做吗？</h2><p>我不会。因为我认为砸他并不能解决问题，而且，我不是一个喜欢出气的人。</p><h2>三、应该取消网络监管吗？</h2><p>现有的网络防火墙过于严格是IT界大多数人公认的，但并不代表我支持取消网络防火墙。对于有些内容的过滤我是赞成的。如果防火墙过滤的内容是<strong>虚假广告、民族仇恨煽动、宣扬反人类与恐怖活动、诈骗与钓鱼网站</strong>之类的内容，我认为我是可以接受的。尤其是，如果中国可以实现“<strong>只要一个钓鱼网站被发现，全国访问这个网站都会被重置</strong>”，我想没有多少人会反对。我对GFW最大的仇恨在于，<strong>该屏蔽的不屏蔽，不该屏蔽的却屏蔽</strong>。屏蔽网站其实和古代审查书籍出版是一样的，不会有一个国家允许任何图书出版，即使是在现在的民主国家。宣扬极端、仇恨、恐怖主义、诈骗、反人类的书籍都不可能被出版，所以我认为这一原则也可以适用于互联网。然而，书籍监管的模式是，我拿着书稿过去，出版社看了之后说，不行，然后我心服口服，说，嗯嗯，确实不行。网络监管的模式却是，我发表一篇文章，自己觉得行，却被删了，我想找人说理，发现我在和一个幽灵说话，我根本不知道是谁在审查，也不知道是如何审查的。我也没有<strong>申辩的权利和机会</strong>。</p><p>之前我曾经也持有一种观点，就是网络审查应该被完全取消。可是经过很长时间的思考，现在我的观点发生了变化，那就是网络监管不应该被取消。在现在中国国民的政治与思维教育还存在严重缺陷的时候，如果取消网络审查，人们很容易被一些势力所利用。目前，很多的翻墙软件都有其背景，这种背景势力并不是中立的，当你使用它进行翻墙的时候，它就会尽力引导你走向它们提供的新闻等内容，以便灌输他们的价值观。这和在墙内接受主流思想熏陶并无本质区别，只是熏陶内容不同而已。</p><p>我的观点是，墙不应该取消，但是应该极大的宽松化与规范化，并给予公民申辩的机会。</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/noip-2-res/' rel='bookmark' title='【成绩】百度NOIP吧编程挑战赛成绩公布'>【成绩】百度NOIP吧编程挑战赛成绩公布</a></li><li><a
href='http://ceeji.net/blog/%e7%99%be%e5%ba%a6noip%e5%90%a7%e7%bc%96%e7%a8%8b%e6%8c%91%e6%88%98%e8%b5%9b%e9%98%b2%e4%bd%9c%e5%bc%8a%e7%b3%bb%e7%bb%9f%ef%bc%9a%e5%9f%ba%e4%ba%8e%e5%90%91%e9%87%8f%e7%a9%ba%e9%97%b4%e6%b3%95/' rel='bookmark' title='百度NOIP吧编程挑战赛防作弊系统：基于向量空间法检查作弊'>百度NOIP吧编程挑战赛防作弊系统：基于向量空间法检查作弊</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e5%85%b3%e4%ba%8e%e6%96%b9%e6%bb%a8%e5%85%b4%e5%9c%a8%e6%ad%a6%e6%b1%89%e5%a4%a7%e5%ad%a6%e8%ae%a1%e7%ae%97%e6%9c%ba%e5%ad%a6%e9%99%a2%e8%a2%ab%e7%a0%b8%e4%ba%8b%e4%bb%b6/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>追风筝的人中的败笔</title><link>http://ceeji.net/blog/%e8%bf%bd%e9%a3%8e%e7%ad%9d%e7%9a%84%e4%ba%ba%e4%b8%ad%e7%9a%84%e8%b4%a5%e7%ac%94/</link> <comments>http://ceeji.net/blog/%e8%bf%bd%e9%a3%8e%e7%ad%9d%e7%9a%84%e4%ba%ba%e4%b8%ad%e7%9a%84%e8%b4%a5%e7%ac%94/#comments</comments> <pubDate>Sun, 24 Jul 2011 20:26:49 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[未分类]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1745</guid> <description><![CDATA[<p>前两天，我终于看完了这本《追风筝的人》。不得不说，这是一部非常好的小说。无论从哪个方面说，这部小说都是值得一看的。这部小说讲述了一个关于背叛与救赎的故事，含有亲情、战争、背叛、救赎等内容。</p><p>12岁的阿富汗富家少爷阿米尔与仆人哈桑情同手足。童年的纯真友谊总是充满了力量。</p><p>然而事实上却是这样的：他是主人，他是仆人；他是普什图，他是哈扎拉；他是逊尼派，他是什叶派，从他们出生的那一刻起，他们的命运就被这些他们所不能理解的标签所分隔开来，尽管他们是亲密无间的朋友，尽管他们事实上拥有同一位父亲。无论是平凡的阿米尔和哈桑，还是高高在上的查希尔国王或者卡尔扎伊，都不得不接受社会为他们预定的座位——阿米尔不再是阿米尔，哈桑也不再是哈桑，他们必须戴上社会分给他们的面具。</p><p>——转自豆瓣书评 http://book.douban.com/review/1476522/</p><p>然而在一场风筝比赛后，发生的一件悲惨不堪的事令阿米尔感到自责和痛苦并最终逼走了哈桑。不久，战争开始，自己和父亲逃亡美国。</p><p>成年后的阿米尔始终无法原谅自己当年对哈桑的背叛。为了赎罪，阿米尔再度他上暌违二十多年的故乡，希望能为不幸的好友尽最后一点心力，却发现一个惊天谎言：其实哈桑和自己是同父异母的兄弟。然而对这一点，我一直觉得书中的设计不太让我认同。为什么非要好处这样一个理由，才让哈桑进行接下来的救赎呢？如果不写他们是同父异母的兄弟，那么阿米尔的救赎是不是会显得更为真实感人呢？</p><p>&#160;</p><p>相关文章推荐： NOIP1996 提高组题目、题解、程序 本站主页已基于 HTML5 技术编写</p>]]></description> <content:encoded><![CDATA[<p>前两天，我终于看完了这本《追风筝的人》。不得不说，这是一部非常好的小说。无论从哪个方面说，这部小说都是值得一看的。这部小说讲述了一个关于背叛与救赎的故事，含有亲情、战争、背叛、救赎等内容。</p><p>12岁的阿富汗富家少爷阿米尔与仆人哈桑情同手足。童年的纯真友谊总是充满了力量。</p><blockquote><p>然而事实上却是这样的：他是主人，他是仆人；他是普什图，他是哈扎拉；他是逊尼派，他是什叶派，从他们出生的那一刻起，他们的命运就被这些他们所不能理解的标签所分隔开来，尽管他们是亲密无间的朋友，尽管他们事实上拥有同一位父亲。无论是平凡的阿米尔和哈桑，还是高高在上的查希尔国王或者卡尔扎伊，都不得不接受社会为他们预定的座位——阿米尔不再是阿米尔，哈桑也不再是哈桑，他们必须戴上社会分给他们的面具。</p><p>——转自豆瓣书评 <a
href="http://book.douban.com/review/1476522/">http://book.douban.com/review/1476522/</a></p></blockquote><p>然而在一场风筝比赛后，发生的一件悲惨不堪的事令阿米尔感到自责和痛苦并最终逼走了哈桑。不久，战争开始，自己和父亲逃亡美国。</p><p>成年后的阿米尔始终无法原谅自己当年对哈桑的背叛。为了赎罪，阿米尔再度他上暌违二十多年的故乡，希望能为不幸的好友尽最后一点心力，却发现一个惊天谎言：其实哈桑和自己是同父异母的兄弟。然而对这一点，我一直觉得书中的设计不太让我认同。为什么非要好处这样一个理由，才让哈桑进行接下来的救赎呢？如果不写他们是同父异母的兄弟，那么阿米尔的救赎是不是会显得更为真实感人呢？</p><p>&nbsp;</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/noip-1996/' rel='bookmark' title='NOIP1996 提高组题目、题解、程序'>NOIP1996 提高组题目、题解、程序</a></li><li><a
href='http://ceeji.net/blog/%e6%9c%ac%e7%ab%99%e4%b8%bb%e9%a1%b5%e5%b7%b2%e5%9f%ba%e4%ba%8e-html5-%e6%8a%80%e6%9c%af%e7%bc%96%e5%86%99/' rel='bookmark' title='本站主页已基于 HTML5 技术编写'>本站主页已基于 HTML5 技术编写</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e8%bf%bd%e9%a3%8e%e7%ad%9d%e7%9a%84%e4%ba%ba%e4%b8%ad%e7%9a%84%e8%b4%a5%e7%ac%94/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>《仙剑奇侠传五》音乐资源提取器 许可协议</title><link>http://ceeji.net/blog/pal5-extractor-eula/</link> <comments>http://ceeji.net/blog/pal5-extractor-eula/#comments</comments> <pubDate>Fri, 08 Jul 2011 21:14:29 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[未分类]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1779</guid> <description><![CDATA[软件介绍与下载地址<p>单击此处查看软件介绍或下载本软件。</p> 简体版<p>请注意，一旦您使用了本软件，就代表您同意许可协议的全部内容。本软件是免费软件，您可以自由分发、使用、传播本软件，但是您不能：</p> 将本软件用于任何商业目的。 将本软件产生的音乐文件复制给他人或公开、发布给他人、上传到互联网等。 进行其他可能造成版权纠纷的行为。 对适用本软件可能造成的任何后果，软件作者不承担任何责任。 繁体版 請注意，一旦您使用了本軟體，就代表您同意授權合約的全部內容。本軟體是免費軟體，您可以自由分發、使用、傳播本軟體，但是您不能： 將本軟體用於任何商業化之目的。 將本軟體產生的音樂文檔複製給他人或公開、發佈給他人、上傳到網際網路等。 進行其他可能造成版權糾紛的行為。 對使用本軟體可能造成的任何後果，軟體作者不承擔任何責任。<p>相关文章推荐： 《仙剑奇侠传五》音乐资源提取器 采姑娘的小蘑菇</p>]]></description> <content:encoded><![CDATA[<h2>软件介绍与下载地址</h2><p><a
href="http://ceeji.net/blog/pal5-extractor/">单击此处查看软件介绍或下载本软件</a>。</p><h2>简体版</h2><p>请注意，一旦您使用了本软件，就代表您同意许可协议的全部内容。本软件是免费软件，您可以自由分发、使用、传播本软件，但是您不能：</p><ul><li>将本软件用于任何商业目的。</li><li>将本软件产生的音乐文件复制给他人或公开、发布给他人、上传到互联网等。</li><li>进行其他可能造成版权纠纷的行为。</li></ul><div>对适用本软件可能造成的任何后果，软件作者不承担任何责任。</div><div><h2>繁体版</h2><pre>請注意，一旦您使用了本軟體，就代表您同意授權合約的全部內容。本軟體是免費軟體，您可以自由分發、使用、傳播本軟體，但是您不能：
</pre><ul><li>將本軟體用於任何商業化之目的。</li><li>將本軟體產生的音樂文檔複製給他人或公開、發佈給他人、上傳到網際網路等。</li><li>進行其他可能造成版權糾紛的行為。</li><li>對使用本軟體可能造成的任何後果，軟體作者不承擔任何責任。</li></ul></div><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/pal5-extractor/' rel='bookmark' title='《仙剑奇侠传五》音乐资源提取器'>《仙剑奇侠传五》音乐资源提取器</a></li><li><a
href='http://ceeji.net/blog/%e9%87%87%e5%a7%91%e5%a8%98%e7%9a%84%e5%b0%8f%e8%98%91%e8%8f%87/' rel='bookmark' title='采姑娘的小蘑菇'>采姑娘的小蘑菇</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/pal5-extractor-eula/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>《仙剑奇侠传五》音乐资源提取器</title><link>http://ceeji.net/blog/pal5-extractor/</link> <comments>http://ceeji.net/blog/pal5-extractor/#comments</comments> <pubDate>Fri, 08 Jul 2011 21:07:30 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[未分类]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1775</guid> <description><![CDATA[<p>这款小工具软件是仙剑5的音乐提取软件，可以将《仙剑奇侠传五》中的全部背景配乐和系统的特殊音效从已经安装的正版游戏的 pkg 包中提取并导出到您所指定的位置。支持简体中文和繁体中文两种界面语言。</p><p>请注意：这款软件严禁用于任何商业目的，所提取出的音乐仅限于在您购买正版《仙剑奇侠传五》所在的计算机上聆听，禁止上传至互联网或非法复制给其他单位或个人。因此产生的版权纠纷，作者不负任何责任。</p><p>注意：如果您使用的是 Windows 7、Windows Vista ，直接下载后运行即可。如果您是 Windows XP 系统并且下载后无法正常运行，请先下载 .NET Framework 2.0。</p><p>本软件的界面截图如下。</p><p
class="wp-caption-text">简体版截图</p><p
class="wp-caption-text">繁体版截图</p> 下载地址<p>单击此处下载。</p><p>相关文章推荐： 笛子到手 “好好学习计算机”：我的小学笔记本（图）</p>]]></description> <content:encoded><![CDATA[<p>这款小工具软件是仙剑5的音乐提取软件，可以将《仙剑奇侠传五》中的全部背景配乐和系统的特殊音效从已经安装的正版游戏的 pkg 包中提取并导出到您所指定的位置。支持简体中文和繁体中文两种界面语言。</p><p>请注意：这款软件严禁用于任何商业目的，所提取出的音乐仅限于在您购买正版《仙剑奇侠传五》所在的计算机上聆听，禁止上传至互联网或非法复制给其他单位或个人。因此产生的版权纠纷，作者不负任何责任。</p><p><strong>注意：如果您使用的是 </strong><strong>Windows 7、Windows Vista ，直接下载后运行即可。如果您是 </strong><strong>Windows XP 系统并且下载后无法正常运行，请先下载 .NET Framework 2.0。</strong></p><p>本软件的界面截图如下。</p><div
class="wp-caption alignnone" style="width: 929px"><img
title="简体版截图" src="http://i.min.us/ib2OO2.png" alt="简体版截图" width="919" height="167" /><p
class="wp-caption-text">简体版截图</p></div><div
class="wp-caption alignnone" style="width: 929px"><img
title="繁体版截图" src="http://i.min.us/idJGho.png" alt="繁体版截图" width="919" height="167" /><p
class="wp-caption-text">繁体版截图</p></div><h2>下载地址</h2><p><a
title="下载" href="http://ceeji.net/docs/Pal5PkgExtractor.zip" target="_blank">单击此处下载。</a></p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/%e7%ac%9b%e5%ad%90%e5%88%b0%e6%89%8b/' rel='bookmark' title='笛子到手'>笛子到手</a></li><li><a
href='http://ceeji.net/blog/%e2%80%9d%e5%a5%bd%e5%a5%bd%e5%ad%a6%e4%b9%a0%e8%ae%a1%e7%ae%97%e6%9c%ba%e2%80%9c%ef%bc%9a%e6%88%91%e7%9a%84%e5%b0%8f%e5%ad%a6%e7%ac%94%e8%ae%b0%e6%9c%ac%ef%bc%88%e5%9b%be%ef%bc%89/' rel='bookmark' title='“好好学习计算机”：我的小学笔记本（图）'>“好好学习计算机”：我的小学笔记本（图）</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/pal5-extractor/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>写篇文章送给亲爱的你</title><link>http://ceeji.net/blog/%e5%86%99%e7%af%87%e6%96%87%e7%ab%a0%e9%80%81%e7%bb%99%e4%ba%b2%e7%88%b1%e7%9a%84%e4%bd%a0/</link> <comments>http://ceeji.net/blog/%e5%86%99%e7%af%87%e6%96%87%e7%ab%a0%e9%80%81%e7%bb%99%e4%ba%b2%e7%88%b1%e7%9a%84%e4%bd%a0/#comments</comments> <pubDate>Mon, 04 Jul 2011 17:02:27 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[未分类]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1773</guid> <description><![CDATA[<p>当你还在震惊的时候，我就要告诉你，没错，这篇文章就是写给你看的。茫茫人海之中，我们相遇了。我们相遇在这月黑风高的夜晚。虽然此刻，你那迷茫的眼神似乎并没有意识到我想表达些什么，是的，虽然此刻，你热的和我一样难受，但就在此刻，我要写篇文章送给你，因为我已经爱上了你。</p><p>没错。虽然你那水汪汪的眼睛望着我手中的棍棒，甚至有一丝杀气。虽然你现在放松着身体，如一个民工一样躺在地上，享受着武汉夏季一阵阵的热浪袭来，既没有注意自己的形象，也似乎没有什么出众之处，而我们虽然有过几面之缘，甚至连话都还没有说过。但是现在我要为你写些什么了。</p><p>第一次见到你，是在一个平凡的夜晚，我走在校园的小路上，在图书馆旁的草丛与树林之间，我遇到了你。你一下子就吸引了我的目光。你长得不高，但身材还挺好，一双大耳朵似乎拥有无限的潜能。你长的不白，是个标准的黄种人，但也不黑。我和你相视一笑。</p><p>从此我就经常到这里和你约会。记得有一次天降大雨，我一个人跑到天文台去，看你会不会过来。果然这里一个人影都没有，我感到一丝遗憾。记得《南屏晚钟》中曾有这样几句话：</p><p>青青草木，子現南屏。 殷其雷，何斯違斯。 君子既去，其心也失。 美其子，寤寐思服。</p><p>是啊，这和现在的景象是何等的相似！只有我和寂寞的音乐声，却少了那个熟悉的身影。昏黄的灯光下，没有了你的倩影。或许失去了才会知道珍惜。我一时有些担心。这么大的雨，你是否找到了躲雨的地方？我开始后悔我没有去问你是不是无家可归。</p><p>是的，我开始自责。虽然我屡次与你相约在月黑风高的昏黄灯光照射的树林之中，可是我都没能问你是不是无家可归。一个大家闺秀怎么可能在这种情况下随便出门呢？如果你只是一个浪子，那我们是不是注定要分离呢？浪子，是四海为家的。</p><p>你虽然不是沉鱼落雁，闭月羞花，然而不瘦不胖也不黑，如果你肯干活，定是有人家会收养你的。如果运气好，也许可以有一个很帅的小伙子看上你。生命对你应该还是很美好的。</p><p>可是你没有来。“君子既去，其心也失”。</p><p>就这样，我们相思相守，我却不了解你，我们也只是最熟悉的陌生人。</p><p>我想起在几年之前，虽然那时的我远离江城，也曾经有缘碰到过几个如你一般的伙伴。其中一个和你最像的，也是一个无家可归的家伙。我把她养在家里，她开始时什么都不会，我买奶给她喝，教她去厕所，教她下楼梯……逐渐地她把我当成了自己的家人。虽然她是如此的弱小，然而她却屡次想在陌生人之前保护我。我爱她。</p><p>恍惚间又到了这个月黑风高的夜晚，我拿着那根陪我很久的棍棒又来找你。今天天气很好，你躺在老位置等我。我轻抚你的狗头，说：“想死我了！”然后对着你，吹出我最爱的姑苏行。</p><p>相关文章推荐： 青青草木 子现南屏：南屏晚钟 采姑娘的小蘑菇</p>]]></description> <content:encoded><![CDATA[<p>当你还在震惊的时候，我就要告诉你，没错，这篇文章就是写给你看的。茫茫人海之中，我们相遇了。我们相遇在这月黑风高的夜晚。虽然此刻，你那迷茫的眼神似乎并没有意识到我想表达些什么，是的，虽然此刻，你热的和我一样难受，但就在此刻，我要写篇文章送给你，因为我已经爱上了你。</p><p>没错。虽然你那水汪汪的眼睛望着我手中的棍棒，甚至有一丝杀气。虽然你现在放松着身体，如一个民工一样躺在地上，享受着武汉夏季一阵阵的热浪袭来，既没有注意自己的形象，也似乎没有什么出众之处，而我们虽然有过几面之缘，甚至连话都还没有说过。但是现在我要为你写些什么了。</p><p>第一次见到你，是在一个平凡的夜晚，我走在校园的小路上，在图书馆旁的草丛与树林之间，我遇到了你。你一下子就吸引了我的目光。你长得不高，但身材还挺好，一双大耳朵似乎拥有无限的潜能。你长的不白，是个标准的黄种人，但也不黑。我和你相视一笑。</p><p>从此我就经常到这里和你约会。记得有一次天降大雨，我一个人跑到天文台去，看你会不会过来。果然这里一个人影都没有，我感到一丝遗憾。记得《南屏晚钟》中曾有这样几句话：</p><blockquote><p>青青草木，子現南屏。<br
/> 殷其雷，何斯違斯。<br
/> 君子既去，其心也失。<br
/> 美其子，寤寐思服。</p></blockquote><p>是啊，这和现在的景象是何等的相似！只有我和寂寞的音乐声，却少了那个熟悉的身影。昏黄的灯光下，没有了你的倩影。或许失去了才会知道珍惜。我一时有些担心。这么大的雨，你是否找到了躲雨的地方？我开始后悔我没有去问你是不是无家可归。</p><p>是的，我开始自责。虽然我屡次与你相约在月黑风高的昏黄灯光照射的树林之中，可是我都没能问你是不是无家可归。一个大家闺秀怎么可能在这种情况下随便出门呢？如果你只是一个浪子，那我们是不是注定要分离呢？浪子，是四海为家的。</p><p>你虽然不是沉鱼落雁，闭月羞花，然而不瘦不胖也不黑，如果你肯干活，定是有人家会收养你的。如果运气好，也许可以有一个很帅的小伙子看上你。生命对你应该还是很美好的。</p><p>可是你没有来。“君子既去，其心也失”。</p><p>就这样，我们相思相守，我却不了解你，我们也只是最熟悉的陌生人。</p><p>我想起在几年之前，虽然那时的我远离江城，也曾经有缘碰到过几个如你一般的伙伴。其中一个和你最像的，也是一个无家可归的家伙。我把她养在家里，她开始时什么都不会，我买奶给她喝，教她去厕所，教她下楼梯……逐渐地她把我当成了自己的家人。虽然她是如此的弱小，然而她却屡次想在陌生人之前保护我。我爱她。</p><p>恍惚间又到了这个月黑风高的夜晚，我拿着那根陪我很久的棍棒又来找你。今天天气很好，你躺在老位置等我。我轻抚你的狗头，说：“想死我了！”然后对着你，吹出我最爱的姑苏行。</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/%e5%ae%83%e5%82%ac%e9%86%92%e4%ba%86%e6%88%91%e7%9a%84%e7%9b%b8%e6%80%9d%e6%a2%a6%e5%8d%97%e5%b1%8f%e6%99%9a%e9%92%9f/' rel='bookmark' title='青青草木 子现南屏：南屏晚钟'>青青草木 子现南屏：南屏晚钟</a></li><li><a
href='http://ceeji.net/blog/%e9%87%87%e5%a7%91%e5%a8%98%e7%9a%84%e5%b0%8f%e8%98%91%e8%8f%87/' rel='bookmark' title='采姑娘的小蘑菇'>采姑娘的小蘑菇</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e5%86%99%e7%af%87%e6%96%87%e7%ab%a0%e9%80%81%e7%bb%99%e4%ba%b2%e7%88%b1%e7%9a%84%e4%bd%a0/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>神奇的 C++ 传值——从期末 C++ 考试题说起</title><link>http://ceeji.net/blog/%e7%a5%9e%e5%a5%87%e7%9a%84-c-%e4%bc%a0%e5%80%bc%e2%80%94%e2%80%94%e4%bb%8e%e6%9c%9f%e6%9c%ab-c-%e8%80%83%e8%af%95%e9%a2%98%e8%af%b4%e8%b5%b7/</link> <comments>http://ceeji.net/blog/%e7%a5%9e%e5%a5%87%e7%9a%84-c-%e4%bc%a0%e5%80%bc%e2%80%94%e2%80%94%e4%bb%8e%e6%9c%9f%e6%9c%ab-c-%e8%80%83%e8%af%95%e9%a2%98%e8%af%b4%e8%b5%b7/#comments</comments> <pubDate>Wed, 29 Jun 2011 20:43:50 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[C++语言学习]]></category> <category><![CDATA[CPlusPlus]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1764</guid> <description><![CDATA[<p>（这篇文章主要涉及以下概念：指针、引用、内存地址、栈、堆、汇编、反汇编、寄存器、堆栈空间、赋值构造函数。） 不得不说我们学院的刚哥的 C++ 考试题就是不一样…考完试之后，有一道题被很多同学议论颇多，这就是写运行结果的第一题。这道题的题目大约如下。</p> ?View Code CPP1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include &#60;iostream&#62; using namespace std; &#160; class A&#123; int i; public: A&#40;int x=0&#41;&#123; i=x; cout &#60;&#60; &#34;In Constructor&#34; &#60;&#60; [...]]]></description> <content:encoded><![CDATA[<p>（这篇文章主要涉及以下概念：指针、引用、内存地址、栈、堆、汇编、反汇编、寄存器、堆栈空间、赋值构造函数。）<br
/> 不得不说我们学院的刚哥的 C++ 考试题就是不一样…考完试之后，有一道题被很多同学议论颇多，这就是写运行结果的第一题。这道题的题目大约如下。</p><div
class="wp_codebox_msgheader"><span
class="right"><sup><a
href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span
style="color: #99cc00">?</span></a></sup></span><span
class="left"><a
href="javascript:;" onclick="javascript:showCodeTxt('p1764code7'); return false;">View Code</a> CPP</span><div
class="codebox_clear"></div></div><div
class="wp_codebox"><table><tr
id="p17647"><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre></td><td
class="code" id="p1764code7"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">class</span> A<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">int</span> i<span style="color: #008080;">;</span>
<span style="color: #0000ff;">public</span><span style="color: #008080;">:</span>
    A<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> x<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span>
        i<span style="color: #000080;">=</span>x<span style="color: #008080;">;</span>
        <span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;In Constructor&quot;</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    A<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> A<span style="color: #000040;">&amp;</span> a<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span>
        i<span style="color: #000080;">=</span>a.<span style="color: #007788;">i</span><span style="color: #008080;">;</span>
        <span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;In Copy Constructor&quot;</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    ~A<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span>
        <span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;In Destructor&quot;</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
&nbsp;
A func<span style="color: #008000;">&#40;</span>A a<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">return</span> a<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span>
    A a<span style="color: #008080;">;</span>
    A b <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
    A c <span style="color: #000080;">=</span> func<span style="color: #008000;">&#40;</span>a<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div><p>这道题目的正确答案是，两个 In Constructor，两个 In Copy Constructor，四个 In Destructor。这本身并没有什么疑问。<br
/> 但是，如果我把这个程序给稍微给改一下，就会产生疑惑。</p><p>将 main 函数的内容改为如下：</p><div
class="wp_codebox_msgheader"><span
class="right"><sup><a
href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span
style="color: #99cc00">?</span></a></sup></span><span
class="left"><a
href="javascript:;" onclick="javascript:showCodeTxt('p1764code8'); return false;">View Code</a> CPP</span><div
class="codebox_clear"></div></div><div
class="wp_codebox"><table><tr
id="p17648"><td
class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td
class="code" id="p1764code8"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span>
    A a<span style="color: #008080;">;</span>
    A b<span style="color: #008080;">;</span>
    b <span style="color: #000080;">=</span> func<span style="color: #008000;">&#40;</span>a<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div><p>并且在 return 0; 设置断点，运行，我们会发现输出结果如下。</p><blockquote><p>In Constructor<br
/> In Constructor<br
/> In Copy Constructor<br
/> In Copy Constructor<br
/> In Destructor<br
/> In Destructor</p></blockquote><p>我们分析一下，A a; 时产生了一次构造函数调用，A b; 时产生第二次。func(a) 复制实参时，调用复制构造函数，在func函数返回值的时候，由于返回的是类的对象本身，产生了一次复制构造函数调用。b 随后被赋值为 func(a) 的返回值，所以实参析构， 析构函数被调用。问题是，后面的另一个析构函数调用是如何产生的？<br
/> 经过分析我们可以发现，func(a) 产生了一个临时的对象 tmp，随后 tmp 被赋值给 b，随后 tmp 被析构。<br
/> 随后我们把 main 函数改为如下：</p><div
class="wp_codebox_msgheader"><span
class="right"><sup><a
href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span
style="color: #99cc00">?</span></a></sup></span><span
class="left"><a
href="javascript:;" onclick="javascript:showCodeTxt('p1764code9'); return false;">View Code</a> CPP</span><div
class="codebox_clear"></div></div><div
class="wp_codebox"><table><tr
id="p17649"><td
class="line_numbers"><pre>1
2
3
4
5
</pre></td><td
class="code" id="p1764code9"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span>
    A a<span style="color: #008080;">;</span>
    A b <span style="color: #000080;">=</span> func<span style="color: #008000;">&#40;</span>a<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div><p>这段代码和上面代码的区别是，b 从先定义后赋值改成了直接定义和初始化。<br
/> 这时候我们会发现，tmp 的析构不存在了，func 返回时产生的 a 的副本是直接产生在 b 的地址上的。也就是说，不存在临时的对象。<br
/> 这时我们会很好奇。func 的返回值究竟是如何传递的？A b = func(a); 这样的语句是如何能够让 func(a) 的返回值直接写入到了 b 的地址空间呢？毕竟，返回值所创建的那个对象副本是在 func 作用域和栈空间里的，而 b 是 main 函数的局部变量，保存在 main 的堆栈空间。<br
/> 于是我猜测，对 func 的调用压入了一个隐含参数，这个参数的内容是指向返回值的地址的，func 的返回值就保存在给定的地址中。这样，在函数内部就可以访问到这个空间并保存函数的返回值。在 b = func(a); 语句中，b 已经初始化，这时要使用赋值构造函数重新构造 b，所以需要给赋值构造函数传递一个参数，就必须存在一个临时变量 tmp 的地址，于是隐含参数所包含的地址就是编译器创建的临时对象的地址。<br
/> 从此，可以分析出，func 的返回值是保存在一块新的内存区域的；如果用户将这个返回值直接用作初始化，那么这块区域就是被初始化函数的内存区域；如果不是，那么编译器会在调用方所在函数的栈空间里创建一个临时的内存区域，用于保存返回值，由于临时对象的唯一作用是作为赋值构造函数的参数传递给operator=函数从而将 b 重写为 a 的副本，所以这必将导致一个结果，就是当 b 被赋值完毕之后，这个无名的临时对象就无用了。<br
/> 那么，编译器又如何处理了这个无名的临时对象呢？正常人的想法是，这个变量应该和其他的同属于这个栈的变量们一起，在函数作用域结束之前被析构。然而上述的运行结果告诉我们，这个临时变量 tmp 是在之前就已经析构了的。从以上内容可以得到的结论是，编译器对于函数调用，应该是在调用之前分配返回值的内存空间，并在调用后将这个空间立即处理掉（直接分配到局部变量的地址上的情况除外）<br
/> 事实真的如此吗？我写了下面这样一个程序进行验证。</p><div
class="wp_codebox_msgheader"><span
class="right"><sup><a
href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span
style="color: #99cc00">?</span></a></sup></span><span
class="left"><a
href="javascript:;" onclick="javascript:showCodeTxt('p1764code10'); return false;">View Code</a> CPP</span><div
class="codebox_clear"></div></div><div
class="wp_codebox"><table><tr
id="p176410"><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
</pre></td><td
class="code" id="p1764code10"><pre class="cpp" style="font-family:monospace;">&nbsp;
<span style="color: #339900;">#include &lt;iostream&gt;</span>
&nbsp;
&nbsp;
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">int</span> <span style="color: #0000dd;">time</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">class</span> TestClass
<span style="color: #008000;">&#123;</span>
<span style="color: #0000ff;">public</span><span style="color: #008080;">:</span>
	TestClass<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		thistime <span style="color: #000080;">=</span> <span style="color: #0000dd;">rand</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">%</span> <span style="color: #0000dd;">1000</span><span style="color: #008080;">;</span>
		ortime <span style="color: #000080;">=</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
		<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;[&quot;</span> <span style="color: #000080;">&lt;&lt;</span> thistime <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;] : created &quot;</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	TestClass<span style="color: #008000;">&#40;</span>TestClass <span style="color: #000040;">&amp;</span>a<span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		thistime <span style="color: #000080;">=</span> <span style="color: #0000dd;">rand</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">%</span> <span style="color: #0000dd;">1000</span><span style="color: #008080;">;</span>
		ortime <span style="color: #000080;">=</span> a.<span style="color: #007788;">thistime</span><span style="color: #008080;">;</span>
		<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;[&quot;</span> <span style="color: #000080;">&lt;&lt;</span> thistime <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;] : created (from &quot;</span> <span style="color: #000080;">&lt;&lt;</span> ortime <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;)&quot;</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #008000;">&#125;</span>
	TestClass<span style="color: #000040;">&amp;</span> operator<span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> TestClass<span style="color: #000040;">&amp;</span> a<span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>thistime <span style="color: #000080;">=</span> <span style="color: #0000dd;">rand</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">%</span> <span style="color: #0000dd;">1000</span><span style="color: #008080;">;</span>
		this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>ortime <span style="color: #000080;">=</span> a.<span style="color: #007788;">thistime</span><span style="color: #008080;">;</span>
		<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;[&quot;</span> <span style="color: #000080;">&lt;&lt;</span> thistime <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;] : assigned (from &quot;</span> <span style="color: #000080;">&lt;&lt;</span> a.<span style="color: #007788;">thistime</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;)&quot;</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
		<span style="color: #0000ff;">return</span> <span style="color: #000040;">*</span><span style="color: #0000dd;">this</span><span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	~TestClass<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;[&quot;</span> <span style="color: #000080;">&lt;&lt;</span> thistime <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;] : destroyed &quot;</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">int</span> thistime<span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> ortime<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
TestClass func<span style="color: #008000;">&#40;</span>TestClass test<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;[&quot;</span> <span style="color: #000080;">&lt;&lt;</span> test.<span style="color: #007788;">thistime</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;] : func called &quot;</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
	<span style="color: #0000ff;">return</span> test<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	TestClass a<span style="color: #008080;">;</span>
	TestClass b<span style="color: #008080;">;</span>
	b <span style="color: #000080;">=</span> func<span style="color: #008000;">&#40;</span>a<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> b.<span style="color: #007788;">thistime</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
	TestClass c <span style="color: #000080;">=</span> func<span style="color: #008000;">&#40;</span>b<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000dd;">cin</span>.<span style="color: #007788;">get</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div><p>这个程序的运行结果如下：</p><blockquote><p>[41] : created<br
/> [467] : created<br
/> [334] : created (from 41)<br
/> [334] : func called<br
/> [500] : created (from 334)<br
/> [334] : destroyed<br
/> [169] : assigned (from 500)<br
/> [500] : destroyed<br
/> 169<br
/> [724] : created (from 169)<br
/> [724] : func called<br
/> [478] : created (from 724)<br
/> [724] : destroyed</p></blockquote><p>运行结果分析如下：<br
/> 1、在本程序刚启动的时候，创建了一个 41 号的类（这个是变量 a）。<br
/> 2、又创建了一个 467 号类（变量 b）。<br
/> 3、到了 b = func(a)，首先 a 被复制构造函数创建了一个副本到 func 的实参里，这个是 from 41 的 334 号类产生的原因。这时，程序为 func 的返回值也分配好了一个临时的内存空间，位于 main 函数的堆栈空间（frame）里，并通过隐式参数传递到 func。<br
/> 4、然后开始执行 func 函数体。输出“[334] : func called”，这个函数产生了一个返回值 a。由于是类的对象，所以创建了一个副本，也就是调用复制构造函数，创建了 500 号类（from 334），并保存到通过隐式参数传递过来的临时的内存空间地址中。func 调用结束，334 这个实参没用了，所以 destroyed 了。<br
/> 5、临时空间中的500 号类被传递到 operator = （赋值构造函数）中，并用其重新构造了 b，此时 原来的 467 号类 b 变成了 169 号类。但其实还是原来的那个变量，地址不变，只是内容变了。<br
/> 6、临时空间用完了，随即被编译器生成的代码释放，此时调用了 500 号的析构函数（也解释了最开始的问题）。<br
/> 7、继续执行 func(b) ，同理，b （169号）先被复制成 func 的实参 724号类，然后 724 复制了一个副本，产生返回值，这是 478 号。由于变量 c  是直接初始化而不是赋值的，<br
/> 所以区别就来了，c的地址直接被传递给了 func，所以 func 的返回值直接存放到了 c 中，不存在任何复制构造或赋值构造。<br
/> 8、724 号类随着 func 的运行结束被销毁，析构函数被调用。<br
/> 9、控制权交给 cin.get(); 语句。</p><p>为了进一步验证我们的猜想是否正确，我们现在对这个程序进行反汇编。核心的汇编代码列举如下。先来看看赋值构造函数情况下。（其中，ebp 是栈的基地址，eax 是 C/C++ 语言中存放返回值或返回值地址的寄存器的默认约定。）</p><div
class="wp_codebox_msgheader"><span
class="right"><sup><a
href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span
style="color: #99cc00">?</span></a></sup></span><span
class="left"><a
href="javascript:;" onclick="javascript:showCodeTxt('p1764code11'); return false;">View Code</a> CPP</span><div
class="codebox_clear"></div></div><div
class="wp_codebox"><table><tr
id="p176411"><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td
class="code" id="p1764code11"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">// 语句 b = func(a);</span>
010C1808  sub         esp,<span style="color: #0000dd;">8</span>
010C180B  mov         ecx,esp
010C180D  mov         dword ptr <span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>12Ch<span style="color: #008000;">&#93;</span>,esp
010C1813  lea         eax,<span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>18h<span style="color: #008000;">&#93;</span>
010C1816  push        eax  <span style="color: #666666;">// 以上代码分配返回值的内存空间，位于 main 函数领空的堆栈空间，并压入栈内作为隐性参数</span>
010C1817  call        TestClass<span style="color: #008080;">::</span><span style="color: #007788;">TestClass</span> <span style="color: #008000;">&#40;</span>10C120Dh<span style="color: #008000;">&#41;</span>  <span style="color: #666666;">// 调用复制构造函数获得实参</span>
010C181C  mov         dword ptr <span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>134h<span style="color: #008000;">&#93;</span>,eax
010C1822  lea         ecx,<span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>120h<span style="color: #008000;">&#93;</span>
010C1828  push        ecx  <span style="color: #666666;">// 实参压栈</span>
010C1829  call        func <span style="color: #008000;">&#40;</span>10C104Bh<span style="color: #008000;">&#41;</span>  <span style="color: #666666;">// 执行 func 函数</span>
010C182E  add         esp,0Ch
010C1831  mov         dword ptr <span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>138h<span style="color: #008000;">&#93;</span>,eax
010C1837  mov         edx,dword ptr <span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>138h<span style="color: #008000;">&#93;</span>
010C183D  mov         dword ptr <span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>13Ch<span style="color: #008000;">&#93;</span>,edx
010C1843  mov         byte ptr <span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span>,<span style="color: #0000dd;">2</span>
010C1847  mov         eax,dword ptr <span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>13Ch<span style="color: #008000;">&#93;</span>
010C184D  push        eax  <span style="color: #666666;">// 将临时内存空间内的类对象的地址传给 operator= 构造变量 b </span>
010C184E  lea         ecx,<span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>28h<span style="color: #008000;">&#93;</span>
010C1851  call        TestClass<span style="color: #008080;">::</span><span style="color: #007788;">operator</span><span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>10C11C7h<span style="color: #008000;">&#41;</span>
010C1856  mov         byte ptr <span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span>,<span style="color: #0000dd;">1</span>
010C185A  lea         ecx,<span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>120h<span style="color: #008000;">&#93;</span>
010C1860  call        TestClass<span style="color: #008080;">::</span>~TestClass <span style="color: #008000;">&#40;</span>10C112Ch<span style="color: #008000;">&#41;</span>   <span style="color: #666666;">// 调用析构函数，析构临时内存空间内的类对象</span></pre></td></tr></table></div><p>下面是直接初始化的情况。</p><div
class="wp_codebox_msgheader"><span
class="right"><sup><a
href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span
style="color: #99cc00">?</span></a></sup></span><span
class="left"><a
href="javascript:;" onclick="javascript:showCodeTxt('p1764code12'); return false;">View Code</a> CPP</span><div
class="codebox_clear"></div></div><div
class="wp_codebox"><table><tr
id="p176412"><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td
class="code" id="p1764code12"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">// 语句 TestClass c = func(b);</span>
010C1895  sub         esp,<span style="color: #0000dd;">8</span>
010C1898  mov         ecx,esp
010C189A  mov         dword ptr <span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>110h<span style="color: #008000;">&#93;</span>,esp
010C18A0  lea         eax,<span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>28h<span style="color: #008000;">&#93;</span>
010C18A3  push        eax <span style="color: #666666;">// 变量 c 的地址</span>
010C18A4  call        TestClass<span style="color: #008080;">::</span><span style="color: #007788;">TestClass</span> <span style="color: #008000;">&#40;</span>10C120Dh<span style="color: #008000;">&#41;</span>  <span style="color: #666666;">// 复制实参</span>
010C18A9  mov         dword ptr <span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>134h<span style="color: #008000;">&#93;</span>,eax
010C18AF  lea         ecx,<span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>38h<span style="color: #008000;">&#93;</span>
010C18B2  push        ecx  <span style="color: #666666;">// 实参入栈</span>
010C18B3  call        func <span style="color: #008000;">&#40;</span>10C104Bh<span style="color: #008000;">&#41;</span>
010C18B8  add         esp,0Ch
010C18BB  mov         dword ptr <span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span>138h<span style="color: #008000;">&#93;</span>,eax
010C18C1  mov         byte ptr <span style="color: #008000;">&#91;</span>ebp<span style="color: #000040;">-</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span>,<span style="color: #0000dd;">3</span></pre></td></tr></table></div><p>明显比前面的代码少，返回值被直接写入了调用方指定的栈中，也就是证明了我们之前的想法。<br
/> 总结如下：调用函数时，不管参数类型如何，调用者(caller)负责从右至左将参数依次压栈，最后压入返回地址并跳转到被调函数入口处执行。<strong>被传递的参数和返回地址都是位于调用者的stack frame（堆栈空间）中的。</strong>如果函数的返回值类型是整型(包括char,short,int,long及它们的无符号型)或指针类型的话（它们的长度小于等于 EAX 寄存器的长度（32位机上是 4 个字节）），那么就利用EAX寄存器来传回返回值。否则，利用 EAX 寄存器存放返回值的地址。传入的返回地址可能是一个临时的地址，这个地址将会在其他变量赋值后被立即回收，也可能是一个局部变量的地址，将在作用域超过时正常回收。</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/cpp-learn-string-re/' rel='bookmark' title='C++笔记：[程序]反转所给的字符串'>C++笔记：[程序]反转所给的字符串</a></li><li><a
href='http://ceeji.net/blog/cpp-learn-io/' rel='bookmark' title='C++笔记：关于输入和输出'>C++笔记：关于输入和输出</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e7%a5%9e%e5%a5%87%e7%9a%84-c-%e4%bc%a0%e5%80%bc%e2%80%94%e2%80%94%e4%bb%8e%e6%9c%9f%e6%9c%ab-c-%e8%80%83%e8%af%95%e9%a2%98%e8%af%b4%e8%b5%b7/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>采姑娘的小蘑菇</title><link>http://ceeji.net/blog/%e9%87%87%e5%a7%91%e5%a8%98%e7%9a%84%e5%b0%8f%e8%98%91%e8%8f%87/</link> <comments>http://ceeji.net/blog/%e9%87%87%e5%a7%91%e5%a8%98%e7%9a%84%e5%b0%8f%e8%98%91%e8%8f%87/#comments</comments> <pubDate>Sat, 18 Jun 2011 17:01:57 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[未分类]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1761</guid> <description><![CDATA[<p>雷人的标题…但是，这实际上确实是一首歌名，演唱者是谢娜。这首歌用这个歌名只是为了哗众取宠，内容还是《采蘑菇的小姑娘》。</p><p>今天在友人的提醒下，突然想起了那首《采蘑菇的小姑娘》，顺便也想起了《采姑娘的小蘑菇》……。回想起来，我还真的不怎么记得这首曲子的旋律了。在我的印象里，这首歌听得并不多，而且听的年代很也已远逝不复。类似的歌曲还有《中华民谣》《九月九的酒》之类。</p><p>雨中的天文台之夜，别有感觉。在今天这种将下不下的雨天中，我未曾想到还会有人同来。雨声稀稀拉拉不成气候，更衬出周围的安静。为了避雨，站在悠远之处的亭子里，四周望去，尽是树，尽是草，整个校园掩映在雾腾腾的水汽之中，幽静的小路上空无一人，四周空荡荡的座位似乎是在为强化宁静安逸之美而设。我在想这种气氛下应该吹什么。可是我想不出。卑微的我不知道拿什么去配这样的一个雨夜，然而音乐的魅力是无穷的。雨水滴在了笛膜上，所以和平时相比，吹奏颇有麻烦之处。然而所得怡然之乐可以让人忘却一切，包括时间。</p><p>回来之时，寝管早已等候多时。</p><p>&#160;</p><p>相关文章推荐： 【成绩】百度NOIP吧编程挑战赛成绩公布 百度NOIP吧编程挑战赛防作弊系统：基于向量空间法检查作弊</p>]]></description> <content:encoded><![CDATA[<p>雷人的标题…但是，这实际上确实是一首歌名，演唱者是谢娜。这首歌用这个歌名只是为了哗众取宠，内容还是《采蘑菇的小姑娘》。</p><p>今天在友人的提醒下，突然想起了那首《采蘑菇的小姑娘》，顺便也想起了《采姑娘的小蘑菇》……。回想起来，我还真的不怎么记得这首曲子的旋律了。在我的印象里，这首歌听得并不多，而且听的年代很也已远逝不复。类似的歌曲还有《中华民谣》《九月九的酒》之类。</p><p>雨中的天文台之夜，别有感觉。在今天这种将下不下的雨天中，我未曾想到还会有人同来。雨声稀稀拉拉不成气候，更衬出周围的安静。为了避雨，站在悠远之处的亭子里，四周望去，尽是树，尽是草，整个校园掩映在雾腾腾的水汽之中，幽静的小路上空无一人，四周空荡荡的座位似乎是在为强化宁静安逸之美而设。我在想这种气氛下应该吹什么。可是我想不出。卑微的我不知道拿什么去配这样的一个雨夜，然而音乐的魅力是无穷的。雨水滴在了笛膜上，所以和平时相比，吹奏颇有麻烦之处。然而所得怡然之乐可以让人忘却一切，包括时间。</p><p>回来之时，寝管早已等候多时。</p><p>&nbsp;</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/noip-2-res/' rel='bookmark' title='【成绩】百度NOIP吧编程挑战赛成绩公布'>【成绩】百度NOIP吧编程挑战赛成绩公布</a></li><li><a
href='http://ceeji.net/blog/%e7%99%be%e5%ba%a6noip%e5%90%a7%e7%bc%96%e7%a8%8b%e6%8c%91%e6%88%98%e8%b5%9b%e9%98%b2%e4%bd%9c%e5%bc%8a%e7%b3%bb%e7%bb%9f%ef%bc%9a%e5%9f%ba%e4%ba%8e%e5%90%91%e9%87%8f%e7%a9%ba%e9%97%b4%e6%b3%95/' rel='bookmark' title='百度NOIP吧编程挑战赛防作弊系统：基于向量空间法检查作弊'>百度NOIP吧编程挑战赛防作弊系统：基于向量空间法检查作弊</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e9%87%87%e5%a7%91%e5%a8%98%e7%9a%84%e5%b0%8f%e8%98%91%e8%8f%87/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>鋼琴 + 笛簫：中西合璧的唯美樂章</title><link>http://ceeji.net/blog/%e9%8b%bc%e7%90%b4-%e7%ac%9b%e7%b0%ab%ef%bc%9a%e4%b8%ad%e8%a5%bf%e5%90%88%e7%92%a7%e7%9a%84%e5%94%af%e7%be%8e%e6%a8%82%e7%ab%a0/</link> <comments>http://ceeji.net/blog/%e9%8b%bc%e7%90%b4-%e7%ac%9b%e7%b0%ab%ef%bc%9a%e4%b8%ad%e8%a5%bf%e5%90%88%e7%92%a7%e7%9a%84%e5%94%af%e7%be%8e%e6%a8%82%e7%ab%a0/#comments</comments> <pubDate>Tue, 07 Jun 2011 05:14:21 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[中華文化]]></category> <category><![CDATA[文学与情感]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1749</guid> <description><![CDATA[<p>作為我最喜愛的兩種樂器，鋼琴以其純美、廣闊讓我愛不釋手，笛簫以其婉轉、悠揚使我不能自己。其實，作為中華民樂的精華，笛簫和西洋樂器鋼琴的結合，產生的那種唯美的天籟之聲，更是讓人愛不釋手。可惜一個人不能同時演繹兩種樂器，很希望以後可以和友人一起，演繹出這樣的組合。在這裡我推薦一些鋼琴和笛簫結合的作品，以觴讀者。</p><p>綠野仙蹤（Fairy Footsteps In Green Land）</p><p>下载音频文件 (lv.mp3)</p><p>這首樂曲我很喜歡的一首鋼琴和蕭結合的樂曲，鋼琴營造的寧靜感和蕭的緩緩訴說，仿佛讓人們來到一片夢幻般的綠色原野，這裡能找到傳說中的仙蹤嗎？在緩緩的節奏中，蕭和鋼琴的特色都被非常好地發揮了出來。尤其是那完美的氣顫音，讓人心為之所動。</p><p>亂紅（Flowers In a Riot Of Color）</p><p>下载音频文件 (1.mp3)</p><p>歌如其名，亂紅這首樂曲給人的感受，用竹笛和鋼琴的結合來演繹實在是太合適不過了。而樂曲的設計——開頭是竹笛旋律，鋼琴伴奏，後面是鋼琴旋律，竹笛增色，使兩種樂器的配合大放異彩。</p><p>愛爾蘭晨風（Moming Breeze of Lreland）</p><p>下载音频文件 (06.aierlan.mp3)</p><p>剛剛聽到這首樂曲，我 還以為這首樂曲是使用愛爾蘭風笛演奏的，可是經過證實，這首樂曲就是用普通的竹笛演奏的，只是換用了不同的笛膜和演奏技巧，就把愛爾蘭的特色發揮地如此生動和活潑。</p><p>這三個曲目都來自專輯《亂紅》，有興趣的朋友可以聽一下。</p><p>相关文章推荐： 乘风破浪　花开飘歌　笃志以励　真我无悔 写在秋天</p>]]></description> <content:encoded><![CDATA[<p>作為我最喜愛的兩種樂器，鋼琴以其純美、廣闊讓我愛不釋手，笛簫以其婉轉、悠揚使我不能自己。其實，作為中華民樂的精華，笛簫和西洋樂器鋼琴的結合，產生的那種唯美的天籟之聲，更是讓人愛不釋手。可惜一個人不能同時演繹兩種樂器，很希望以後可以和友人一起，演繹出這樣的組合。在這裡我推薦一些鋼琴和笛簫結合的作品，以觴讀者。</p><p><strong>綠野仙蹤（Fairy Footsteps In Green Land）</strong></p><p><a
href="http://www.tinadanceschool.com/lv.mp3">下载音频文件 (lv.mp3)</a></p><p>這首樂曲我很喜歡的一首鋼琴和蕭結合的樂曲，鋼琴營造的寧靜感和蕭的緩緩訴說，仿佛讓人們來到一片夢幻般的綠色原野，這裡能找到傳說中的仙蹤嗎？在緩緩的節奏中，蕭和鋼琴的特色都被非常好地發揮了出來。尤其是那完美的氣顫音，讓人心為之所動。</p><p><strong>亂紅（Flowers In a Riot Of Color）</strong></p><p><a
href="http://show.ps369.com/content/mp3/1.mp3">下载音频文件 (1.mp3)</a></p><p>歌如其名，亂紅這首樂曲給人的感受，用竹笛和鋼琴的結合來演繹實在是太合適不過了。而樂曲的設計——開頭是竹笛旋律，鋼琴伴奏，後面是鋼琴旋律，竹笛增色，使兩種樂器的配合大放異彩。</p><p><strong>愛爾蘭晨風（Moming Breeze of Lreland）</strong></p><p><a
href="http://51haoyou.com/images/06.aierlan.mp3">下载音频文件 (06.aierlan.mp3)</a></p><p>剛剛聽到這首樂曲，我 還以為這首樂曲是使用愛爾蘭風笛演奏的，可是經過證實，這首樂曲就是用普通的竹笛演奏的，只是換用了不同的笛膜和演奏技巧，就把愛爾蘭的特色發揮地如此生動和活潑。</p><p>這三個曲目都來自專輯《亂紅》，有興趣的朋友可以聽一下。</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/18-year-old/' rel='bookmark' title='乘风破浪　花开飘歌　笃志以励　真我无悔'>乘风破浪　花开飘歌　笃志以励　真我无悔</a></li><li><a
href='http://ceeji.net/blog/%e5%86%99%e5%9c%a8%e7%a7%8b%e5%a4%a9/' rel='bookmark' title='写在秋天'>写在秋天</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e9%8b%bc%e7%90%b4-%e7%ac%9b%e7%b0%ab%ef%bc%9a%e4%b8%ad%e8%a5%bf%e5%90%88%e7%92%a7%e7%9a%84%e5%94%af%e7%be%8e%e6%a8%82%e7%ab%a0/feed/</wfw:commentRss> <slash:comments>2</slash:comments> <enclosure
url="http://www.tinadanceschool.com/lv.mp3" length="4496842" type="audio/mpeg" /> <enclosure
url="http://show.ps369.com/content/mp3/1.mp3" length="5043393" type="audio/mpeg" /> <enclosure
url="http://51haoyou.com/images/06.aierlan.mp3" length="7116927" type="audio/mpeg" /> </item> <item><title>庸众的狂欢</title><link>http://ceeji.net/blog/%e5%ba%b8%e4%bc%97%e7%9a%84%e7%8b%82%e6%ac%a2/</link> <comments>http://ceeji.net/blog/%e5%ba%b8%e4%bc%97%e7%9a%84%e7%8b%82%e6%ac%a2/#comments</comments> <pubDate>Mon, 23 May 2011 14:37:06 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[思考]]></category> <category><![CDATA[杂文讽趣]]></category> <category><![CDATA[精品转载]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1741</guid> <description><![CDATA[<p>我们中国的网民，向来是不会无聊的。我们总有各种各样的事情可以消遣。最近被我们消遣的热点，是一个叫黄艺博的初中生，他戴着一个五道杠的臂章，认真的看文件，引发了我们网友的各种看不惯。网友说他长得官相，骂他写日记官腔，指责他的父母给他灌输官本位的思想，控诉我们整个社会的思想的异化，教育体制的失败。批评声铺天盖地，大家都批评得很有理，批评得很激情，越批评越觉得自己很有正义感，越批评越停不下来。在这一边倒的舆论攻势中，当然少不了的是广大打酱油的围观群众，观众们虽然提不出理论化的批判论点，但是顶顶批判者的帖子，转发下批判者的段子，加点小讽刺小幽默，来点类似于往要倒的墙壁上戳一指头的行为，总还是不难的。间或偶然有微弱的反对声出现，也迅速被大众口水的浪潮打下去。</p><p>网络是一个很有意思的地方。每个人都可以用虚拟的身份相对自由的表达自己的看法，无肆放纵自己的情感。在类似黄艺博的新闻热点事件中，网友们“痛打落水狗”态度的坚决程度每每让人咂舌。例如前段时间出现的抢盐潮中，有一个餐馆的老板非常愚蠢，他误信亲戚传言，抢购了以吨计的食盐，为自己餐馆储备之用，后来盐价回复正常，他的经济损失相比普通抢盐以作家用的老百姓，自然更大，作为小小个体经营者的他难以承受。这时候，他做了一个更加愚蠢的决定，他向新闻部门求助，希望能有部门居中调解，帮助他退盐减少损失。事件经新闻媒体曝光后，有关部门没有找上他，富有正义感又恰好富有闲余时间的网友们却找上了他。每天都有人打电话到新闻报社，强烈要求报社不要对他进行任何形式的帮助，相反要发文进行谴责其囤盐的行为。他发布的求助电话，也变成了控诉热线，被各方打电话去辱骂他谴责他的网友打爆，没两天就被迫关机了。</p><p>在这样许多的类似事件中，网友们的动机真的是出于正义感吗？黄艺博的父母对他的培养方式和黄艺博本人在政治方面的积极追求，很难说是对是错。想做官不是黄艺博的个体行为，是中华五千年的传统，是中华民族的群体心态；何况黄艺博的日志里写明了，他不只是追求做官，还追求将来做个好官。每个人都有自己的理想和选择，理想是做官就一定有错吗？他说自己想做个好官就一定是作秀吗？只要他的个人追求不是危害社会和人类，我们谁都无法站在道德法官的高度给他定罪。有人说，网友们针对的其实不是黄艺博本身，针对的是黄艺博代表的“官本位”的思想。可是作为一种思想传统，“官本位”自古有着广泛的受众，中国历史上数的出名字的牛人们，多半都是年轻的时候就开始备战科举，孜孜以求金榜题名，跻身仕途的一天。为什么那么多人官本位都没事儿，作为后继者的黄艺博却被推到了舆论的风口浪尖呢? 对此有人做出的解释是，那是因为现今的官僚阶层太让民众反感，看到黄艺博年纪小小就梦想着成为肉食者中的一员，难免让网友们看不起。这里存在一个逻辑的悖论，民众反感现今的官僚群体，所以反感黄艺博，可是黄艺博并不是现今官僚群体的组成部分；黄艺博追求做官，谁也不能肯定黄艺博将来能够有官做，更不能肯定他会成为让民众反感的官，而不是在其位谋其政踏踏实实的好官。既然现今的官僚群体跟黄艺博没有半毛关系，那么我们的广大网友到底在批判什么？ 囤盐事件也一样，餐馆老板在得知盐价即将大幅上涨后，为以后的生意成本考虑，大肆进购食盐，这种是很正常的反应，就好像每次听说油价即将上涨，众多私家车主就会抢着去把油缸加满，听说矿石价格即将上涨，钢铁企业就会提前大肆进购原材料一样，无可厚非。很多人指责这位老板囤盐是为了以后高价卖，但这只是猜测而已，并不一定是事实。针对这种不违背法纪甚至不外乎人情的行为，做出决绝的激烈的批判，我们的网友们又是为了什么？</p><p>每每看到类似的新闻事件和网友们的过激反应，总让我想到很久以前看过的一则新闻。有一辆长途汽车在行驶过程中被打劫，三个劫匪上车后，有一个持刀控制了司机，另外两个搜刮乘客的财物。尽管车上有几十位多位乘客，但是没有任何一个敢反抗，让整个打劫过程变得很顺利。两个劫匪完成了任务后，先下了车，最后下车的是持刀控制司机的那个。司机趁带刀劫匪转身走向车门的时候，按下了关门键，迅速飞身扑过去将他按倒在地，夺过他的刀具，并大声呼求其他乘客的帮助。于是两三个男乘客帮忙制服了劫匪，司机马上回到驾驶座发动了车子，把另外两个先下车被关在车门外的劫匪甩掉了。车子开到安全路段后，让司机意想不到的事情发生了，那几个帮忙制服劫匪的乘客开始殴打劫匪，随后所有的乘客都加入到了殴打劫匪的队伍里。司机无奈只好停车，试图制止，乘客们却像发疯了一样，情绪失去控制，司机在制止过程中也成了被误打的对象，无奈之下司机拿出了从劫匪那里缴获的刀，大声怒吼谁再打我捅了谁！乘客们才全部停止下来，回到自己的座位，这时劫匪已经被打得动弹不得。司机将车开到派出所，将劫匪交给民警，随后去了医院，他被查出肋骨骨折，劫匪的伤情更重。记者采访司机，问为什么要保护劫匪，他回复的大意是，劫匪有罪，罪不致死，他的职责是保护乘客安全，至于惩罚劫匪，那是司法部门的事情，他没有处理劫匪的权利，乘客也没有。</p><p>这起事件对于网络上的众多类似黄艺博事件的舆论风潮来说，具有一定的参照意义。无论是在现实和网络，我们的大众在已经占据了绝对优势的情况下，总是势要追究到底，这是一种貌似勇敢的懦弱。对“官本位”思想表示反感的人，如果有机会做官或高官，有多少会拒绝呢，我猜想大多数还是会欣欣然接受；对现今官僚阶层心怀不满的人，有多少会真正站出来向当今居高位的官员们宣战呢，也不过是躲在网络ID的背后在一个不具备还手之力的初中生身上宣泄着自己失控的情绪；发誓要将囤盐老板谴责到底的人们，自然也不会去追究真正引起囤盐悲剧的造谣者，也不会指责有关部门对于不实信息处理的不够及时，因为那些对手都太强大，他们没有胜算能够“谴责”成功，将小小的餐馆老板逼到走投无路痛苦忏悔，相比更容易，更能带给他们满足的快感。而更多的围观群众们，虽然他们不一定是发动舆论攻势的主力军，但是他们刚好借此机会看看热闹，同时为了证明自己跟被大众谴责的对象不一样，也要表达几句自己的愤慨和不认同，生怕任何中立的话语会导致自己被划分到被攻击的范畴内。更何况在谴责他人的过程中，还能对自己进行一种心理暗示，那就是，这种人是可鄙的，而我站在鄙视他的高度，就意味着我不是他那种人，我比他强。能有大把闲余时间浪费在网上，追逐关注舆论新闻事件的网友，大多数在现实中属于碌碌无为者，很难找到肯定自己和蔑视他人的机会，网络对于众网友来说，是能不费吹灰之力找到心理平衡的地方。</p><p>鲁迅先生有名句，真正的勇士，敢于直面惨淡的人生，敢于正视淋漓的鲜血。在至少能维持大面儿上盛世太平的今日，再对勇士做这样的要求，好像有些过了。但是至少我们能要求网络义士们不要吃柿子只捡软的捏。看到不顺眼的人和事，倘若对方手无寸铁，我方人多势众，就一哄而上置之死地而后快，对于真正造成社会异象的制度法规及其他根本性力量，却视而不见不敢宣战，绝非勇士所为。杀鸡儆猴，杀鸡只是手段，最终目标还是猴子们。倘若杀来杀去都是鸡，杀得再精彩，最后也不过只落得一地鸡毛而已。诚然，在利用民众舆论推进社会公平公正方面，我们的网友的确作出了贡献，欺实马事件和药家鑫事件就是明证。即使是这样网络舆论发挥了积极正面作用的案件里，也还是带有一哄而上三分钟热度的特征，欺实马事件主角现在是否依法服刑，在大众关注热潮退去后，有没有利用保外就医等手段逍遥法外，再也没有网友继续追踪关注。如果我们的网友在关注新闻热点的时候，总是避难就易，或只追求短期内浩大的群体舆论攻势带来的参与快感，不具有以舆论推进社会公平民主建设的真正长远目标，那么类似的黄艺博事件在未来就会过多重复且没有任何实际意义。说到底，这都只是一场场庸众的狂欢。</p><p>转自：http://blog.renren.com/blog/358490553/727056353</p><p>评论：五道杠少年官人也好，屯盐无盐也好，杀鸡被猴笑也好，其实我认为是庸众的自发宣泄。这是网络社会的幸，还好有疏无堵；也是网络社会的不幸，民众只是站在神秘的网络背后以期隔山打牛。最后，牛没打着，自己却获得了宣泄后的满足，社会和谐了，被和谐了？ 让我长忆袁督师，为民戍边，最后却被人所食。其实，我们人民大众是最容易被利用误导的一群人！——张晓东</p><p>相关文章推荐： 美国比中国落后多少年？ 殤花未落</p>]]></description> <content:encoded><![CDATA[<p>我们中国的网民，向来是不会无聊的。我们总有各种各样的事情可以消遣。最近被我们消遣的热点，是一个叫黄艺博的初中生，他戴着一个五道杠的臂章，认真的看文件，引发了我们网友的各种看不惯。网友说他长得官相，骂他写日记官腔，指责他的父母给他灌输官本位的思想，控诉我们整个社会的思想的异化，教育体制的失败。批评声铺天盖地，大家都批评得很有理，批评得很激情，越批评越觉得自己很有正义感，越批评越停不下来。在这一边倒的舆论攻势中，当然少不了的是广大打酱油的围观群众，观众们虽然提不出理论化的批判论点，但是顶顶批判者的帖子，转发下批判者的段子，加点小讽刺小幽默，来点类似于往要倒的墙壁上戳一指头的行为，总还是不难的。间或偶然有微弱的反对声出现，也迅速被大众口水的浪潮打下去。</p><p>网络是一个很有意思的地方。每个人都可以用虚拟的身份相对自由的表达自己的看法，无肆放纵自己的情感。在类似黄艺博的新闻热点事件中，网友们“痛打落水狗”态度的坚决程度每每让人咂舌。例如前段时间出现的抢盐潮中，有一个餐馆的老板非常愚蠢，他误信亲戚传言，抢购了以吨计的食盐，为自己餐馆储备之用，后来盐价回复正常，他的经济损失相比普通抢盐以作家用的老百姓，自然更大，作为小小个体经营者的他难以承受。这时候，他做了一个更加愚蠢的决定，他向新闻部门求助，希望能有部门居中调解，帮助他退盐减少损失。事件经新闻媒体曝光后，有关部门没有找上他，富有正义感又恰好富有闲余时间的网友们却找上了他。每天都有人打电话到新闻报社，强烈要求报社不要对他进行任何形式的帮助，相反要发文进行谴责其囤盐的行为。他发布的求助电话，也变成了控诉热线，被各方打电话去辱骂他谴责他的网友打爆，没两天就被迫关机了。</p><p>在这样许多的类似事件中，网友们的动机真的是出于正义感吗？黄艺博的父母对他的培养方式和黄艺博本人在政治方面的积极追求，很难说是对是错。想做官不是黄艺博的个体行为，是中华五千年的传统，是中华民族的群体心态；何况黄艺博的日志里写明了，他不只是追求做官，还追求将来做个好官。每个人都有自己的理想和选择，理想是做官就一定有错吗？他说自己想做个好官就一定是作秀吗？只要他的个人追求不是危害社会和人类，我们谁都无法站在道德法官的高度给他定罪。有人说，网友们针对的其实不是黄艺博本身，针对的是黄艺博代表的“官本位”的思想。可是作为一种思想传统，“官本位”自古有着广泛的受众，中国历史上数的出名字的牛人们，多半都是年轻的时候就开始备战科举，孜孜以求金榜题名，跻身仕途的一天。为什么那么多人官本位都没事儿，作为后继者的黄艺博却被推到了舆论的风口浪尖呢? 对此有人做出的解释是，那是因为现今的官僚阶层太让民众反感，看到黄艺博年纪小小就梦想着成为肉食者中的一员，难免让网友们看不起。这里存在一个逻辑的悖论，民众反感现今的官僚群体，所以反感黄艺博，可是黄艺博并不是现今官僚群体的组成部分；黄艺博追求做官，谁也不能肯定黄艺博将来能够有官做，更不能肯定他会成为让民众反感的官，而不是在其位谋其政踏踏实实的好官。既然现今的官僚群体跟黄艺博没有半毛关系，那么我们的广大网友到底在批判什么？ 囤盐事件也一样，餐馆老板在得知盐价即将大幅上涨后，为以后的生意成本考虑，大肆进购食盐，这种是很正常的反应，就好像每次听说油价即将上涨，众多私家车主就会抢着去把油缸加满，听说矿石价格即将上涨，钢铁企业就会提前大肆进购原材料一样，无可厚非。很多人指责这位老板囤盐是为了以后高价卖，但这只是猜测而已，并不一定是事实。针对这种不违背法纪甚至不外乎人情的行为，做出决绝的激烈的批判，我们的网友们又是为了什么？</p><p>每每看到类似的新闻事件和网友们的过激反应，总让我想到很久以前看过的一则新闻。有一辆长途汽车在行驶过程中被打劫，三个劫匪上车后，有一个持刀控制了司机，另外两个搜刮乘客的财物。尽管车上有几十位多位乘客，但是没有任何一个敢反抗，让整个打劫过程变得很顺利。两个劫匪完成了任务后，先下了车，最后下车的是持刀控制司机的那个。司机趁带刀劫匪转身走向车门的时候，按下了关门键，迅速飞身扑过去将他按倒在地，夺过他的刀具，并大声呼求其他乘客的帮助。于是两三个男乘客帮忙制服了劫匪，司机马上回到驾驶座发动了车子，把另外两个先下车被关在车门外的劫匪甩掉了。车子开到安全路段后，让司机意想不到的事情发生了，那几个帮忙制服劫匪的乘客开始殴打劫匪，随后所有的乘客都加入到了殴打劫匪的队伍里。司机无奈只好停车，试图制止，乘客们却像发疯了一样，情绪失去控制，司机在制止过程中也成了被误打的对象，无奈之下司机拿出了从劫匪那里缴获的刀，大声怒吼谁再打我捅了谁！乘客们才全部停止下来，回到自己的座位，这时劫匪已经被打得动弹不得。司机将车开到派出所，将劫匪交给民警，随后去了医院，他被查出肋骨骨折，劫匪的伤情更重。记者采访司机，问为什么要保护劫匪，他回复的大意是，劫匪有罪，罪不致死，他的职责是保护乘客安全，至于惩罚劫匪，那是司法部门的事情，他没有处理劫匪的权利，乘客也没有。</p><p>这起事件对于网络上的众多类似黄艺博事件的舆论风潮来说，具有一定的参照意义。无论是在现实和网络，我们的大众在已经占据了绝对优势的情况下，总是势要追究到底，这是一种貌似勇敢的懦弱。对“官本位”思想表示反感的人，如果有机会做官或高官，有多少会拒绝呢，我猜想大多数还是会欣欣然接受；对现今官僚阶层心怀不满的人，有多少会真正站出来向当今居高位的官员们宣战呢，也不过是躲在网络ID的背后在一个不具备还手之力的初中生身上宣泄着自己失控的情绪；发誓要将囤盐老板谴责到底的人们，自然也不会去追究真正引起囤盐悲剧的造谣者，也不会指责有关部门对于不实信息处理的不够及时，因为那些对手都太强大，他们没有胜算能够“谴责”成功，将小小的餐馆老板逼到走投无路痛苦忏悔，相比更容易，更能带给他们满足的快感。而更多的围观群众们，虽然他们不一定是发动舆论攻势的主力军，但是他们刚好借此机会看看热闹，同时为了证明自己跟被大众谴责的对象不一样，也要表达几句自己的愤慨和不认同，生怕任何中立的话语会导致自己被划分到被攻击的范畴内。更何况在谴责他人的过程中，还能对自己进行一种心理暗示，那就是，这种人是可鄙的，而我站在鄙视他的高度，就意味着我不是他那种人，我比他强。能有大把闲余时间浪费在网上，追逐关注舆论新闻事件的网友，大多数在现实中属于碌碌无为者，很难找到肯定自己和蔑视他人的机会，网络对于众网友来说，是能不费吹灰之力找到心理平衡的地方。</p><p>鲁迅先生有名句，真正的勇士，敢于直面惨淡的人生，敢于正视淋漓的鲜血。在至少能维持大面儿上盛世太平的今日，再对勇士做这样的要求，好像有些过了。但是至少我们能要求网络义士们不要吃柿子只捡软的捏。看到不顺眼的人和事，倘若对方手无寸铁，我方人多势众，就一哄而上置之死地而后快，对于真正造成社会异象的制度法规及其他根本性力量，却视而不见不敢宣战，绝非勇士所为。杀鸡儆猴，杀鸡只是手段，最终目标还是猴子们。倘若杀来杀去都是鸡，杀得再精彩，最后也不过只落得一地鸡毛而已。诚然，在利用民众舆论推进社会公平公正方面，我们的网友的确作出了贡献，欺实马事件和药家鑫事件就是明证。即使是这样网络舆论发挥了积极正面作用的案件里，也还是带有一哄而上三分钟热度的特征，欺实马事件主角现在是否依法服刑，在大众关注热潮退去后，有没有利用保外就医等手段逍遥法外，再也没有网友继续追踪关注。如果我们的网友在关注新闻热点的时候，总是避难就易，或只追求短期内浩大的群体舆论攻势带来的参与快感，不具有以舆论推进社会公平民主建设的真正长远目标，那么类似的黄艺博事件在未来就会过多重复且没有任何实际意义。说到底，这都只是一场场庸众的狂欢。</p><p>转自：<a
href="http://blog.renren.com/blog/358490553/727056353">http://blog.renren.com/blog/358490553/727056353</a></p><p>评论：五道杠少年官人也好，屯盐无盐也好，杀鸡被猴笑也好，其实我认为是庸众的自发宣泄。这是网络社会的幸，还好有疏无堵；也是网络社会的不幸，民众只是站在神秘的网络背后以期隔山打牛。最后，牛没打着，自己却获得了宣泄后的满足，社会和谐了，被和谐了？ 让我长忆袁督师，为民戍边，最后却被人所食。其实，我们人民大众是最容易被利用误导的一群人！——<a
title="张晓东" href="http://www.renren.com/profile.do?id=342073216">张晓东</a></p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/%e7%be%8e%e5%9b%bd%e6%af%94%e4%b8%ad%e5%9b%bd%e8%90%bd%e5%90%8e%e5%a4%9a%e5%b0%91%e5%b9%b4%ef%bc%9f/' rel='bookmark' title='美国比中国落后多少年？'>美国比中国落后多少年？</a></li><li><a
href='http://ceeji.net/blog/%e6%ae%a4%e8%8a%b1%e6%9c%aa%e8%90%bd/' rel='bookmark' title='殤花未落'>殤花未落</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e5%ba%b8%e4%bc%97%e7%9a%84%e7%8b%82%e6%ac%a2/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>七里香</title><link>http://ceeji.net/blog/%e4%b8%83%e9%87%8c%e9%a6%99/</link> <comments>http://ceeji.net/blog/%e4%b8%83%e9%87%8c%e9%a6%99/#comments</comments> <pubDate>Tue, 10 May 2011 16:11:35 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[文学与情感]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1729</guid> <description><![CDATA[<p>今天晚上粗略地看了一遍席慕容的诗集《七里香》，下面这些是这本诗集中比较喜欢的部分的摘录。其中我最喜欢的是《孤星》和《出塞曲》。</p><p>&#160;</p><p>当你走近　请你细听</p><p>那颤抖的叶是我等待的热情</p><p>而当你终于无视地走过</p><p>在你身后落了一地的</p><p>朋友啊　那不是花瓣</p><p>是我凋零的心</p><p>——《一棵花开的树》</p><p>是那样万般无奈的凝视</p><p>渡口旁找不到一朵可以相送的花</p><p>就把祝福别在襟上吧</p><p>而明日</p><p>明日又隔天涯</p><p>——《渡口》</p><p>我只能来这世上一次</p><p>所以请再给我一个美丽的名字</p><p>好让他能在夜里低唤我</p><p>在奔驰的岁月里</p><p>永远记得我们曾经相爱的事</p><p>——《祈祷词》</p><p>总希望二十岁的那个月夜</p><p>能再回来</p><p>再重新活那么一次</p><p>——《千年的愿望》</p><p>一直在盼望着一段美丽的爱</p><p>所以我毫不犹疑地将你舍弃</p><p>流浪的途中我不断寻觅</p><p>却没料到　回首之时</p><p>年轻的你　从未稍离</p><p>——《回首》</p><p>你把忧伤画在眼角</p><p>我将流浪抹在额头</p><p>你用思念添几缕白发</p><p>我让岁月雕刻我憔悴的手</p><p>然后在街角我们擦身而过</p><p>漠然地不再相识</p><p>啊 亲爱的朋友</p><p>请别错怪那韶光改人容颜</p><p>我们自己才是那个化装师</p><p>——《邂逅》</p><p>回顾所来径啊</p><p>苍苍横着的翠微</p><p>这半生的坎坷啊</p><p>在暮色中 竟化为甜蜜的热泪</p><p>——《暮色》</p><p>风清　云淡</p><p>野百合散开在黄昏的山巅</p><p>有谁在月光下变成桂树</p><p>可以逃过夜夜的思念</p><p>——《月桂树的愿望》</p><p>在天空里有一颗孤独的星</p><p>黑夜里的旅人</p> [...]]]></description> <content:encoded><![CDATA[<p>今天晚上粗略地看了一遍席慕容的诗集《七里香》，下面这些是这本诗集中比较喜欢的部分的摘录。其中我最喜欢的是《孤星》和《出塞曲》。</p><p>&nbsp;</p><p>当你走近　请你细听</p><p>那颤抖的叶是我等待的热情</p><p>而当你终于无视地走过</p><p>在你身后落了一地的</p><p>朋友啊　那不是花瓣</p><p>是我凋零的心</p><p>——《一棵花开的树》</p><p>是那样万般无奈的凝视</p><p>渡口旁找不到一朵可以相送的花</p><p>就把祝福别在襟上吧</p><p>而明日</p><p>明日又隔天涯</p><p>——《渡口》</p><p>我只能来这世上一次</p><p>所以请再给我一个美丽的名字</p><p>好让他能在夜里低唤我</p><p>在奔驰的岁月里</p><p>永远记得我们曾经相爱的事</p><p>——《祈祷词》</p><p>总希望二十岁的那个月夜</p><p>能再回来</p><p>再重新活那么一次</p><p>——《千年的愿望》</p><p>一直在盼望着一段美丽的爱</p><p>所以我毫不犹疑地将你舍弃</p><p>流浪的途中我不断寻觅</p><p>却没料到　回首之时</p><p>年轻的你　从未稍离</p><p>——《回首》</p><p>你把忧伤画在眼角</p><p>我将流浪抹在额头</p><p>你用思念添几缕白发</p><p>我让岁月雕刻我憔悴的手</p><p>然后在街角我们擦身而过</p><p>漠然地不再相识</p><p>啊 亲爱的朋友</p><p>请别错怪那韶光改人容颜</p><p>我们自己才是那个化装师</p><p>——《邂逅》</p><p>回顾所来径啊</p><p>苍苍横着的翠微</p><p>这半生的坎坷啊</p><p>在暮色中 竟化为甜蜜的热泪</p><p>——《暮色》</p><p>风清　云淡</p><p>野百合散开在黄昏的山巅</p><p>有谁在月光下变成桂树</p><p>可以逃过夜夜的思念</p><p>——《月桂树的愿望》</p><p>在天空里有一颗孤独的星</p><p>黑夜里的旅人</p><p>总会频频回首</p><p>想象着</p><p>那是他初次的</p><p>初次的　爱恋</p><p>——《孤星》</p><p>茉莉好像没有什么季节</p><p>在日里在夜里</p><p>时时开着小朵的清香的蓓蕾</p><p>想你好像也没有什么分别</p><p>在日里 在夜里</p><p>在每一个恍惚的刹那间</p><p>——《茉莉》</p><p>所有的结局都已写好</p><p>所有的泪水也都已启程</p><p>却忽然忘了是怎么样的一个开始</p><p>在那个古老的不再回来的夏日</p><p>无论我如何地去追索</p><p>年轻的你只如云影掠过</p><p>而你微笑的面容极浅极浅</p><p>逐渐隐没在日落后的群岚</p><p>遂翻开那发黄的扉页</p><p>命运将它装订得极为拙劣</p><p>含着泪</p><p>我一读再读</p><p>却不得不承认</p><p>青春是一本太仓促的书</p><p>——《青春 （之一）》</p><p>当所有的亲人</p><p>都感到我逐日的苍老</p><p>当所有的朋友</p><p>都看到我发上的风霜</p><p>我如何舍得与你重逢</p><p>当只有在你心中仍深藏着的我的青春</p><p>还正如水般澄澈</p><p>山般葱茏</p><p>——《短诗》</p><p>那样多的事情都已发生</p><p>那样多的夜晚都已过去</p><p>而今宵　只有月色</p><p>只有月色能如当初一样美丽</p><p>我们已无法回去　也无法再向前走</p><p>亲爱的朋友</p><p>我们今世一无所有　也再一无所求</p><p>——《重逢（之一）》</p><p>我只是一棵孤独的树</p><p>在抗拒着秋的来临</p><p>——《树的画像》</p><p>今生将不再见你</p><p>只为　再见的已不是你</p><p>心中的你已永不再现</p><p>再现的</p><p>只是些沧桑的日月和流年</p><p>——《悲歌》</p><p>而在他年</p><p>在无法预知的重逢里</p><p>我将再也不能</p><p>再也不能　再如今夜这般美丽</p><p>——《生别离》</p><p>今朝仍要重复那相同的别离</p><p>余生将成陌路</p><p>一去千里在暮霭里 向你深深俯首</p><p>请为我珍重　尽管</p><p>他们说世间种种最后终必　终必成空</p><p>——《送别》</p><p>只要　在我眸中曾有你芬芳的夏日</p><p>在我心中永存一首真挚的诗</p><p>那么　就这样忧伤以终老</p><p>也没有什么不好</p><p>——《让步》</p><p>明知道总有一日所有的悲欢都将离我而去</p><p>我仍然竭力地搜集搜集那些美丽的纠缠着的</p><p>值得为她活了一次的记忆</p><p>——《尘缘》</p><p>曾让我那样流泪的爱情在回首时　也不过恍如一梦</p><p>——《悟》</p><p>谁说出塞歌的调子都太悲凉</p><p>如果你不爱听</p><p>那是因为歌中没有你的渴望</p><p>——《出塞曲》</p><p>请爱我　因为我将与你为侣</p><p>共度人世的沧桑</p><p>——《新娘》</p><p>而我的幸福还不止如此</p><p>在他强壮温柔的护翼下</p><p>我知道 我很知道啊</p><p>我是一个受纵容的女子</p><p>——《他》</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/%e9%ab%98%e4%b8%89%e6%96%87%e5%8c%96%e7%b4%a0%e5%85%bb%e7%a7%af%e7%b4%af%e4%b8%80/' rel='bookmark' title='高三文化素养积累一'>高三文化素养积累一</a></li><li><a
href='http://ceeji.net/blog/%e5%b8%ad%e6%85%95%e5%ae%b9%e7%9a%84%e8%af%97%ef%bc%88%e4%b8%80%e8%af%be%e5%bc%80%e8%8a%b1%e7%9a%84%e6%a0%91%e3%80%80%e7%ad%89%e8%8b%a5%e5%b9%b2%e7%af%87%ef%bc%89/' rel='bookmark' title='席慕容的诗（一课开花的树　等若干篇）'>席慕容的诗（一课开花的树　等若干篇）</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e4%b8%83%e9%87%8c%e9%a6%99/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>关于古剑奇谭重装系统忘记反激活的问题</title><link>http://ceeji.net/blog/%e5%85%b3%e4%ba%8e%e5%8f%a4%e5%89%91%e5%a5%87%e8%b0%ad%e9%87%8d%e8%a3%85%e7%b3%bb%e7%bb%9f%e5%bf%98%e8%ae%b0%e5%8f%8d%e6%bf%80%e6%b4%bb%e7%9a%84%e9%97%ae%e9%a2%98/</link> <comments>http://ceeji.net/blog/%e5%85%b3%e4%ba%8e%e5%8f%a4%e5%89%91%e5%a5%87%e8%b0%ad%e9%87%8d%e8%a3%85%e7%b3%bb%e7%bb%9f%e5%bf%98%e8%ae%b0%e5%8f%8d%e6%bf%80%e6%b4%bb%e7%9a%84%e9%97%ae%e9%a2%98/#comments</comments> <pubDate>Mon, 02 May 2011 02:45:27 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[未分类]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1725</guid> <description><![CDATA[<p>应该说，在重新安装系统前忘记（或者如同我一样，并非忘记，而是由于系统问题没有办法）反激活，且重新安装系统后提示激活码失效的人，应该是很多的。起初我认为烛龙对此肯定有相应的解决方法，然而在网上搜索了一阵之后发现很多人最后的遭遇就是重新购买CDKEY。烛龙说可以离线反激活，然而离线反激活要求在卸载时进行，但如果还没有激活，卸载时是不会提示反激活的。在这种情况下无法获得所谓的反激活特征码，也就没有办法进行离线反激活。</p><p>在古剑的官方论坛上，看不到任何有关这个问题的帖子和回复，而在其他网站上却到处都是。甚至在古剑的激活讨论帖中就根本没有提到过重装系统这个话题。这种和谐的态度让我很不满意。</p><p>另外顺便提一句，近期我确实很倒霉，硬盘数据丢失，数码相机数据丢失，MP3数据丢失，风扇损坏，网站数据丢失，手机触摸屏损坏，……，我不得不感慨一句，电子信息的安全威胁真的不容小觑。一周之内，我几乎丢失了我大部分积累的数据。通过各种数据恢复，只得到了20%左右的恢复。</p><p>再次提醒我自己和其他人：进行危险操作必定先备份所有文件。</p><p>相关文章推荐： 关于方滨兴在武汉大学计算机学院被砸事件 【成绩】百度NOIP吧编程挑战赛成绩公布</p>]]></description> <content:encoded><![CDATA[<p>应该说，在重新安装系统前忘记（或者如同我一样，并非忘记，而是由于系统问题没有办法）反激活，且重新安装系统后提示激活码失效的人，应该是很多的。起初我认为烛龙对此肯定有相应的解决方法，然而在网上搜索了一阵之后发现很多人最后的遭遇就是重新购买CDKEY。烛龙说可以离线反激活，然而离线反激活要求在卸载时进行，但如果还没有激活，卸载时是不会提示反激活的。在这种情况下无法获得所谓的反激活特征码，也就没有办法进行离线反激活。</p><p>在古剑的官方论坛上，看不到任何有关这个问题的帖子和回复，而在其他网站上却到处都是。甚至在古剑的激活讨论帖中就根本没有提到过重装系统这个话题。这种和谐的态度让我很不满意。</p><p>另外顺便提一句，近期我确实很倒霉，硬盘数据丢失，数码相机数据丢失，MP3数据丢失，风扇损坏，网站数据丢失，手机触摸屏损坏，……，我不得不感慨一句，电子信息的安全威胁真的不容小觑。一周之内，我几乎丢失了我大部分积累的数据。通过各种数据恢复，只得到了20%左右的恢复。</p><p>再次提醒我自己和其他人：进行危险操作必定先备份所有文件。</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/%e5%85%b3%e4%ba%8e%e6%96%b9%e6%bb%a8%e5%85%b4%e5%9c%a8%e6%ad%a6%e6%b1%89%e5%a4%a7%e5%ad%a6%e8%ae%a1%e7%ae%97%e6%9c%ba%e5%ad%a6%e9%99%a2%e8%a2%ab%e7%a0%b8%e4%ba%8b%e4%bb%b6/' rel='bookmark' title='关于方滨兴在武汉大学计算机学院被砸事件'>关于方滨兴在武汉大学计算机学院被砸事件</a></li><li><a
href='http://ceeji.net/blog/noip-2-res/' rel='bookmark' title='【成绩】百度NOIP吧编程挑战赛成绩公布'>【成绩】百度NOIP吧编程挑战赛成绩公布</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e5%85%b3%e4%ba%8e%e5%8f%a4%e5%89%91%e5%a5%87%e8%b0%ad%e9%87%8d%e8%a3%85%e7%b3%bb%e7%bb%9f%e5%bf%98%e8%ae%b0%e5%8f%8d%e6%bf%80%e6%b4%bb%e7%9a%84%e9%97%ae%e9%a2%98/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>李斯特交响音乐会小记</title><link>http://ceeji.net/blog/%e6%9d%8e%e6%96%af%e7%89%b9%e4%ba%a4%e5%93%8d%e9%9f%b3%e4%b9%90%e4%bc%9a%e5%b0%8f%e8%ae%b0/</link> <comments>http://ceeji.net/blog/%e6%9d%8e%e6%96%af%e7%89%b9%e4%ba%a4%e5%93%8d%e9%9f%b3%e4%b9%90%e4%bc%9a%e5%b0%8f%e8%ae%b0/#comments</comments> <pubDate>Sun, 01 May 2011 09:10:32 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[心情随记]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1721</guid> <description><![CDATA[<p>昨天我到武汉琴台音乐厅欣赏了“中法文化之春”利斯特交响音乐会。这是我第一次听古典音乐会，因此还是相当期待的。起初我在担心现场的杂声是不是会影响效果，但事实是，手机信号被全部屏蔽（这招真是狠），音乐会正式开始后也几乎没有人说话，所以效果还算可以。</p><p>但是我之前几乎没有欣赏过交响乐，也没有提前把表演曲目听过，因此第一遍听时确实感到些许迷茫。在现场感受比较深的就是复杂的礼节。每次演奏结束和开始之时，都要进行很多礼节性的动作，观众的掌声要覆盖整个过程，手都拍麻了。</p><p>另外，音乐厅确实具有良好的声学设计，不需要经过任何放大，演奏的音响效果就非常好。</p><p>要创作一首交响乐真的不容易，这么多声部的合奏，要在但脑中虚构并想象出来，真是需要天才般的音乐天赋。</p><p>回来之后重新听了演奏曲目的录音（不是这一次的，而是较为经典的版本），也让我对交响乐的理解能力稍有增加。</p><p>&#160;</p><p>相关文章推荐： 欢迎来到Ceeji的Blog 汗水，拼搏，奇迹 &#8211; HAOI 真的要来了</p>]]></description> <content:encoded><![CDATA[<p>昨天我到武汉琴台音乐厅欣赏了“中法文化之春”利斯特交响音乐会。这是我第一次听古典音乐会，因此还是相当期待的。起初我在担心现场的杂声是不是会影响效果，但事实是，手机信号被全部屏蔽（这招真是狠），音乐会正式开始后也几乎没有人说话，所以效果还算可以。</p><p>但是我之前几乎没有欣赏过交响乐，也没有提前把表演曲目听过，因此第一遍听时确实感到些许迷茫。在现场感受比较深的就是复杂的礼节。每次演奏结束和开始之时，都要进行很多礼节性的动作，观众的掌声要覆盖整个过程，手都拍麻了。</p><p>另外，音乐厅确实具有良好的声学设计，不需要经过任何放大，演奏的音响效果就非常好。</p><p>要创作一首交响乐真的不容易，这么多声部的合奏，要在但脑中虚构并想象出来，真是需要天才般的音乐天赋。</p><p>回来之后重新听了演奏曲目的录音（不是这一次的，而是较为经典的版本），也让我对交响乐的理解能力稍有增加。</p><p>&nbsp;</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/%e6%ac%a2%e8%bf%8e%e6%9d%a5%e5%88%b0ceeji%e7%9a%84blog/' rel='bookmark' title='欢迎来到Ceeji的Blog'>欢迎来到Ceeji的Blog</a></li><li><a
href='http://ceeji.net/blog/%e6%b1%97%e6%b0%b4%ef%bc%8c%e6%8b%bc%e6%90%8f%ef%bc%8c%e5%a5%87%e8%bf%b9-haoi-%e7%9c%9f%e7%9a%84%e8%a6%81%e6%9d%a5%e4%ba%86/' rel='bookmark' title='汗水，拼搏，奇迹 &#8211; HAOI 真的要来了'>汗水，拼搏，奇迹 &#8211; HAOI 真的要来了</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e6%9d%8e%e6%96%af%e7%89%b9%e4%ba%a4%e5%93%8d%e9%9f%b3%e4%b9%90%e4%bc%9a%e5%b0%8f%e8%ae%b0/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>开心购物网购物车系统项目设计说明</title><link>http://ceeji.net/blog/%e5%bc%80%e5%bf%83%e8%b4%ad%e7%89%a9%e7%bd%91%e8%b4%ad%e7%89%a9%e8%bd%a6%e7%b3%bb%e7%bb%9f%e9%a1%b9%e7%9b%ae%e8%ae%be%e8%ae%a1%e8%af%b4%e6%98%8e/</link> <comments>http://ceeji.net/blog/%e5%bc%80%e5%bf%83%e8%b4%ad%e7%89%a9%e7%bd%91%e8%b4%ad%e7%89%a9%e8%bd%a6%e7%b3%bb%e7%bb%9f%e9%a1%b9%e7%9b%ae%e8%ae%be%e8%ae%a1%e8%af%b4%e6%98%8e/#comments</comments> <pubDate>Sat, 30 Apr 2011 07:49:42 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[互联网技术]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1718</guid> <description><![CDATA[<p>注：这是我 Web 程序设计的作业，并不是一个实际项目。建议查看 PDF 版本的项目设计说明，可以在这里下载。</p> 开心购物网购物车系统项目设计说明 基本思路<p>根据实验要求，本项目整体上采用 XHTML 1.0, CSS3, JSP, Servlet, JavaBean, XML, Javascript, JQuery技术实现。主要从以下几个技术层面去实现。</p><p>在数据层面，采用 XML 存储书籍的信息。利用 Javascript、JQuery和Ajax技术在html页面动态加载XML文档显示书籍的信息，并将信息通过隐藏表单（hidden input）提交给购物车处理程序（ShowCartInf.jsp）。</p><p>对于用户生成的信息，使用 application 内置对象存储注册的账户信息、购物车、留言信息，以便实现多用户登录、购买和留言。使用 Session 存储登录次数信息。由于 Session 绑定到单一的客户端用户，因此使用这种方法可以保证在禁止超过指定次数登录的前提下，不影响其它用户的登录和使用。当然，使用这种方法时，用户是可以通过清除 cookie 信息使 Session ID 失效来逃避的。在一定程度上，这为用户猜测密码和暴力破解留下了隐患。该项目未在此处进行改进。</p><p>对用户的呈现采用了 XHTML 1.0 版本进行绘制，为了更好的进行内容与样式的分离，软件采用了 CSS3 控制显示样式，该样式分为全站样式（main.css）和分离样式（每个页面html / body / style 节点的嵌入样式），其中后者的优先级高于前者。</p><p>数据校验采用 Javascript 和 JQuery 框架共同完成，以便减轻服务器端的负担。但由于客户端脚本可以很轻易地被用户修改或忽略，因此通过客户端验证的模式进行表单验证是不可靠的，本项目考虑时间问题并没有对此作出修改，但在实际项目中，服务器端验证是必不可少的一环。</p><p>与此同时，为了使CSS3效果兼容Microsoft Internet Explorer 浏览器，采用PIE使IE模拟出了CSS3中的效果。在此对PIE的提供者表示感谢 (http://css3pie.com/)。   [...]]]></description> <content:encoded><![CDATA[<p>注：这是我 Web 程序设计的作业，并不是一个实际项目。建议查看 PDF 版本的项目设计说明，可以在<a
href="/docs/cart.pdf">这里下载</a>。</p><h1>开心购物网购物车系统项目设计说明</h1><h2>基本思路</h2><p>根据实验要求，本项目整体上采用 XHTML 1.0, CSS3, JSP, Servlet, JavaBean, XML, Javascript, JQuery技术实现。主要从以下几个技术层面去实现。</p><p>在数据层面，采用 XML 存储书籍的信息。利用 Javascript、JQuery和Ajax技术在html页面动态加载XML文档显示书籍的信息，并将信息通过隐藏表单（hidden input）提交给购物车处理程序（ShowCartInf.jsp）。</p><p>对于用户生成的信息，使用 application 内置对象存储注册的账户信息、购物车、留言信息，以便实现多用户登录、购买和留言。使用 Session 存储登录次数信息。由于 Session 绑定到单一的客户端用户，因此使用这种方法可以保证在禁止超过指定次数登录的前提下，不影响其它用户的登录和使用。当然，使用这种方法时，用户是可以通过清除 cookie 信息使 Session ID 失效来逃避的。在一定程度上，这为用户猜测密码和暴力破解留下了隐患。该项目未在此处进行改进。</p><p>对用户的呈现采用了 XHTML 1.0 版本进行绘制，为了更好的进行内容与样式的分离，软件采用了 CSS3 控制显示样式，该样式分为全站样式（main.css）和分离样式（每个页面html / body / style 节点的嵌入样式），其中后者的优先级高于前者。</p><p>数据校验采用 Javascript 和 JQuery 框架共同完成，以便减轻服务器端的负担。但由于客户端脚本可以很轻易地被用户修改或忽略，因此通过客户端验证的模式进行表单验证是不可靠的，本项目考虑时间问题并没有对此作出修改，但在实际项目中，服务器端验证是必不可少的一环。</p><p>与此同时，为了使CSS3效果兼容Microsoft Internet Explorer 浏览器，采用PIE使IE模拟出了CSS3中的效果。在此对PIE的提供者表示感谢 (http://css3pie.com/)。    在数据的抽象方面，本项目采用 JavaBean 的理念，将用户信息、书籍信息、订购信息等内容抽象为类，存储在 JSP 的 application 中。在这种方式下，如果服务器端重新启动，用户将丢失全部数据。在实际商用中，应该将数据存储在数据库而不是 application 中。</p><p>本项目在 Linux / Ubuntu 10.10 x86平台，Tomcat 7.0  for Linux环境下测试通过。</p><h2>文件列表</h2><p>项目的主要文件及其描述如下。</p><p><strong> 文件名	 描述</strong></p><p>Book.java	 Application 域的JavaBean 数据封装类</p><p>BookOrder.java	 Application 域的JavaBean 数据封装类</p><p>BookOrders.java	 Application 域的JavaBean 数据封装类</p><p>WebUser.java	 Application 域的JavaBean 数据封装类</p><p>WebUsers.java	 Application 域的JavaBean 数据封装类</p><p>books.xml	 书籍存储</p><p>books.xsd	 书籍XML的架构验证</p><p>checkUser.jsp	 嵌入需要的JSP页面中完成用户是否登录的验证，并在需要时使用服务器端转向要求用户登录</p><p>Comment.java	 Application 域的JavaBean 数据封装类</p><p>Comments.java	 Application 域的JavaBean 数据封装类</p><p>comments.jsp	 显示和添加用户的留言</p><p>delete.jsp	 删除订购的书籍</p><p>doLogin.jsp	 执行用户登录的处理，主要是 Session 判断、用户合法性验证和超过三次登录的禁止</p><p>doReg.jsp	 在 application 域中注册用户</p><p>jQuery.min.js	 JQuery 框架</p><p>LICENSE	 许可协议</p><p>loginError.html/jsp	 登录时错误处理</p><p>login.html	 登录页面</p><p>logout.jsp	 注销登录（悬浮页面；没有显式的引用链接）</p><p>main.css	 主 CSS 样式表</p><p>order.html	 订单信息填写页面</p><p>order.jsp	 订单信息确认页面</p><p>regError.html	 注册错误处理页面</p><p>reg.html	 注册页面</p><p>ShowCartInf.jsp	 购物车显示及更新</p><p>show.html	 书籍列表页面；留言入口</p><p>WEB-INF	 Web 配置文件及 bean 类库</p><p>WebUser.java	 Application 域的JavaBean 数据封装类</p><p>WebUsers.java	 Application 域的JavaBean 数据封装类</p><h2>备注</h2><p>本项目在 Linux / Ubuntu 10.10 中编辑，由于采用了Unix 风格编辑器，因此在 Windows 下一些编辑器打开可能出现编码或换行符的异常。</p><h2>许可协议</h2><p>该项目采用 Apache License Version 2.0 许可协议发布。该项目引用了 CSS3PIE 的部分代码，其也是通过 Apache License Version 2.0 协议发布的。</p><p>Licensed under the Apache License, Version 2.0 (the “License”);</p><p>you may not use this file except in compliance with the License.You may obtain a copy of the License at</p><p>http://www.apache.org/licenses/LICENSE-2.0</p><p>Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an “AS IS” BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.</p><h2>源代码</h2><p><a
href="/docs/web.tar.gz">下载</a></p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/thank-you-all-for-always-being-with-us/' rel='bookmark' title='Thank you all, for always being with us.'>Thank you all, for always being with us.</a></li><li><a
href='http://ceeji.net/blog/%e6%8a%b5%e5%88%b6%e8%b8%90%e8%b8%8fgpl%e7%9a%84qq%e5%bd%b1%e9%9f%b3%ef%bc%88%e8%bd%89%e8%bc%89%ef%bc%89/' rel='bookmark' title='抵制踐踏GPL的QQ影音（轉載）'>抵制踐踏GPL的QQ影音（轉載）</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e5%bc%80%e5%bf%83%e8%b4%ad%e7%89%a9%e7%bd%91%e8%b4%ad%e7%89%a9%e8%bd%a6%e7%b3%bb%e7%bb%9f%e9%a1%b9%e7%9b%ae%e8%ae%be%e8%ae%a1%e8%af%b4%e6%98%8e/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>好梦</title><link>http://ceeji.net/blog/%e5%a5%bd%e6%a2%a6/</link> <comments>http://ceeji.net/blog/%e5%a5%bd%e6%a2%a6/#comments</comments> <pubDate>Tue, 19 Apr 2011 00:48:44 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[心情随记]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1712</guid> <description><![CDATA[<p>有时候，一个好梦或许比梦魇还让人恐怖。</p><p>当不得不从美梦中惊醒，看到一个完全陌生的世界时，即使一声鸟鸣，一丝晨光，都会是对自己美好梦境的绝妙讽刺。</p><p>这时候我是多么想继续睡下去，继续演绎之前的梦境。</p><p>这种失落和无奈，让人失魂落魄，神魂颠倒，恍若隔世。是谁盗走了我的美梦。</p><p>在床上坐着，一个颤抖，一个激灵。要努力让自己相信，那只是一个梦。这是一件多么残酷却又真实的事。</p><p>看了看表，时间指向了早上八点钟。又是新的一天。四周的床铺已经空无一人。</p><p>一声叹息之后，整理一下自己的心情，爬下自己的床。</p><p>相关文章推荐： 欢迎来到Ceeji的Blog 汗水，拼搏，奇迹 &#8211; HAOI 真的要来了</p>]]></description> <content:encoded><![CDATA[<p>有时候，一个好梦或许比梦魇还让人恐怖。</p><p>当不得不从美梦中惊醒，看到一个完全陌生的世界时，即使一声鸟鸣，一丝晨光，都会是对自己美好梦境的绝妙讽刺。</p><p>这时候我是多么想继续睡下去，继续演绎之前的梦境。</p><p>这种失落和无奈，让人失魂落魄，神魂颠倒，恍若隔世。是谁盗走了我的美梦。</p><p>在床上坐着，一个颤抖，一个激灵。要努力让自己相信，那只是一个梦。这是一件多么残酷却又真实的事。</p><p>看了看表，时间指向了早上八点钟。又是新的一天。四周的床铺已经空无一人。</p><p>一声叹息之后，整理一下自己的心情，爬下自己的床。</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/%e6%ac%a2%e8%bf%8e%e6%9d%a5%e5%88%b0ceeji%e7%9a%84blog/' rel='bookmark' title='欢迎来到Ceeji的Blog'>欢迎来到Ceeji的Blog</a></li><li><a
href='http://ceeji.net/blog/%e6%b1%97%e6%b0%b4%ef%bc%8c%e6%8b%bc%e6%90%8f%ef%bc%8c%e5%a5%87%e8%bf%b9-haoi-%e7%9c%9f%e7%9a%84%e8%a6%81%e6%9d%a5%e4%ba%86/' rel='bookmark' title='汗水，拼搏，奇迹 &#8211; HAOI 真的要来了'>汗水，拼搏，奇迹 &#8211; HAOI 真的要来了</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e5%a5%bd%e6%a2%a6/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>中国音像协会唱片工作委员会抗议百度公开信</title><link>http://ceeji.net/blog/%e4%b8%ad%e5%9b%bd%e9%9f%b3%e5%83%8f%e5%8d%8f%e4%bc%9a%e5%94%b1%e7%89%87%e5%b7%a5%e4%bd%9c%e5%a7%94%e5%91%98%e4%bc%9a%e6%8a%97%e8%ae%ae%e7%99%be%e5%ba%a6%e5%85%ac%e5%bc%80%e4%bf%a1/</link> <comments>http://ceeji.net/blog/%e4%b8%ad%e5%9b%bd%e9%9f%b3%e5%83%8f%e5%8d%8f%e4%bc%9a%e5%94%b1%e7%89%87%e5%b7%a5%e4%bd%9c%e5%a7%94%e5%91%98%e4%bc%9a%e6%8a%97%e8%ae%ae%e7%99%be%e5%ba%a6%e5%85%ac%e5%bc%80%e4%bf%a1/#comments</comments> <pubDate>Thu, 17 Mar 2011 08:20:26 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[杂文讽趣]]></category> <category><![CDATA[精品转载]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1698</guid> <description><![CDATA[<p>音乐传播技术和播放载体的变化给音乐产业带来了一场变革。传统唱片业日渐萎缩，传统唱片的盗版也随之日渐销声匿迹，数字音乐如日中天，产值不断攀升。</p><p>然而，中国原创音乐人并没有如同世界其他国家的音乐人一样迎来一场数字音乐的春天，反而发现自己的权益更加无法保护，因为他们面临一个更为强大、更为肆无忌惮的敌人，那就是无处不在的盗版网站。而这些盗版网站赖以生存的重要手段之一，那就是百度的深度链接。</p><p>百度在明知不法网站盗版行径的前提下，仍然不惜助纣为虐，为他们提供深度链接这一同路和生存土壤，目的是获得巨额流量，从而获得广告收入，壮大公司利润，进而在国外股票市场上有所斩获。在这方面，百度确实成功了，以千亿计算的公司市值，李彦宏中国首富的耀眼头衔，都证明了这一成功。而这一辉煌成果的背后，又有多少音乐从业人员在无奈叹息？</p><p>其实在今天的中国，网站直接购买版权，或者经过权利人许可，通过消费者提供免费正版音乐获取流量，并将广告收入和权利人分享的商业模式已经成熟。新浪乐库、巨鲸音乐网等正版音乐网站就做出了有益的尝试。而百度则一意孤行，为一己之私利，至今仍在为盗版网站提供深度链接，担任盗版的帮凶，损害音乐权利人的利益。</p><p>中国音像协会唱片工作委员会通过这封公开信呼吁所有中国原创音乐产业人员团结起来，通过你们的博客、微博等工具和你们的公众影响力，让我们一起：</p><p>抗议百度通过成为盗版帮凶获取不义之财的行径，敦促百度终止盗版网站的深度链接，弃暗投明；</p><p>呼吁政府有关部门加大管理力度和执法力度，严惩盗版，关闭盗版音乐网站；</p><p>恳请音乐消费者到正版音乐网站欣赏和消费音乐，支持正版，支持你们喜爱的音乐人。</p><p>让我们一起迎接数字音乐产业的明媚春天！</p><p>中国音像协会唱片工作委员会</p><p>&#160;</p><p>相关文章推荐： 以前与现在 抵制踐踏GPL的QQ影音（轉載）</p>]]></description> <content:encoded><![CDATA[<p>音乐传播技术和播放载体的变化给音乐产业带来了一场变革。传统唱片业日渐萎缩，传统唱片的盗版也随之日渐销声匿迹，数字音乐如日中天，产值不断攀升。</p><p>然而，中国原创音乐人并没有如同世界其他国家的音乐人一样迎来一场数字音乐的春天，反而发现自己的权益更加无法保护，因为他们面临一个更为强大、更为肆无忌惮的敌人，那就是无处不在的盗版网站。而这些盗版网站赖以生存的重要手段之一，那就是百度的深度链接。</p><p>百度在明知不法网站盗版行径的前提下，仍然不惜助纣为虐，为他们提供深度链接这一同路和生存土壤，目的是获得巨额流量，从而获得广告收入，壮大公司利润，进而在国外股票市场上有所斩获。在这方面，百度确实成功了，以千亿计算的公司市值，李彦宏中国首富的耀眼头衔，都证明了这一成功。而这一辉煌成果的背后，又有多少音乐从业人员在无奈叹息？</p><p>其实在今天的中国，网站直接购买版权，或者经过权利人许可，通过消费者提供免费正版音乐获取流量，并将广告收入和权利人分享的商业模式已经成熟。新浪乐库、巨鲸音乐网等正版音乐网站就做出了有益的尝试。而百度则一意孤行，为一己之私利，至今仍在为盗版网站提供深度链接，担任盗版的帮凶，损害音乐权利人的利益。</p><p>中国音像协会唱片工作委员会通过这封公开信呼吁所有中国原创音乐产业人员团结起来，通过你们的博客、微博等工具和你们的公众影响力，让我们一起：</p><p>抗议百度通过成为盗版帮凶获取不义之财的行径，敦促百度终止盗版网站的深度链接，弃暗投明；</p><p>呼吁政府有关部门加大管理力度和执法力度，严惩盗版，关闭盗版音乐网站；</p><p>恳请音乐消费者到正版音乐网站欣赏和消费音乐，支持正版，支持你们喜爱的音乐人。</p><p>让我们一起迎接数字音乐产业的明媚春天！</p><p>中国音像协会唱片工作委员会</p><p>&nbsp;</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/past-and-present/' rel='bookmark' title='以前与现在'>以前与现在</a></li><li><a
href='http://ceeji.net/blog/%e6%8a%b5%e5%88%b6%e8%b8%90%e8%b8%8fgpl%e7%9a%84qq%e5%bd%b1%e9%9f%b3%ef%bc%88%e8%bd%89%e8%bc%89%ef%bc%89/' rel='bookmark' title='抵制踐踏GPL的QQ影音（轉載）'>抵制踐踏GPL的QQ影音（轉載）</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e4%b8%ad%e5%9b%bd%e9%9f%b3%e5%83%8f%e5%8d%8f%e4%bc%9a%e5%94%b1%e7%89%87%e5%b7%a5%e4%bd%9c%e5%a7%94%e5%91%98%e4%bc%9a%e6%8a%97%e8%ae%ae%e7%99%be%e5%ba%a6%e5%85%ac%e5%bc%80%e4%bf%a1/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>POJ 1703 Find them, Catch them</title><link>http://ceeji.net/blog/poj-1703/</link> <comments>http://ceeji.net/blog/poj-1703/#comments</comments> <pubDate>Mon, 14 Mar 2011 07:09:02 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[信息学竞赛]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1693</guid> <description><![CDATA[<p>最近刷题得进度可以说慢到一定境界上了，今天中午抽空终于把n天前残留的 1703 给过掉了。 这个题目也是一个并查集的题目。但是在这道题目中，有一个非常重要的性质：</p> 一个人不是属于集合 A，就是属于集合 B。<p>这样，假设 A、B 两个人不是在同一个 gang 中，A、C 两个人不是在同一个 gang 中，就必定有 B、C 两个人在同一个 gang 中。因此我们可以放心地将 B、C 两个人合并。</p><p>也就是说，每次发现 X Y 在不同的集合中，我们都可以将与 X 不在同一集合的与 Y 合并，将与 Y 不在同一集合的与 X 合并。根据并查集的性质，为了在每次合并时找到与其不在一个集合的元素，我们只需要记录他们的一个代表元素即可，于是我们使用 opt[x] 代表一个与 x 不在同一个集合的元素。</p><p>另外，本题读入必须使用 scanf，因为即使取消同步，cin 也会超时。</p> ?View Code CPP1 2 3 4 5 6 7 8 9 10 11 12 13 [...]]]></description> <content:encoded><![CDATA[<p>最近刷题得进度可以说慢到一定境界上了，今天中午抽空终于把n天前残留的 1703 给过掉了。<br
/> 这个题目也是一个并查集的题目。但是在这道题目中，有一个非常重要的性质：</p><ul> 一个人不是属于集合 A，就是属于集合 B。</ul><p>这样，假设 A、B 两个人不是在同一个 gang 中，A、C 两个人不是在同一个 gang 中，就必定有 B、C 两个人在同一个 gang 中。因此我们可以放心地将 B、C 两个人合并。</p><p>也就是说，每次发现 X Y 在不同的集合中，我们都可以将与 X 不在同一集合的与 Y 合并，将与 Y 不在同一集合的与 X 合并。根据并查集的性质，为了在每次合并时找到与其不在一个集合的元素，我们只需要记录他们的一个代表元素即可，于是我们使用 opt[x] 代表一个与 x 不在同一个集合的元素。</p><p>另外，本题读入必须使用 scanf，因为即使取消同步，cin 也会超时。</p><div
class="wp_codebox_msgheader"><span
class="right"><sup><a
href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span
style="color: #99cc00">?</span></a></sup></span><span
class="left"><a
href="javascript:;" onclick="javascript:showCodeTxt('p1693code14'); return false;">View Code</a> CPP</span><div
class="codebox_clear"></div></div><div
class="wp_codebox"><table><tr
id="p169314"><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
</pre></td><td
class="code" id="p1693code14"><pre class="cpp" style="font-family:monospace;">&nbsp;
<span style="color: #ff0000; font-style: italic;">/* POJ 1703
 * By Ceeji
 * Union
 */</span>
&nbsp;
<span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #339900;">#include &lt;cstring&gt;</span>
<span style="color: #339900;">#include &lt;cstdio&gt;</span>
&nbsp;
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #339900;">#define MAX_N 100000</span>
&nbsp;
<span style="color: #0000ff;">int</span> case_num, n, m<span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> parent<span style="color: #008000;">&#91;</span>MAX_N<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> opt<span style="color: #008000;">&#91;</span>MAX_N<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">void</span> init_set <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> MAX_N<span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
		parent<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> i<span style="color: #008080;">;</span>
	<span style="color: #0000dd;">memset</span><span style="color: #008000;">&#40;</span>opt, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>opt<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> get_parent <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> p<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>parent<span style="color: #008000;">&#91;</span>p<span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> p<span style="color: #008000;">&#41;</span>
		<span style="color: #0000ff;">return</span> p<span style="color: #008080;">;</span>
	parent<span style="color: #008000;">&#91;</span>p<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> get_parent<span style="color: #008000;">&#40;</span>parent<span style="color: #008000;">&#91;</span>p<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">return</span> parent<span style="color: #008000;">&#91;</span>p<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> set_union <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> x, <span style="color: #0000ff;">int</span> y<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">int</span> px <span style="color: #000080;">=</span> get_parent <span style="color: #008000;">&#40;</span>x<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> py <span style="color: #000080;">=</span> get_parent <span style="color: #008000;">&#40;</span>y<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>px <span style="color: #000080;">==</span> py<span style="color: #008000;">&#41;</span>
		<span style="color: #0000ff;">return</span><span style="color: #008080;">;</span>
	parent<span style="color: #008000;">&#91;</span>px<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> py<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> do_work <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> n <span style="color: #000080;">&gt;&gt;</span> m<span style="color: #008080;">;</span>
	init_set <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">char</span> c<span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> x, y<span style="color: #008080;">;</span>
	<span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>m<span style="color: #000040;">--</span><span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>%c %d %d&quot;</span>, <span style="color: #000040;">&amp;</span>c, <span style="color: #000040;">&amp;</span>x, <span style="color: #000040;">&amp;</span>y<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		<span style="color: #666666;">//cin &gt;&gt; c &gt;&gt; x &gt;&gt; y;</span>
		<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>c <span style="color: #000080;">==</span> <span style="color: #FF0000;">'D'</span><span style="color: #008000;">&#41;</span>
		<span style="color: #008000;">&#123;</span>
			<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>opt<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>
			<span style="color: #008000;">&#123;</span>
				opt<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> y<span style="color: #008080;">;</span>
			<span style="color: #008000;">&#125;</span>
			<span style="color: #0000ff;">else</span>
			<span style="color: #008000;">&#123;</span>
				set_union <span style="color: #008000;">&#40;</span>opt<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#93;</span>, y<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
			<span style="color: #008000;">&#125;</span>
			<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>opt<span style="color: #008000;">&#91;</span>y<span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>
			<span style="color: #008000;">&#123;</span>
				opt<span style="color: #008000;">&#91;</span>y<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> x<span style="color: #008080;">;</span>
			<span style="color: #008000;">&#125;</span>
			<span style="color: #0000ff;">else</span>
			<span style="color: #008000;">&#123;</span>
				set_union <span style="color: #008000;">&#40;</span>opt<span style="color: #008000;">&#91;</span>y<span style="color: #008000;">&#93;</span>, x<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
			<span style="color: #008000;">&#125;</span>
		<span style="color: #008000;">&#125;</span>
		<span style="color: #0000ff;">else</span>
		<span style="color: #008000;">&#123;</span>
			<span style="color: #0000ff;">bool</span> finish <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
			<span style="color: #0000ff;">int</span> px <span style="color: #000080;">=</span> get_parent <span style="color: #008000;">&#40;</span>x<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
			<span style="color: #0000ff;">int</span> py <span style="color: #000080;">=</span> get_parent <span style="color: #008000;">&#40;</span>y<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
			<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>px <span style="color: #000040;">!</span><span style="color: #000080;">=</span> py<span style="color: #008000;">&#41;</span>
			<span style="color: #008000;">&#123;</span>
				<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>opt<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#93;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span> <span style="color: #000040;">&amp;&amp;</span> get_parent<span style="color: #008000;">&#40;</span>opt<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> py<span style="color: #008000;">&#41;</span> <span style="color: #000040;">||</span> <span style="color: #008000;">&#40;</span>opt<span style="color: #008000;">&#91;</span>y<span style="color: #008000;">&#93;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span> <span style="color: #000040;">&amp;&amp;</span> get_parent<span style="color: #008000;">&#40;</span>opt<span style="color: #008000;">&#91;</span>y<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> px<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
					<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;In different gangs.<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
				<span style="color: #0000ff;">else</span>
					<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Not sure yet.<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
			<span style="color: #008000;">&#125;</span>
			<span style="color: #0000ff;">else</span>
			<span style="color: #008000;">&#123;</span>
				<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;In the same gang.<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
			<span style="color: #008000;">&#125;</span>
		<span style="color: #008000;">&#125;</span>
	<span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> case_num<span style="color: #008080;">;</span>
	<span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>case_num<span style="color: #000040;">--</span><span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		do_work <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/poj-1611/' rel='bookmark' title='POJ 1611 The Suspects'>POJ 1611 The Suspects</a></li><li><a
href='http://ceeji.net/blog/poj-1308/' rel='bookmark' title='POJ 1308 Is It A Tree 题解'>POJ 1308 Is It A Tree 题解</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/poj-1703/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>龙应台：写给不会闹事的大学生（转载）</title><link>http://ceeji.net/blog/%e9%be%99%e5%ba%94%e5%8f%b0%ef%bc%9a%e5%86%99%e7%bb%99%e4%b8%8d%e4%bc%9a%e9%97%b9%e4%ba%8b%e7%9a%84%e5%a4%a7%e5%ad%a6%e7%94%9f%ef%bc%88%e8%bd%ac%e8%bd%bd%ef%bc%89/</link> <comments>http://ceeji.net/blog/%e9%be%99%e5%ba%94%e5%8f%b0%ef%bc%9a%e5%86%99%e7%bb%99%e4%b8%8d%e4%bc%9a%e9%97%b9%e4%ba%8b%e7%9a%84%e5%a4%a7%e5%ad%a6%e7%94%9f%ef%bc%88%e8%bd%ac%e8%bd%bd%ef%bc%89/#comments</comments> <pubDate>Thu, 10 Mar 2011 09:00:34 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[杂文讽趣]]></category> <category><![CDATA[精品转载]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1691</guid> <description><![CDATA[<p>【大学里有两种人，一种人占了大多数，他们“只有两件值得关心的事：一是把朋友交好，以后有结婚的对象，一是把功课读好，将来有满意的出路。”而另一种人极少极少，他们拥有“对社会的关心，对是非的判断能力，择善固执的勇气”。】 【我们的大学生天真、单纯、安分、听话。可是，如果“闹事”也可以解释为“以行动来改变现状”的话，我们这不会闹事的一代就值得令人忧虑了。四年一过，他就成为社会中坚——一个不懂得关心社会，不会判别是非，不敢行动的社会中坚！】</p><p>今年5月27日的《纽约客》杂志有这样一篇文章： 我的母亲生在柏林，侥幸逃过犹太人的大屠杀。今年母亲节，我请她去看场电影。这部影片非常卖座，故事好像与非洲的黑人有关。排队买票的行列很长。有一个年轻白人在行列间来往发散传单，劝大家不要买票，因为这部片子是南非制作的。排队的人大概都想的和我一样：“看不看由我自己决定，不用你来告诉我。”所以没人理他。 入场之后，灯黑了电影正要开始，前座的两个年轻女孩突然站起来面对观众，大声地演讲，解释这部影片如何地蔑视南非黑人的惨境，希望大家抵制。 观众中嘘声四起，有人不耐烦地大叫：“这里是美国；你要抗议到外面去！”也有生气的声音喊着：“我们付了五块钱电影票，让我们自己决定爱看不看！”偶尔有 个微弱的声音说：“听听她们说什么也好！”但是群众的喊声愈来愈大：“出去！出去！出去！” 坐在我身边的母亲显得很难过，她转身对我说：“这两个年轻女孩竟然愿意花十块钱买票进入一个人人喊打的地方来——或许她们真有点道理也说不定。” 在大家的鼓掌声中，戏院的工作人员很粗暴地把那两个女生架走了。灯又黑下来，但是没几分钟，一个年轻人，带着浓厚的英国腔，站起来说：“这是 一部充满种族歧视的影片——”愤怒的观众打断了他的话，有人在叫警察，但这个青年毫无惧色，继续大声说：“你们不让我把话说完，我是不会走的！”群众喊着：“滚蛋！滚蛋！”好不客易，来了两个警察，笑容满面地把那家伙给请了出去。 观众情绪还没有完全稳定下来，一个廿来岁、一脸胡子的小伙子在后排突然站了起来，说：“不不，我跟他们不是一道的；我跟你们一样买了票纯粹来 看戏的。我只是想到，或许对于这样一个影响千万人一生的问题，我们应该有个坚定的道德立场，而不只是追求消遣而已。如果五十年前的人也像刚刚这几个人这样 对被迫害的犹太人执着的话，我的祖父也许可以活到今天，不至于死在德国的煤气房里。”然后我就听到一个非常熟悉沙哑的声音突然响起：“他说的一点不错；你 可别想叫我闭嘴！”我发觉我六十四岁的老母亲站了起来，面对着整个戏院；她全身在颤抖。 这一则不起眼的小故事可以招引出许多值得争议的问题来。譬如说，这几个为道德感所驱使的年轻人有没有权利阻止别人看这部“种族歧视”的电影？ 如果我也在戏院里，我会是愤怒的群众之一，叫他们“滚蛋”主要的原因是，他们没有权利主宰我的思想——这个电影究竟如何要由我自己看过了再作决定。其次， 如果这一撮以“道德感”为理由的小团体能打断我的电影，那么，一个宗教团体、政治党派、商业集团等等，都可以肆意地来强迫推销它的理想，那个人还有什么自由自主可言？ 南非的是非善恶也是个棘手的问题。它的种族隔离政策现在是千夫所指，万人唾弃。南非的白人简直是廿世纪的污点。事情的另外一面却是：南非若由黑人自决自主，恐怕歧视与屠杀会比现况更为剧烈——看看乌干达！看看整个非洲大陆！ 但是《纽约客》这篇短文令我沉思许久的，却是这几个年轻抗议分子的行为。他们不算少数；哥伦比亚大学在南非有金钱的投资，哥大的学生也曾经热烈地示威过，反对学校当局“善恶不分”的和稀泥作风。而在戏院里“捣乱”的这些年轻人，事实上是一次一次地花五块钱买票——对学生而言，五块钱不是个小数目；进到戏院去让群众嘘骂，然后一次一次地被踢出来。这些人中，当然难免会有少数是为了幼稚的英雄主义或纯粹嬉闹，但大部分的，是为了一个道德立场，择善固执的理想。在一个人决定到戏院去“闹事”之前，他必须先具有三个条件。第一，他关心这个世界；因为关心，所以才会去注意南非黑人的困境。第二，他能作价值判断。对南非种族问题的报导纷纭不一，他得自己决定站在黑白那一边。第三，他有充分的道德勇气，充分到促使他付诸行动的地步。于是，他走到戏院去买票；五块钱，他很可以拿去溜冰或吃掉。 我们的年轻人呢？或者，缩小一点范围，我们的大学生呢？有多少人具备这三个品质？ 就我有限的观察，非常、非常的少。以对社会的关心而言，我们的学生在大学的四面围墙里自给自足地活着，不常把头伸出来。几个月前，当十四位省议员集体辞职时，我曾经对几百位学生作过测验，要他们写下议员辞职的原因，结果正如预料，有少数给了支离破碎而模糊的答案，显然是浏览报纸后的残余印象。 百分之八十却很率直地回答：“不知道！” 为什么不知道？当然是因为缺乏兴趣，不关心。坊间杂志选出来的大学校园“美女”，被人问到社会问题时，娇滴滴地说：“好可怕哟！”吐吐舌头。这样“可爱” 又“纯洁”的大学女生为数不少，而且讨人喜欢。我们的学生不仅只对台湾本身的社会、政治问题印象模糊，对台湾以外的国际情况就更陌生了。伊索匹亚的饥荒、 乌干达的政变、南美的游击战、天主教廷对堕胎与离婚的立场、菲律宾的军队暴行等等，都不存在，都没有意义。没有关心，自然没有做价值判断的需要。根本不知道南非有严重的种族问题。当然就不必去思索谁是谁非，因为无从思索起。没有关心，也就无所谓道德勇气和道德行动。非洲的幼儿可以死光，南美的军队可以强暴妇女，因为事不关己。海山的煤矿可以一崩再崩，桃园的古迹可以拆了又拆，内湖的垃圾山可以烧了再烧，事不关己。大学四年之中，只有两件值得关心的事：一是把朋友交好，以后有结婚的对象，一是把功课读好，将来有满意的出路。对社会的关心，对是非的判断能力，择善固执的勇气，都不在大学的围墙以内。 换句话说，我们的年轻人天真、单纯、听话；他们绝对不会到戏院里去“闹事”。 为什么大学生的关心面那样狭窄？主要原因之一是，他的环境不鼓励，甚至于试图阻碍，他对书本以外的兴趣。大概很少有父母没说过这句话：“你只要把书读好，其他什么都不要管！”大学以前这样说，为了应付联考。进了大学之后这样说，为了应付留考、托福、高考、研究所人考等。“只要把书读好，其他什么都不要管” 这个金玉良言是应现代科举制度而产生的。读书的目的在求技能，用来敲开一层一层考试的门。研读哲学、历史、文学、经济等等，都不是为了增加人生的智慧与了解，而是为了取得谋生的技术。因为这种技术与人生无关，所以可以“什么都不要管”。可是这个金玉良言实在是经不起考验的。在“其他什么都不要管”的前提下，书，根本就不可能读得好。譬如读经济，一个学生可以用课本里的各种定义与学理来解释“通货膨胀”，可是要他分析为什么公务员的薪水要加百分之八他却目 瞪口呆，我们能说他书读好了吗？譬如读文学，他可以熟读欧威尔的《一九八四》，洋洋洒洒地写篇论文讨论制度与个人的关系，但是要他对江南案件提出看法，他却一片空白，我们能说他把书读通了吗？这个大千世界可以说是各个学科的实验室。学生在黑字白纸之间所学到的理论与例证，都还是抽象模糊的，只有在把知识带到人生的实验室里去观照验证之后，知识才能落实。要我们的学生封闭在大学的围墙里“其他什么都不要管”，等于是把学问与人生割离，也等于要学游泳的人在岸上靠图解学游泳，却不沾水，或学解剖的人在暗室里看幻灯片学解剖，却不动刀子。 我们的学生不会“闹事”，因为“闹事”的人要先有自己的主张——不是报纸社论，不是老师的看法，同学的意见，而是自己的主张。对我们单纯、天真的学生而言，独立作价值判断却是件非常困难的事。为什么？高三那年，开始上三民主义。有个沉闷的下午，我在课本中看到一句话：“三民主义是最适合中国人的主义。” 就这么一句斩钉截铁的结论。我以为自己漏掉了编者解释引证的部分，把课本前前后后翻过，却找不到任何阐释。十七岁的我坐在书前，感觉到深深的挫折：要达到这样一个结论，课本编者应该一步一步来，先解释中国人是怎么样的一个民族，然后说明其他主义如何的不适用于中国社会，最后才能逻辑地演绎出“三民主义是最适合中国人的主义”这个结论。可是编者显然觉得这些辩证的过程毫无必要。 第二天，在课堂上我请求老师解释“为什么”。老师很惊讶地望了我一眼，好脾气地一笑，回答：“课本这么写，你背起来就是。联考不会问你为什么。” 在我早期的求知过程中，这个小小的经验是个很大的挫折。基本上，课本编者与授课老师并不认为学生有自己作判断、下结论的能力，所以才会有这种“你别问为什么，记住我的答案就行”的态度。他们因此所剥夺于我的，是我求知的权利与独立判断的能力。现在的教育方式和过去没有太大的改变，我们的教育者仍旧习惯于供给“结论”，仍旧不习惯供给学生“方法”，让他们自己去找结论。最能够反映这种现象的莫过于作文题目了。多少年来，任何考试中，学生面对的总是什么“学问为济世之本”、“忠勇为爱国之本”、“一分耕耘、一分收获”、“满招损、谦受益”之类的金玉良言。所谓金玉良言说穿了，也就是死了的人交代下来的“结论 ”。出这种约定俗成的题目可以塑造学生的思想，使他更紧密地成为传统的一分子，有它教育的意义。但是这种思想传递根本上就不容许独创，不容许学生下自己的结论。如果教育者真正的兴趣不在于学生对传统的妥协与认同，而在于他独立判断的能力，那么同样的题目就应该以疑问的方式出现：“一分耕耘确能导致一分收获吗？你是否同意学问为济世之本？”或者以挑战的方式：“试辩论‘忠勇为爱国之本’一说。” 只有这样不“既定结论”的思想训练才能真正刺激学生睁着自己的眼睛去观察身边纷扰复杂的世界，用自己的头脑去理出头绪来。当我们的教育者习惯性地把作好的结论抛下，学生也就懒惰地把结论照章收下；他不需要辛辛苦苦地去思索、摸索。 在我们的环境里，一个能关心、能判断的学生，却也不太可能有任何道德行动。一般教育者对学生行动采取压抑与抵制的态度，目的在求校园的稳定。 有一个专科学生被同学指控偷窃，教官在原告的带领之下也确实在该生书包中找到赃物，但是在没有听过被告辩解之前，就令这名学生退学。几个大胆的同学出来主持正义，要求学校给被告一个自我辩护的机会。事情结果如何不论，学校当局对这些挺身而出的学生却有个斩钉截铁的态度：“去读你的书，不要多管闲事。谁闹 事，谁就记过。”奇怪，为什么我们的公民伦理课一再地教导学生要见义勇为，要当仁不让，要择善固执，学生一旦实践了这些美丽的道德理想，我们却恐慌地去压制他？学生对学校措施有所不满而投书、开会、抗议的时候，不正是最好的公民教育机会，帮助学生学习如何去理性地、公平而民主地解决问题，为什么我们反而以记过处分作为……的手段？为了表面的安静稳定而扼杀年轻人的正义感，代价是否太高了一点？敢于表达意见、敢于行动的学生在一次两次的申诫记过之后，当然也学会了保护自己；他发觉，这个社会根本不希望他有道德勇气或正义感。 我们的大学生是不会“闹事”的一群。在考试、舞会、郊游的世界中，没有什么值得“闹事”的题材。在是非善恶都已经由父母师长孔子孟子下了结论的世界中，没有什么难题值得重新省思、费心判断。在明哲保身、少做少错的环境中，更没有什么“闹事”的余地。我们的大学生天真、单纯、安分、听话。可是，如果“闹事”也可以解释为“以行动来改变现状”的话，我们这不会闹事的一代就值得令人忧虑了。四年一过，他就成为社会中坚——一个不懂得关心社会，不会判别是非，不敢行动的社会中坚！公车应不应涨价？不清楚。路边水管爆破了，不是我的事。公营机构亏了多少纳税人的钱？不知道。核电厂会不会贻害万年？不知道。上司舞弊应不应告发？不知道。台湾往哪里去？不知道，不知道，不知道……一个满足现状的民族不可能进步，但是要对现状不满，一个人必须先有所关心，用心观察，观察之后作判断，判断之后付诸行动。关心可以是感性的，只是对于生于斯长于斯的土地的一份爱，但是空有感情无济于事，它必须有冷静的理性的支持——判断与行动需要坚强的理性。台湾的现状不能令人满意，但是已经有许多人在关心、判断之后开始了行动。最好的例子是消费者基金会的推动者，他们已经“闹”了不少事。台湾需要闹的事情还很多很多。以妇女问题来说，我们现有的妇女组织还停留在献花、慰问、穿漂亮的衣服开慈善晚会与孤儿拥抱的阶段。在同样的社会版里，我们读到七岁的男孩被母亲活活烫死、十岁的女孩被卖到妓女户、十三岁的女儿被养父强暴而怀孕、三十岁的妻子被丈夫打断肋骨——我们天真可爱的校园美女觉得将来没事可关心、可“闹”吗？ 又是一个学期的开始，让我们想想从哪里做起吧！</p><p>&#160;</p><p>相关文章推荐： 以前与现在 有人味的语言（转载）</p>]]></description> <content:encoded><![CDATA[<p>【大学里有两种人，一种人占了大多数，他们“只有两件值得关心的事：一是把朋友交好，以后有结婚的对象，一是把功课读好，将来有满意的出路。”而另一种人极少极少，他们拥有“对社会的关心，对是非的判断能力，择善固执的勇气”。】<br
/> 【我们的大学生天真、单纯、安分、听话。可是，如果“闹事”也可以解释为“以行动来改变现状”的话，我们这不会闹事的一代就值得令人忧虑了。四年一过，他就成为社会中坚——一个不懂得关心社会，不会判别是非，不敢行动的社会中坚！】</p><p>今年5月27日的《纽约客》杂志有这样一篇文章：<br
/> 我的母亲生在柏林，侥幸逃过犹太人的大屠杀。今年母亲节，我请她去看场电影。这部影片非常卖座，故事好像与非洲的黑人有关。排队买票的行列很长。有一个年轻白人在行列间来往发散传单，劝大家不要买票，因为这部片子是南非制作的。排队的人大概都想的和我一样：“看不看由我自己决定，不用你来告诉我。”所以没人理他。<br
/> 入场之后，灯黑了电影正要开始，前座的两个年轻女孩突然站起来面对观众，大声地演讲，解释这部影片如何地蔑视南非黑人的惨境，希望大家抵制。 观众中嘘声四起，有人不耐烦地大叫：“这里是美国；你要抗议到外面去！”也有生气的声音喊着：“我们付了五块钱电影票，让我们自己决定爱看不看！”偶尔有 个微弱的声音说：“听听她们说什么也好！”但是群众的喊声愈来愈大：“出去！出去！出去！”<br
/> 坐在我身边的母亲显得很难过，她转身对我说：“这两个年轻女孩竟然愿意花十块钱买票进入一个人人喊打的地方来——或许她们真有点道理也说不定。”<br
/> 在大家的鼓掌声中，戏院的工作人员很粗暴地把那两个女生架走了。灯又黑下来，但是没几分钟，一个年轻人，带着浓厚的英国腔，站起来说：“这是 一部充满种族歧视的影片——”愤怒的观众打断了他的话，有人在叫警察，但这个青年毫无惧色，继续大声说：“你们不让我把话说完，我是不会走的！”群众喊着：“滚蛋！滚蛋！”好不客易，来了两个警察，笑容满面地把那家伙给请了出去。<br
/> 观众情绪还没有完全稳定下来，一个廿来岁、一脸胡子的小伙子在后排突然站了起来，说：“不不，我跟他们不是一道的；我跟你们一样买了票纯粹来 看戏的。我只是想到，或许对于这样一个影响千万人一生的问题，我们应该有个坚定的道德立场，而不只是追求消遣而已。如果五十年前的人也像刚刚这几个人这样 对被迫害的犹太人执着的话，我的祖父也许可以活到今天，不至于死在德国的煤气房里。”然后我就听到一个非常熟悉沙哑的声音突然响起：“他说的一点不错；你 可别想叫我闭嘴！”我发觉我六十四岁的老母亲站了起来，面对着整个戏院；她全身在颤抖。<br
/> 这一则不起眼的小故事可以招引出许多值得争议的问题来。譬如说，这几个为道德感所驱使的年轻人有没有权利阻止别人看这部“种族歧视”的电影？ 如果我也在戏院里，我会是愤怒的群众之一，叫他们“滚蛋”主要的原因是，他们没有权利主宰我的思想——这个电影究竟如何要由我自己看过了再作决定。其次， 如果这一撮以“道德感”为理由的小团体能打断我的电影，那么，一个宗教团体、政治党派、商业集团等等，都可以肆意地来强迫推销它的理想，那个人还有什么自由自主可言？<br
/> 南非的是非善恶也是个棘手的问题。它的种族隔离政策现在是千夫所指，万人唾弃。南非的白人简直是廿世纪的污点。事情的另外一面却是：南非若由黑人自决自主，恐怕歧视与屠杀会比现况更为剧烈——看看乌干达！看看整个非洲大陆！<br
/> 但是《纽约客》这篇短文令我沉思许久的，却是这几个年轻抗议分子的行为。他们不算少数；哥伦比亚大学在南非有金钱的投资，哥大的学生也曾经热烈地示威过，反对学校当局“善恶不分”的和稀泥作风。而在戏院里“捣乱”的这些年轻人，事实上是一次一次地花五块钱买票——对学生而言，五块钱不是个小数目；进到戏院去让群众嘘骂，然后一次一次地被踢出来。这些人中，当然难免会有少数是为了幼稚的英雄主义或纯粹嬉闹，但大部分的，是为了一个道德立场，择善固执的理想。在一个人决定到戏院去“闹事”之前，他必须先具有三个条件。第一，他关心这个世界；因为关心，所以才会去注意南非黑人的困境。第二，他能作价值判断。对南非种族问题的报导纷纭不一，他得自己决定站在黑白那一边。第三，他有充分的道德勇气，充分到促使他付诸行动的地步。于是，他走到戏院去买票；五块钱，他很可以拿去溜冰或吃掉。<br
/> 我们的年轻人呢？或者，缩小一点范围，我们的大学生呢？有多少人具备这三个品质？<br
/> 就我有限的观察，非常、非常的少。以对社会的关心而言，我们的学生在大学的四面围墙里自给自足地活着，不常把头伸出来。几个月前，当十四位省议员集体辞职时，我曾经对几百位学生作过测验，要他们写下议员辞职的原因，结果正如预料，有少数给了支离破碎而模糊的答案，显然是浏览报纸后的残余印象。 百分之八十却很率直地回答：“不知道！” 为什么不知道？当然是因为缺乏兴趣，不关心。坊间杂志选出来的大学校园“美女”，被人问到社会问题时，娇滴滴地说：“好可怕哟！”吐吐舌头。这样“可爱” 又“纯洁”的大学女生为数不少，而且讨人喜欢。我们的学生不仅只对台湾本身的社会、政治问题印象模糊，对台湾以外的国际情况就更陌生了。伊索匹亚的饥荒、 乌干达的政变、南美的游击战、天主教廷对堕胎与离婚的立场、菲律宾的军队暴行等等，都不存在，都没有意义。没有关心，自然没有做价值判断的需要。根本不知道南非有严重的种族问题。当然就不必去思索谁是谁非，因为无从思索起。没有关心，也就无所谓道德勇气和道德行动。非洲的幼儿可以死光，南美的军队可以强暴妇女，因为事不关己。海山的煤矿可以一崩再崩，桃园的古迹可以拆了又拆，内湖的垃圾山可以烧了再烧，事不关己。大学四年之中，只有两件值得关心的事：一是把朋友交好，以后有结婚的对象，一是把功课读好，将来有满意的出路。对社会的关心，对是非的判断能力，择善固执的勇气，都不在大学的围墙以内。 换句话说，我们的年轻人天真、单纯、听话；他们绝对不会到戏院里去“闹事”。<br
/> 为什么大学生的关心面那样狭窄？主要原因之一是，他的环境不鼓励，甚至于试图阻碍，他对书本以外的兴趣。大概很少有父母没说过这句话：“你只要把书读好，其他什么都不要管！”大学以前这样说，为了应付联考。进了大学之后这样说，为了应付留考、托福、高考、研究所人考等。“只要把书读好，其他什么都不要管” 这个金玉良言是应现代科举制度而产生的。读书的目的在求技能，用来敲开一层一层考试的门。研读哲学、历史、文学、经济等等，都不是为了增加人生的智慧与了解，而是为了取得谋生的技术。因为这种技术与人生无关，所以可以“什么都不要管”。可是这个金玉良言实在是经不起考验的。在“其他什么都不要管”的前提下，书，根本就不可能读得好。譬如读经济，一个学生可以用课本里的各种定义与学理来解释“通货膨胀”，可是要他分析为什么公务员的薪水要加百分之八他却目 瞪口呆，我们能说他书读好了吗？譬如读文学，他可以熟读欧威尔的《一九八四》，洋洋洒洒地写篇论文讨论制度与个人的关系，但是要他对江南案件提出看法，他却一片空白，我们能说他把书读通了吗？这个大千世界可以说是各个学科的实验室。学生在黑字白纸之间所学到的理论与例证，都还是抽象模糊的，只有在把知识带到人生的实验室里去观照验证之后，知识才能落实。要我们的学生封闭在大学的围墙里“其他什么都不要管”，等于是把学问与人生割离，也等于要学游泳的人在岸上靠图解学游泳，却不沾水，或学解剖的人在暗室里看幻灯片学解剖，却不动刀子。<br
/> 我们的学生不会“闹事”，因为“闹事”的人要先有自己的主张——不是报纸社论，不是老师的看法，同学的意见，而是自己的主张。对我们单纯、天真的学生而言，独立作价值判断却是件非常困难的事。为什么？高三那年，开始上三民主义。有个沉闷的下午，我在课本中看到一句话：“三民主义是最适合中国人的主义。” 就这么一句斩钉截铁的结论。我以为自己漏掉了编者解释引证的部分，把课本前前后后翻过，却找不到任何阐释。十七岁的我坐在书前，感觉到深深的挫折：要达到这样一个结论，课本编者应该一步一步来，先解释中国人是怎么样的一个民族，然后说明其他主义如何的不适用于中国社会，最后才能逻辑地演绎出“三民主义是最适合中国人的主义”这个结论。可是编者显然觉得这些辩证的过程毫无必要。 第二天，在课堂上我请求老师解释“为什么”。老师很惊讶地望了我一眼，好脾气地一笑，回答：“课本这么写，你背起来就是。联考不会问你为什么。” 在我早期的求知过程中，这个小小的经验是个很大的挫折。基本上，课本编者与授课老师并不认为学生有自己作判断、下结论的能力，所以才会有这种“你别问为什么，记住我的答案就行”的态度。他们因此所剥夺于我的，是我求知的权利与独立判断的能力。现在的教育方式和过去没有太大的改变，我们的教育者仍旧习惯于供给“结论”，仍旧不习惯供给学生“方法”，让他们自己去找结论。最能够反映这种现象的莫过于作文题目了。多少年来，任何考试中，学生面对的总是什么“学问为济世之本”、“忠勇为爱国之本”、“一分耕耘、一分收获”、“满招损、谦受益”之类的金玉良言。所谓金玉良言说穿了，也就是死了的人交代下来的“结论 ”。出这种约定俗成的题目可以塑造学生的思想，使他更紧密地成为传统的一分子，有它教育的意义。但是这种思想传递根本上就不容许独创，不容许学生下自己的结论。如果教育者真正的兴趣不在于学生对传统的妥协与认同，而在于他独立判断的能力，那么同样的题目就应该以疑问的方式出现：“一分耕耘确能导致一分收获吗？你是否同意学问为济世之本？”或者以挑战的方式：“试辩论‘忠勇为爱国之本’一说。” 只有这样不“既定结论”的思想训练才能真正刺激学生睁着自己的眼睛去观察身边纷扰复杂的世界，用自己的头脑去理出头绪来。当我们的教育者习惯性地把作好的结论抛下，学生也就懒惰地把结论照章收下；他不需要辛辛苦苦地去思索、摸索。<br
/> 在我们的环境里，一个能关心、能判断的学生，却也不太可能有任何道德行动。一般教育者对学生行动采取压抑与抵制的态度，目的在求校园的稳定。 有一个专科学生被同学指控偷窃，教官在原告的带领之下也确实在该生书包中找到赃物，但是在没有听过被告辩解之前，就令这名学生退学。几个大胆的同学出来主持正义，要求学校给被告一个自我辩护的机会。事情结果如何不论，学校当局对这些挺身而出的学生却有个斩钉截铁的态度：“去读你的书，不要多管闲事。谁闹 事，谁就记过。”奇怪，为什么我们的公民伦理课一再地教导学生要见义勇为，要当仁不让，要择善固执，学生一旦实践了这些美丽的道德理想，我们却恐慌地去压制他？学生对学校措施有所不满而投书、开会、抗议的时候，不正是最好的公民教育机会，帮助学生学习如何去理性地、公平而民主地解决问题，为什么我们反而以记过处分作为……的手段？为了表面的安静稳定而扼杀年轻人的正义感，代价是否太高了一点？敢于表达意见、敢于行动的学生在一次两次的申诫记过之后，当然也学会了保护自己；他发觉，这个社会根本不希望他有道德勇气或正义感。<br
/> 我们的大学生是不会“闹事”的一群。在考试、舞会、郊游的世界中，没有什么值得“闹事”的题材。在是非善恶都已经由父母师长孔子孟子下了结论的世界中，没有什么难题值得重新省思、费心判断。在明哲保身、少做少错的环境中，更没有什么“闹事”的余地。我们的大学生天真、单纯、安分、听话。可是，如果“闹事”也可以解释为“以行动来改变现状”的话，我们这不会闹事的一代就值得令人忧虑了。四年一过，他就成为社会中坚——一个不懂得关心社会，不会判别是非，不敢行动的社会中坚！公车应不应涨价？不清楚。路边水管爆破了，不是我的事。公营机构亏了多少纳税人的钱？不知道。核电厂会不会贻害万年？不知道。上司舞弊应不应告发？不知道。台湾往哪里去？不知道，不知道，不知道……一个满足现状的民族不可能进步，但是要对现状不满，一个人必须先有所关心，用心观察，观察之后作判断，判断之后付诸行动。关心可以是感性的，只是对于生于斯长于斯的土地的一份爱，但是空有感情无济于事，它必须有冷静的理性的支持——判断与行动需要坚强的理性。台湾的现状不能令人满意，但是已经有许多人在关心、判断之后开始了行动。最好的例子是消费者基金会的推动者，他们已经“闹”了不少事。台湾需要闹的事情还很多很多。以妇女问题来说，我们现有的妇女组织还停留在献花、慰问、穿漂亮的衣服开慈善晚会与孤儿拥抱的阶段。在同样的社会版里，我们读到七岁的男孩被母亲活活烫死、十岁的女孩被卖到妓女户、十三岁的女儿被养父强暴而怀孕、三十岁的妻子被丈夫打断肋骨——我们天真可爱的校园美女觉得将来没事可关心、可“闹”吗？ 又是一个学期的开始，让我们想想从哪里做起吧！</p><p>&nbsp;</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/past-and-present/' rel='bookmark' title='以前与现在'>以前与现在</a></li><li><a
href='http://ceeji.net/blog/life-chinese/' rel='bookmark' title='有人味的语言（转载）'>有人味的语言（转载）</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e9%be%99%e5%ba%94%e5%8f%b0%ef%bc%9a%e5%86%99%e7%bb%99%e4%b8%8d%e4%bc%9a%e9%97%b9%e4%ba%8b%e7%9a%84%e5%a4%a7%e5%ad%a6%e7%94%9f%ef%bc%88%e8%bd%ac%e8%bd%bd%ef%bc%89/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>在C++中对值传递的形参加 const 修饰符无意义吗？</title><link>http://ceeji.net/blog/add-const-no-sense/</link> <comments>http://ceeji.net/blog/add-const-no-sense/#comments</comments> <pubDate>Wed, 09 Mar 2011 13:12:57 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[C++语言学习]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1686</guid> <description><![CDATA[<p>由于在 C++ 中，const 是一个经常被用到的修饰符和关键字，有时候人们会想也不想就对其进行了滥用。刚才我看这样一条语句：</p><p>void do_work (const int x);</p><p>既然 x 是传值的形参，所以对其的修改本来就不会影响原来的值，那么为什么还要加上 const 呢？</p><p>其实，加了 const 的主要后果是：无法修改被复制后的 x 的值。比如，本来你可以这样：</p><p>x = 5;</p><p>虽然这条语句并不会影响调用方传递的实参，但是在函数内部，这个 x 是可以当一个临时变量来处理的。</p><p>如果加了 const ，这条语句将产生编译错误：表达式必须是可修改的左值。</p><p>由上可见，在这个地方，是否添加 const 并非没有意义，但是在多数情况下意义不大。加上这个 const 对健壮性的贡献并不大，但是大部分情况下，直接使用形参作为函数的内部变量也并不合适。或许，这也是设计者为 C++ 标准提供这个语法的目的之一吧。</p><p>相关文章推荐： C++笔记：理解 const 指针和指向 const 对象的指针 C++笔记：类中的this指针</p>]]></description> <content:encoded><![CDATA[<p>由于在 C++ 中，const 是一个经常被用到的修饰符和关键字，有时候人们会想也不想就对其进行了滥用。刚才我看这样一条语句：</p><p>void do_work (const int x);</p><p>既然 x 是传值的形参，所以对其的修改本来就不会影响原来的值，那么为什么还要加上 const 呢？</p><p>其实，加了 const 的主要后果是：无法修改被复制后的 x 的值。比如，本来你可以这样：</p><p>x = 5;</p><p>虽然这条语句并不会影响调用方传递的实参，但是在函数内部，这个 x 是可以当一个临时变量来处理的。</p><p>如果加了 const ，这条语句将产生编译错误：表达式必须是可修改的左值。</p><p>由上可见，在这个地方，是否添加 const 并非没有意义，但是在多数情况下意义不大。加上这个 const 对健壮性的贡献并不大，但是大部分情况下，直接使用形参作为函数的内部变量也并不合适。或许，这也是设计者为 C++ 标准提供这个语法的目的之一吧。</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/cpp-learn-point-to-const-vs-const-pointer/' rel='bookmark' title='C++笔记：理解 const 指针和指向 const 对象的指针'>C++笔记：理解 const 指针和指向 const 对象的指针</a></li><li><a
href='http://ceeji.net/blog/cpp-learn-this-pointer/' rel='bookmark' title='C++笔记：类中的this指针'>C++笔记：类中的this指针</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/add-const-no-sense/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>POJ 1611 The Suspects</title><link>http://ceeji.net/blog/poj-1611/</link> <comments>http://ceeji.net/blog/poj-1611/#comments</comments> <pubDate>Wed, 09 Mar 2011 07:16:30 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[信息学竞赛]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1681</guid> <description><![CDATA[<p>一道非常简单的并查集题目，只需要把每组人均合并到一起。最后统计和 0 是一个父亲的数量即可，20 分钟 Accepted.</p> ?View Code CPP1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 [...]]]></description> <content:encoded><![CDATA[<p>一道非常简单的并查集题目，只需要把每组人均合并到一起。最后统计和 0 是一个父亲的数量即可，20 分钟 Accepted.</p><div
class="wp_codebox_msgheader"><span
class="right"><sup><a
href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span
style="color: #99cc00">?</span></a></sup></span><span
class="left"><a
href="javascript:;" onclick="javascript:showCodeTxt('p1681code16'); return false;">View Code</a> CPP</span><div
class="codebox_clear"></div></div><div
class="wp_codebox"><table><tr
id="p168116"><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
</pre></td><td
class="code" id="p1681code16"><pre class="cpp" style="font-family:monospace;"><span style="color: #ff0000; font-style: italic;">/* POJ 1611
 * By Ceeji
 * Union
 */</span>
&nbsp;
<span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #339900;">#include &lt;cstring&gt;</span>
&nbsp;
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #339900;">#define MAX_N 30000</span>
&nbsp;
<span style="color: #0000ff;">int</span> m, n<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">int</span> father<span style="color: #008000;">&#91;</span>MAX_N<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">int</span> get_father<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> p<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>father<span style="color: #008000;">&#91;</span>p<span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span> <span style="color: #000040;">||</span> father<span style="color: #008000;">&#91;</span>p<span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> p<span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		father<span style="color: #008000;">&#91;</span>p<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> p<span style="color: #008080;">;</span>
		<span style="color: #0000ff;">return</span> p<span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	father<span style="color: #008000;">&#91;</span>p<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> get_father<span style="color: #008000;">&#40;</span>father<span style="color: #008000;">&#91;</span>p<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">return</span> father<span style="color: #008000;">&#91;</span>p<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> set_union <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> x, <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> y<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">int</span> fx <span style="color: #000080;">=</span> get_father <span style="color: #008000;">&#40;</span>x<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> fy <span style="color: #000080;">=</span> get_father <span style="color: #008000;">&#40;</span>y<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	father<span style="color: #008000;">&#91;</span>fx<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> fy<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> do_work <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> MAX_N<span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
		father<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> j <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> j <span style="color: #000080;">&lt;</span> m<span style="color: #008080;">;</span> <span style="color: #000040;">++</span>j<span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000ff;">int</span> gn, tmp, first<span style="color: #008080;">;</span>
		<span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> gn <span style="color: #000080;">&gt;&gt;</span> first<span style="color: #008080;">;</span>
		<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> gn <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
		<span style="color: #008000;">&#123;</span>
			<span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> tmp<span style="color: #008080;">;</span>
			<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>get_father<span style="color: #008000;">&#40;</span>tmp<span style="color: #008000;">&#41;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> get_father<span style="color: #008000;">&#40;</span>first<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
				set_union <span style="color: #008000;">&#40;</span>tmp, first<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		<span style="color: #008000;">&#125;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">int</span> f <span style="color: #000080;">=</span> get_father<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> num <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> n<span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>get_father<span style="color: #008000;">&#40;</span>i<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> f<span style="color: #008000;">&#41;</span>
			<span style="color: #000040;">++</span>num<span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> num <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">true</span><span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> n <span style="color: #000080;">&gt;&gt;</span> m<span style="color: #008080;">;</span>
		<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>m <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span> <span style="color: #000040;">&amp;&amp;</span> n <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>
			<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
		do_work <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/poj-1308/' rel='bookmark' title='POJ 1308 Is It A Tree 题解'>POJ 1308 Is It A Tree 题解</a></li><li><a
href='http://ceeji.net/blog/poj-1703/' rel='bookmark' title='POJ 1703 Find them, Catch them'>POJ 1703 Find them, Catch them</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/poj-1611/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>赛马：那些流淌在我血液中的乐曲</title><link>http://ceeji.net/blog/%e8%b5%9b%e9%a9%ac%ef%bc%9a%e9%82%a3%e4%ba%9b%e6%b5%81%e6%b7%8c%e5%9c%a8%e6%88%91%e8%a1%80%e6%b6%b2%e4%b8%ad%e7%9a%84%e4%b9%90%e6%9b%b2/</link> <comments>http://ceeji.net/blog/%e8%b5%9b%e9%a9%ac%ef%bc%9a%e9%82%a3%e4%ba%9b%e6%b5%81%e6%b7%8c%e5%9c%a8%e6%88%91%e8%a1%80%e6%b6%b2%e4%b8%ad%e7%9a%84%e4%b9%90%e6%9b%b2/#comments</comments> <pubDate>Wed, 09 Mar 2011 06:41:35 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[文学与情感]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1672</guid> <description><![CDATA[<p>1、二胡曲：赛马 下载音频文件 (sound%2012.mp3)</p><p>可以说，赛马贯穿了我的整个音乐生涯。在小时候学习电子琴的时候，赛马是我最为拿手的曲目之一。后来，我参加全国冰心艺术器乐大赛，这首曲目的单人双琴表演获得了冰心艺术特别奖。在初中的一次由口语老师举办的圣诞晚会上，我受邀再次表演了这首曲子，这时候距离我开始接触这个曲目估计有六年了吧。 后来学习钢琴，这首曲目并不适合钢琴演奏，但是我还是时不常地喜欢在钢琴上弹一下。高三时学习竹笛，虽然吹得不好，但是我也经常会吹一下这首曲目。 到了现在，赛马已经融入了我的灵魂，我也非常敬仰创作这首乐曲的大师。 我演奏的乐器并不是这首曲目原本的演奏乐器。这是一首二胡曲目，是根据中国北方少数民族蒙古族音乐创作而成。乐曲将蒙古风格的音阶和节奏同汉族音乐中常用的装饰音巧妙地结合使用，使乐曲即有欢快奔腾的场景，又有抒情般地歌唱景象。同时，拨奏和连奏的技巧运用，使乐曲显得更加生动活泼。</p><p>2、沙巴（的）女王 下载音频文件 (%E6%B2%99%E5%B7%B4%E5%A5%B3%E7%8E%8B.mp3)</p><p>这首乐曲是我小时候印象很深刻的乐曲之一，主要原因是风格比较迥异。时隔这么多年，还能回想起当初的感觉。</p><p>3、钢琴曲：水边的阿狄丽娜 下载音频文件 (2010030562148109.mp3)</p><p>第一次听到它是在理查德的一张音乐专辑上。当时看到屏幕上的高山、流水、清音，简直不能自己。现在也是我最喜欢弹奏的钢琴曲目。</p><p>4、钢琴曲：梦中的婚礼 下载音频文件 (4.mp3)</p><p>多么想和我的她拥有一场如梦一般的婚礼。</p><p>5、竹笛：姑苏行 下载音频文件 (%E5%A7%91%E8%8B%8F%E8%A1%8C.mp3)</p><p>江南，这一让人柔情似水的字眼；小桥、流水、人家。当站在那一叶扁舟之上，吹着姑苏行，欣赏苏州园林的美景，这是一种怎样的情怀？我最喜欢的竹笛曲目之一。</p><p>相关文章推荐： 无论怎样，去献给世界你最好的一切 让你觉得最伤悲的句子</p>]]></description> <content:encoded><![CDATA[<p><strong>1、二胡曲：赛马</strong><br
/> <a
href="http://www.bytoday.net/company/bqeh/sound%2012.mp3">下载音频文件 (sound%2012.mp3)</a></p><p>可以说，赛马贯穿了我的整个音乐生涯。在小时候学习电子琴的时候，赛马是我最为拿手的曲目之一。后来，我参加全国冰心艺术器乐大赛，这首曲目的单人双琴表演获得了冰心艺术特别奖。在初中的一次由口语老师举办的圣诞晚会上，我受邀再次表演了这首曲子，这时候距离我开始接触这个曲目估计有六年了吧。<br
/> 后来学习钢琴，这首曲目并不适合钢琴演奏，但是我还是时不常地喜欢在钢琴上弹一下。高三时学习竹笛，虽然吹得不好，但是我也经常会吹一下这首曲目。<br
/> 到了现在，赛马已经融入了我的灵魂，我也非常敬仰创作这首乐曲的大师。<br
/> 我演奏的乐器并不是这首曲目原本的演奏乐器。这是一首二胡曲目，是根据中国北方少数民族蒙古族音乐创作而成。乐曲将蒙古风格的音阶和节奏同汉族音乐中常用的装饰音巧妙地结合使用，使乐曲即有欢快奔腾的场景，又有抒情般地歌唱景象。同时，拨奏和连奏的技巧运用，使乐曲显得更加生动活泼。</p><p><strong>2、沙巴（的）女王</strong><br
/> <a
href="http://just-jazz.huapc.net/music/%E6%B2%99%E5%B7%B4%E5%A5%B3%E7%8E%8B.mp3">下载音频文件 (%E6%B2%99%E5%B7%B4%E5%A5%B3%E7%8E%8B.mp3)</a></p><p>这首乐曲是我小时候印象很深刻的乐曲之一，主要原因是风格比较迥异。时隔这么多年，还能回想起当初的感觉。</p><p><strong>3、钢琴曲：水边的阿狄丽娜</strong><br
/> <a
href="http://www.js-jiaju.com/upload/2010-3/2010030562148109.mp3">下载音频文件 (2010030562148109.mp3)</a></p><p>第一次听到它是在理查德的一张音乐专辑上。当时看到屏幕上的高山、流水、清音，简直不能自己。现在也是我最喜欢弹奏的钢琴曲目。</p><p><strong>4、钢琴曲：梦中的婚礼</strong><br
/> <a
href="http://www.cnkingmas.com/images/4.mp3">下载音频文件 (4.mp3)</a></p><p>多么想和我的她拥有一场如梦一般的婚礼。</p><p><strong>5、竹笛：姑苏行</strong><br
/> <a
href="http://www.rzyishu.com/%E5%A7%91%E8%8B%8F%E8%A1%8C.mp3">下载音频文件 (%E5%A7%91%E8%8B%8F%E8%A1%8C.mp3)</a></p><p>江南，这一让人柔情似水的字眼；小桥、流水、人家。当站在那一叶扁舟之上，吹着姑苏行，欣赏苏州园林的美景，这是一种怎样的情怀？我最喜欢的竹笛曲目之一。</p><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/%e6%97%a0%e8%ae%ba%e6%80%8e%e6%a0%b7%ef%bc%8c%e5%8e%bb%e7%8c%ae%e7%bb%99%e4%b8%96%e7%95%8c%e4%bd%a0%e6%9c%80%e5%a5%bd%e7%9a%84%e4%b8%80%e5%88%87/' rel='bookmark' title='无论怎样，去献给世界你最好的一切'>无论怎样，去献给世界你最好的一切</a></li><li><a
href='http://ceeji.net/blog/%e8%ae%a9%e4%bd%a0%e8%a7%89%e5%be%97%e6%9c%80%e4%bc%a4%e6%82%b2%e7%9a%84%e5%8f%a5%e5%ad%90/' rel='bookmark' title='让你觉得最伤悲的句子'>让你觉得最伤悲的句子</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/%e8%b5%9b%e9%a9%ac%ef%bc%9a%e9%82%a3%e4%ba%9b%e6%b5%81%e6%b7%8c%e5%9c%a8%e6%88%91%e8%a1%80%e6%b6%b2%e4%b8%ad%e7%9a%84%e4%b9%90%e6%9b%b2/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <enclosure
url="http://www.bytoday.net/company/bqeh/sound%2012.mp3" length="2506211" type="audio/mpeg" /> <enclosure
url="http://just-jazz.huapc.net/music/%E6%B2%99%E5%B7%B4%E5%A5%B3%E7%8E%8B.mp3" length="3380625" type="audio/mpeg" /> <enclosure
url="http://www.js-jiaju.com/upload/2010-3/2010030562148109.mp3" length="4988473" type="audio/mpeg" /> <enclosure
url="http://www.cnkingmas.com/images/4.mp3" length="2688509" type="audio/mpeg" /> <enclosure
url="http://www.rzyishu.com/%E5%A7%91%E8%8B%8F%E8%A1%8C.mp3" length="2567442" type="audio/mpeg" /> </item> <item><title>POJ 1308 Is It A Tree 题解</title><link>http://ceeji.net/blog/poj-1308/</link> <comments>http://ceeji.net/blog/poj-1308/#comments</comments> <pubDate>Tue, 08 Mar 2011 10:23:48 +0000</pubDate> <dc:creator>ceeji</dc:creator> <category><![CDATA[信息学竞赛]]></category> <guid
isPermaLink="false">http://ceeji.net/blog/?p=1669</guid> <description><![CDATA[<p>这道题是一道并查集的题目。和普通并查集相比，主要有几点需要注意： 1、注意空树的处理。 2、如果在合并的时候，这两个点已经在树中，说明路径重复，不是合法的树。</p> ?View Code CPP1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 [...]]]></description> <content:encoded><![CDATA[<p>这道题是一道并查集的题目。和普通并查集相比，主要有几点需要注意：<br
/> 1、注意空树的处理。<br
/> 2、如果在合并的时候，这两个点已经在树中，说明路径重复，不是合法的树。</p><div
class="wp_codebox_msgheader"><span
class="right"><sup><a
href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span
style="color: #99cc00">?</span></a></sup></span><span
class="left"><a
href="javascript:;" onclick="javascript:showCodeTxt('p1669code18'); return false;">View Code</a> CPP</span><div
class="codebox_clear"></div></div><div
class="wp_codebox"><table><tr
id="p166918"><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
</pre></td><td
class="code" id="p1669code18"><pre class="cpp" style="font-family:monospace;"><span style="color: #ff0000; font-style: italic;">/* POJ 1308
 * By Ceeji
 * http://poj.org/problem?id=1308
 *
 */</span>
&nbsp;
<span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #339900;">#include &lt;cstring&gt;</span>
&nbsp;
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> MAX_N <span style="color: #000080;">=</span> <span style="color: #0000dd;">200</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">int</span> father<span style="color: #008000;">&#91;</span>MAX_N<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">bool</span> has_point<span style="color: #008000;">&#91;</span>MAX_N<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> case_number <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">void</span> init_set <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000dd;">memset</span> <span style="color: #008000;">&#40;</span>father, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>father<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// 0 means that the father is itself.</span>
	<span style="color: #0000dd;">memset</span> <span style="color: #008000;">&#40;</span>has_point, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>has_point<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> get_father <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> i<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>father<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span> <span style="color: #000040;">||</span> father<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> i<span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		father<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> i<span style="color: #008080;">;</span>
		<span style="color: #0000ff;">return</span> i<span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">int</span> tmp <span style="color: #000080;">=</span> get_father<span style="color: #008000;">&#40;</span>father<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	father<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> tmp<span style="color: #008080;">;</span>
	<span style="color: #0000ff;">return</span> tmp<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #ff0000; font-style: italic;">/* union : point x to y */</span>
<span style="color: #0000ff;">void</span> set_union <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> x, <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> y<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">int</span> fx <span style="color: #000080;">=</span> get_father<span style="color: #008000;">&#40;</span>x<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> fy <span style="color: #000080;">=</span> get_father<span style="color: #008000;">&#40;</span>y<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	father<span style="color: #008000;">&#91;</span>fx<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> fy<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> maxof <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> x, <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> y<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">return</span> x <span style="color: #000080;">&gt;</span> y <span style="color: #008080;">?</span> x <span style="color: #008080;">:</span> y<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> do_work <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	init_set <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> s, t, max <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">bool</span> finish <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> s <span style="color: #000080;">&gt;&gt;</span> t<span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>s <span style="color: #000080;">&gt;</span> <span style="color: #0000dd;">0</span> <span style="color: #000040;">&amp;&amp;</span> t <span style="color: #000080;">&gt;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #666666;">// if s or t is not greater than 0, it is the end descripter.</span>
		<span style="color: #008000;">&#123;</span>
			max <span style="color: #000080;">=</span> maxof <span style="color: #008000;">&#40;</span>maxof <span style="color: #008000;">&#40;</span>max, s<span style="color: #008000;">&#41;</span>, t<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
			has_point<span style="color: #008000;">&#91;</span>s<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
			has_point<span style="color: #008000;">&#91;</span>t<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
			<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>get_father<span style="color: #008000;">&#40;</span>s<span style="color: #008000;">&#41;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> get_father<span style="color: #008000;">&#40;</span>t<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
				set_union<span style="color: #008000;">&#40;</span>s, t<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
			<span style="color: #0000ff;">else</span>
			<span style="color: #008000;">&#123;</span>
				<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;Case &quot;</span> <span style="color: #000080;">&lt;&lt;</span> case_number <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot; is not a tree.&quot;</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
				finish <span style="color: #000080;">=</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
			<span style="color: #008000;">&#125;</span>
		<span style="color: #008000;">&#125;</span>
		<span style="color: #0000ff;">else</span>
		<span style="color: #008000;">&#123;</span>
			<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>s <span style="color: #000080;">==</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span> <span style="color: #000040;">&amp;&amp;</span> t <span style="color: #000080;">==</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span>
			<span style="color: #008000;">&#123;</span>
				<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
			<span style="color: #008000;">&#125;</span>
			<span style="color: #0000ff;">break</span><span style="color: #008080;">;</span>
		<span style="color: #008000;">&#125;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>finish<span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000ff;">int</span> f <span style="color: #000080;">=</span> get_father<span style="color: #008000;">&#40;</span>max<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span> max<span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
			<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>has_point<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">&amp;&amp;</span> get_father<span style="color: #008000;">&#40;</span>i<span style="color: #008000;">&#41;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> f<span style="color: #008000;">&#41;</span>
			<span style="color: #008000;">&#123;</span>
				<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;Case &quot;</span> <span style="color: #000080;">&lt;&lt;</span> case_number <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot; is not a tree.&quot;</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
				finish <span style="color: #000080;">=</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
				<span style="color: #0000ff;">break</span><span style="color: #008080;">;</span>
			<span style="color: #008000;">&#125;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>finish<span style="color: #008000;">&#41;</span>
		<span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;Case &quot;</span> <span style="color: #000080;">&lt;&lt;</span> case_number <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot; is a tree.&quot;</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
	<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">true</span><span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #000040;">++</span>case_number<span style="color: #008080;">;</span>
		<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>do_work<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
			<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div><p><b>相关文章推荐</b>：<ol><li><a
href='http://ceeji.net/blog/poj-1611/' rel='bookmark' title='POJ 1611 The Suspects'>POJ 1611 The Suspects</a></li><li><a
href='http://ceeji.net/blog/poj-1703/' rel='bookmark' title='POJ 1703 Find them, Catch them'>POJ 1703 Find them, Catch them</a></li></ol></p>]]></content:encoded> <wfw:commentRss>http://ceeji.net/blog/poj-1308/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
