<?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>Teddy</title>
	<atom:link href="http://www.tedyin.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tedyin.com/blog</link>
	<description>Studies,OI and Love</description>
	<lastBuildDate>Fri, 17 Feb 2012 02:46:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>My GPG Public Key</title>
		<link>http://www.tedyin.com/blog/archive/651/</link>
		<comments>http://www.tedyin.com/blog/archive/651/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 00:15:51 +0000</pubDate>
		<dc:creator>ymfoi</dc:creator>
				<category><![CDATA[Discoveries]]></category>
		<category><![CDATA[My Life]]></category>
		<category><![CDATA[GPG]]></category>
		<category><![CDATA[signature]]></category>

		<guid isPermaLink="false">http://www.tedyin.com/blog/?p=651</guid>
		<description><![CDATA[Key Id: 7C4D54E2 Key Server: pgp.mit.edu Key Fingerprint: 2486 491E 9FE2 D615 E17C  B407 88B2 366F 7C4D 54E2]]></description>
		<wfw:commentRss>http://www.tedyin.com/blog/archive/651/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>简单翻译Python Reference中关于Data Model的内容</title>
		<link>http://www.tedyin.com/blog/archive/641/</link>
		<comments>http://www.tedyin.com/blog/archive/641/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 14:18:58 +0000</pubDate>
		<dc:creator>ymfoi</dc:creator>
				<category><![CDATA[Discoveries]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.tedyin.com/blog/?p=641</guid>
		<description><![CDATA[最近在学习Python，官方文档之详细之实用，大大超乎了我的想象。而我觉得最值得一读就是其中对于Python数据抽象理念的描述(Data Model一章)。读完它之后，Python的大致感觉也就有了，剩下的就是学习各种语言特性了。 写得很不错，自然想试试逐步翻译成中文。英语语文水平不敢恭维，希望大家指正。 &#160; &#160; &#160; 对象是Python对于数据的抽象方式。所有在Python程序里面的数据都是以对象或以其之间的关系的形式来表现的（在某种意义上，遵循Von Neumann“储存程式型电脑”的模型，代码本身也用对象来表示）。 每个对象都有个与之对应的身份信息、所属类型和值。 一个对象一旦被创建，它的身份信息就再也不会改变。你可以把它当作是这个对象在内存中对应的地址。“is”操作符能比较两个对象的标识符，而“id()”函数能返回一个代表该对象身份的整数值（目前被实现作它的内存地址）。对象的类型也是不可变的。一个对象的类型决定了此对象支持的操作（比如说： “它有长度吗？”）并且定义了那个类型的对象可能的值。“type()”函数返回一个对象的类型（其实它自身也是一种对象）。有些对象的值可以变化。那些自身值可以变化的对象也被称作“可变对象”mutable，而一经创建，值就不可改变的对象叫“不可变对象”immutable。（不可变容器对象中包含的引用指向的另一个可变对象的值是可以改变的，但是容器本身却仍然被认为是不可变的，因为它包含的内容不可变。因此，“不可变”性 并不直接等价于有一个不变的值，它更为精妙。） 对象不需要被显式地销毁，当他们一旦变得无法再被使用到就可能被回收。 让垃圾回收延迟或是被彻底忽略在实现上都被允许&#8212;-这只是个关乎实现质量好坏的事情，只要对象在能被访问到时不会被回收就行了。 Objects are Python’s abstraction for data. All data in a Python program is represented by objects or by relations between objects. (In a sense, and in conformance to Von Neumann’s model of a “stored program computer,” code is also represented by [...]]]></description>
		<wfw:commentRss>http://www.tedyin.com/blog/archive/641/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NOIP2011 完结了</title>
		<link>http://www.tedyin.com/blog/archive/631/</link>
		<comments>http://www.tedyin.com/blog/archive/631/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 09:23:24 +0000</pubDate>
		<dc:creator>ymfoi</dc:creator>
				<category><![CDATA[My Life]]></category>
		<category><![CDATA[OI]]></category>
		<category><![CDATA[noip]]></category>
		<category><![CDATA[黄蜂]]></category>

		<guid isPermaLink="false">http://www.tedyin.com/blog/?p=631</guid>
		<description><![CDATA[这回主要是求稳，Day1 早上有个小插曲，被黄蜂蛰了3次，就这样 一瘸一拐地进了考场。T_T 大概用了30-60分钟写完一二题，发现二题比意想中的水，怀疑是不是大家都写了前两道，于是略有压力地写第三题。不是很习惯屏幕的比例，上下太窄了，每次能看到的代码只有很少一部分，字迹还有些模糊。第三题花的时间出乎了想象，弄完就只剩半小时了。于是改变策略去检查一二题。直到剩下5分钟时才猛然发现三题囧了——没考虑拿出来的那块掉下来的情况。这可是个Fatal Error，于是赶紧改。但是恼人的是怎么改都错了，样例都输-1了。 时间所剩无几，我干脆放弃修改，把原来那个代码硬着头皮交了。事实证明我这样做是明智的。 总之，Day1有些遗憾。 Day2吸取了Day1的教训，把终端字体改小了，并且按了自动调节钮把字迹弄清晰了。果然，一题水了，二题刚开始读错了题意，不过很快就发现了。接着就很自然注意到了单调性，一看范围，出题人意图很明显要求一个二分和线性的验证。但是验证却一直想不到怎么弄，有点被题意恶心到了。干脆先写了个二分加裸验证出来，一写完就发现可以转化成询问区间字段和的问题，自然先到树状数组。可是如此复杂度就是O(n logn logn)的了，应该有70吧，果断想三题。发现三题是我最讨厌的乘车问题，看得出来DP可以得60%，但是怎么思路都不明确。估计这题是整次考试压轴的，于是放了下，去看看二题有没有优化余地，重读二题代码，意识到只询问不修改，树状数组基本就是牛刀啊，直接记前缀和就得了。写好了拍了一会儿，在造数据过程中发现必须S弄大些才能让答案不总是一个值，进而查看题目S范围，大惊失色——忘开long long了，仔细把全部int检查一遍逐个看是不是该换成long long。心有余悸，三题已经无从下手，果断dfs裸之，因为此时只剩半个小时了。 二试纠正了一个大错误，比一试好啊。 这样mayan无法估计，但应该至少有30分，总分理想情况应该是460。 接下来就是为验证是不是理想情况而挣扎。我的记忆像内存掉电了之后一般逐渐凌乱不清：记不清qc那题究竟Y变量有没有开long long，就是说有可能为此丢失大量分数。纠结了好久，通过对记忆清晰的一些证据进行间接推断发现，是定义成ll(typedef long long ll)的，但是脑海中又似乎记得那里有个高亮说明是int而非ll。还发现hotel一题中虽然结果用了ll，但是可能过程中一处溢出。搞得我神经都要崩溃了。 最后看到自己的代码时，qc那道果然推理是正确的，用了ll，hotel有极限数据溢出的可能。 然后自己的成绩——470，mayan居然有个-1的点独立于30%的弱数据之外，得了40。其他4题全部AC，bus也裸到了30。 hotel居然没有极限数据，汗啊。。结果数据很极限很强的反而是我没问题的qc，有如天助。 这次的题型太过单一了，没有对一些很有用的模型的考查，DP和图论都没有（bus那道算作DP也重其量1/6）。考查的内容就是裸，裸，裸，还有二分。神马玩意儿，没有区分度啊！特别是学得少的同学占足了便宜，这套题4道门槛都很低，用for循环就可以结束战斗。。]]></description>
		<wfw:commentRss>http://www.tedyin.com/blog/archive/631/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>万事俱备，只欠东风。</title>
		<link>http://www.tedyin.com/blog/archive/628/</link>
		<comments>http://www.tedyin.com/blog/archive/628/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 13:53:16 +0000</pubDate>
		<dc:creator>ymfoi</dc:creator>
				<category><![CDATA[My Life]]></category>
		<category><![CDATA[OI]]></category>
		<category><![CDATA[noip]]></category>
		<category><![CDATA[stl]]></category>
		<category><![CDATA[考试]]></category>

		<guid isPermaLink="false">http://www.tedyin.com/blog/?p=628</guid>
		<description><![CDATA[NOIP2011 两天，每天3小时3道题。 7:30到高新校区的考场，8:30开考 可以使用STL, freopen long long 输出用%lld 比较输出时忽略行末空格和文末换行 &#160; 做完题检查空间，时间，输入输出规模（是否爆int/long long），文件名（.in .out .cpp)， 输出格式（是否按题目要求）]]></description>
		<wfw:commentRss>http://www.tedyin.com/blog/archive/628/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>无题</title>
		<link>http://www.tedyin.com/blog/archive/623/</link>
		<comments>http://www.tedyin.com/blog/archive/623/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 09:27:49 +0000</pubDate>
		<dc:creator>ymfoi</dc:creator>
				<category><![CDATA[OI]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[烂文章]]></category>

		<guid isPermaLink="false">http://www.tedyin.com/blog/?p=623</guid>
		<description><![CDATA[]]></description>
		<wfw:commentRss>http://www.tedyin.com/blog/archive/623/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Radix Sort &amp;&amp; Counting Sort &amp;&amp; Pigeonhole Sort &amp;&amp; Bucket Sort</title>
		<link>http://www.tedyin.com/blog/archive/618/</link>
		<comments>http://www.tedyin.com/blog/archive/618/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 09:33:29 +0000</pubDate>
		<dc:creator>ymfoi</dc:creator>
				<category><![CDATA[Discoveries]]></category>
		<category><![CDATA[OI]]></category>
		<category><![CDATA[sort]]></category>

		<guid isPermaLink="false">http://www.tedyin.com/blog/?p=618</guid>
		<description><![CDATA[一直以来就没有搞清楚基数排序(Radix Sort)和计数排序(Counting Sort)还有桶排序(Bucket Sort)的关系，今天wiki了一下，总算有了答案。 基数排序是利用排序关键字具有字典序特征的特点，对关键字进行分割，分若干轮子排序来达到最后使整个序列排好序的效果。至于子排序，可以以是其他的各种排序方法，基数排序仅仅指的是关键字分割这一思想。 计数排序顾名思义，就是开一个与关键字相匹配范围的表，对数据进行登记（即计数）。再通过按顺序遍历表，算出表中每个关键字序比它小的关键字有多少个。最后重新遍历原数据，根据处理过的表直接得出应该放的位置。注意表中记录的仅仅是数值，而没有把待排序的对象放进去。 这个算法有个特殊应用，如果需要排序关键字就是对象的全部，就可以在遍历表时，直接输出表中对应数值个相同对象就行了。 而桶排序是指将数据按关键字放入表中后，分别递归地对每个表内部进行排序，再按序遍历表输出。 基数排序的子排序算法常常使用计数排序实现（就是网上一搜一大把的那种开3个数组for3次，下标嵌套3层的那种） 有些资料上什么链表式基数排序又是怎么回事呢？ 链表式是指子排序不是使用计数排序，而是一种叫鸽巢排序(Pigeonhole Sort)算法，其实就是桶排序省掉“递归地对每个表内部进行排序”步骤得到的算法，实际上递归的那部分被基数排序的多轮排序给完成了，使用了计数的基数排序本质上是拥有递归思想桶排序的一种特殊实现。 &#160; 参考文献： http://en.wikipedia.org/wiki/Radix_sort http://en.wikipedia.org/wiki/Counting_sort http://en.wikipedia.org/wiki/Pigeonhole_sort http://en.wikipedia.org/wiki/Bucket_sort]]></description>
		<wfw:commentRss>http://www.tedyin.com/blog/archive/618/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extract the resources of Topcoder!</title>
		<link>http://www.tedyin.com/blog/archive/609/</link>
		<comments>http://www.tedyin.com/blog/archive/609/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 00:18:34 +0000</pubDate>
		<dc:creator>ymfoi</dc:creator>
				<category><![CDATA[Discoveries]]></category>
		<category><![CDATA[My Life]]></category>
		<category><![CDATA[OI]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[topcoder]]></category>

		<guid isPermaLink="false">http://www.tedyin.com/blog/?p=609</guid>
		<description><![CDATA[由于学校最近总是隔三差五停网，感到压力很大，遂研究如何离线做TC的题。本以为google一下全是方法，结果搜了半天才好不容易翻到一个人在github上传的python脚本。 结果发现用不了，无奈看了下代码，改了一处。最终用是用上了，可是获取数据太慢了，二来我不太会python。于是想写个bash script（其实我也不熟。。= =）。因为以前写过一个POJ邮件批量发送器，所以登录神马的就用curl来解决，个人觉得比wget高效。 最让人头疼的是分析html，从中提取数据的部分了。 我本来就只会点sed，多行匹配弄死人啊啊啊~（人家python可以用BeautifulSoup来搞定）看来是该好好学学“二外”了，python,bash神马的，awk神马的，都应该熟练掌握啊。 最终还是把脚本搞出来了，私认为看上去不错。 http://repo.tedyin.com/tcget/ 先运行./fecth.sh获取SRM最近200次比赛列表，结果会存到/tmp/matches里。然后编辑tcget.sh里面的username和passwd，改成自己的(下数据时要用）。最后./tcget.sh 脚本就会根据matches上的比赛把所有的题目和数据搞下来，挺快的。 注意因为是利用Topcoder官网的Top Submission中A了的代码下面附带的数据来得到题目数据的，对于那些比赛中无一人A的题就没法了。但90%题目应该都有数据，那些没有数据的说明我根本做不了啊（比赛时无一人A。。。）。]]></description>
		<wfw:commentRss>http://www.tedyin.com/blog/archive/609/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Git Repository</title>
		<link>http://www.tedyin.com/blog/archive/605/</link>
		<comments>http://www.tedyin.com/blog/archive/605/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 05:30:03 +0000</pubDate>
		<dc:creator>ymfoi</dc:creator>
				<category><![CDATA[Discoveries]]></category>
		<category><![CDATA[cgit]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[repository]]></category>

		<guid isPermaLink="false">http://www.tedyin.com/blog/?p=605</guid>
		<description><![CDATA[不打算同步到sf上了，于是研究了一下如何在虚拟空间里面搞个代码仓库。 成果总算有了~ http://www.tedyin.com/webrepo/ &#160; 介绍： Git是一个版本控制系统(Version Control System)，和SVN以及Mercurial类似。简单地说就是一个可以同步和管理代码的工具。比如开发一个工程，如果没有版本控制系统，那么就很难协调几个成员同时对这个工程的开发。所以为了让工程的开发更加透明和易于管理，一般在一个大家都能访问的服务器上设置一个仓库（Repository），然后这个服务器上运行着一个接受对于仓库请求的服务。对于开发人员，可以用客户端连接到服务器进行工程副本的获取和修改同步等等操作。Git就是这样的一个软件，由Linus Torvalds亲自操刀编写，为的是更好地维护日益暴涨的Linux内核代码。不过由于它简单快捷，所以就风靡了。 我在网站的空间里面用一个目录来放置Repository，为了让仓库可以从Web界面浏览，使用了一个轻量级Git的Web前端——CGIT。这样就可以从网页上浏览仓库里的文件了。 &#160; Update 20111009: 搞定了语法高亮。自己配了个颜色，感觉不错。详见这里 &#160;]]></description>
		<wfw:commentRss>http://www.tedyin.com/blog/archive/605/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Plan for furture affairs v2.0 (alpha)</title>
		<link>http://www.tedyin.com/blog/archive/603/</link>
		<comments>http://www.tedyin.com/blog/archive/603/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 14:07:25 +0000</pubDate>
		<dc:creator>ymfoi</dc:creator>
				<category><![CDATA[My Life]]></category>
		<category><![CDATA[noip]]></category>
		<category><![CDATA[plan]]></category>

		<guid isPermaLink="false">http://www.tedyin.com/blog/?p=603</guid>
		<description><![CDATA[NOI已经结束。 我还缺一个NOIP一等奖。 因此9月到11月是个特殊时期。 现将暂行计划置于下方，随时进行调整和充实。 &#160; 语文数学回班上课。 物理看借来的力学和电磁学书，同时参考教材。 英语每天保证至少1小时学习时间，提高词汇量、听说能力以及语法。 主要方法是听VOA,CNN,BBC,etc.（或高三英语课本）的听力材料，进行短时间内复述，尽量多地使用原表达。 在熟悉了剧本（字幕）之后看电影的某一片段，尝试进行表演。 感谢Ms. Yang对英语学习的建议~ &#160; NOIP这边跟着高一高二的做练习题，重新刷一遍USACO。]]></description>
		<wfw:commentRss>http://www.tedyin.com/blog/archive/603/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Bugs Fixed</title>
		<link>http://www.tedyin.com/blog/archive/598/</link>
		<comments>http://www.tedyin.com/blog/archive/598/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 11:27:02 +0000</pubDate>
		<dc:creator>ymfoi</dc:creator>
				<category><![CDATA[Discoveries]]></category>
		<category><![CDATA[My Life]]></category>
		<category><![CDATA[BIOS]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[thinkpad]]></category>

		<guid isPermaLink="false">http://www.tedyin.com/blog/?p=598</guid>
		<description><![CDATA[在从长春回来之后换了联想的Thinkpad E40s本本，有一段曲折的经历。 刚入手的晚上发现本本的T键明显松动，像翘翘板一样。于是第二天去问销售员。 他说不是什么问题，用镊子重新卡好了键。 一天后的下午，我看到高二和高一的暑假NOIP集训题，顺手写了一道。 在按下熟悉的F8时，gdb跳出来了，然而在gdb提示符后面多了一个字符。 后来发现是F7，F8的毛病，按了一次实际响应了两次。我切到windows底下试了试，问题还是存在。 于是打电话再问，他说要找维修中心的出具鉴定才能换机。我马上和我爸一起到了维修中心。 工作人员测试之后确认了问题是BIOS firmware的或者硬件，我RP太低了，在等待服务的过程中维修中心就停电了。 鉴定单来电之前是打印不成了，等到6点他们下班也没来电。 第二天终于取得了单子，也换到了机子，倒腾了硬盘上已经有的数据。累啊。。 F7,F8恰好也是配合Fn进行亮度调节的键，我总觉得是BIOS写囧了之类的。 今天去官方驱动上看了下，BIOS从1.11升到了1.17，遂更新。果然，问题没有了。 Change Log 很好地印证了这一点。 以前总觉得像BIOS这种firmware升级Fix的bug也估计是些对一般用户无关痛痒的东西。 这次因为Bug大热天跑断腿啊~~~ CHANGES IN THIS RELEASE Version 1.17 [Important Updates] Nothing [New functions or enhancements] - Intel CPU Microcode Upgrade rev 00000017h - Support battery charging with 65W AC adapter for E420s. - Prevent back flashing to 8JET30WW [...]]]></description>
		<wfw:commentRss>http://www.tedyin.com/blog/archive/598/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

