<?xml version="1.0" encoding="utf-8" ?>
<!-- generator="FEEDCREATOR_VERSION" -->
<rss version="2.0" xmlns:sns="http://blog.sina.com.cn/sns">
    <channel>
        <title>Notes, Codes &amp; Scribbles</title>
        <description></description>
        <link>http://blog.sina.com.cn/tomtung</link>
        <lastBuildDate>Thu, 31 Dec 2009 22:30:51 GMT+8</lastBuildDate>
        <generator>FEEDCREATOR_VERSION</generator>
        <language>zh-cn</language>
        <copyright>Copyright 1996 - 2009 SINA Inc. All Rights Reserved.</copyright>
        <pubDate>Thu, 31 Dec 2009 14:30:51 GMT+8</pubDate>
        <item>
            <title>一个下载狂的噩梦</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100ggg7.html</link>
            <description><![CDATA[完成以下过程耗时30小时：<br />
---------------------------------------------------------------------------------<br />

T:\&gt;chkdsk<br />
/B /X<br />
文件系统的类型是 NTFS。<br />
无法锁定当前驱动器。<br />
卷已被卸除。该卷的所有打开句柄现在无效。<br />
<br />
CHKDSK 正在校验文件(阶段 1/5)...<br />
&nbsp; 已处理 2304 个文件记录。<br />
文件校验完成。<br />
&nbsp; 已处理 0 个大型文件记录。<br />
&nbsp; 已处理 0 个错误的文件记录。<br />
&nbsp; 已处理 0 个 EA 记录。<br />
&nbsp; 已处理 0 个重新解析记录。<br />
CHKDSK 正在验证索引(阶段 2/5)...<br />
从文件 25 的索引 $O 中删除一个索引项。<br />
从文件 25 的索引 $O 中删除一个索引项。<br />
正在更正文件 41 索引 $I30 的错误。<br />
正在更正文件 41 索引 $I30 的错误。<br />
正在对文件 41 中的索引 $I30 进行排序。<br />
&nbsp; 已处理 2922 个索引项。<br />
索引验证完成。<br />
CHKDSK 正在扫描未编制索引的文件以便重新连接到其原始目录。<br />
正在将孤立文件 72_SCH~1.17_ (1723)恢复到目录文件 41。<br />
正在将孤立文件 76_SHO~1 (1738)恢复到目录文件 41。<br />
正在将孤立文件 76 [Shostakovich] String Quartets [DG 463 284-2] Emerson
String Quartet (1738)恢复到目录文件 41。<br />
正在将孤立文件 73_SCH~1 (1932)恢复到目录文件 41。<br />
正在将孤立文件 73 [Schubert] Winterreise [DG 447 421-2] Dietrich
Fischer-Dieskau, J&ouml;rg Demus (1932)恢复到目录文件 41。<br />
正在将孤立文件 74_SCH~1.2_E (2008)恢复到目录文件 41。<br />
正在将孤立文件 74 [Schumann] Fantasie Op.17, Faschingschwank aus Wien
Op.26, Papillons Op.2 [EMI 5 75233 2] Sviatoslav Richter
(2008)恢<br />
复到目录文件 41。<br />
完成百分比: 10。(共 7 个未索引的文件，已扫描 5 个)<br />
正在将孤立文件 75_SCH~1 (2021)恢复到目录文件 41。<br />
正在将孤立文件 75 [Schumann] String Quartets 1 &amp; 3 [ECM
4721692] Zehetmair Quartet (2021)恢复到目录文件 41。<br />
正在将孤立文件 78_SME~1 (2045)恢复到目录文件 41。<br />
正在将孤立文件 78 [Smetana] M&aacute; Vlast [Supraphon SU3826-2] Vaclav Talich,
Czech Philharmonic Orchestra (2045)恢复到目录文件 41。<br />
&nbsp; 已扫描到 7 个未索引文件。<br />
正在将孤立文件 77_SIB~1 (2073)恢复到目录文件 41。<br />
正在将孤立文件 77 [Sibelius &amp; Nielsen] Violin Concertos
[Sony SMK89748] Cho-Liang Lin, Esa-Pekka Salonen (2073)恢复到目录文件
41。<br />
&nbsp; 已恢复 0 个未索引文件。<br />
CHKDSK 正在验证安全描述符(阶段 3/5)...<br />
&nbsp; 已处理 2304 个文件 SD/SID。<br />
安全描述符验证完成。<br />
&nbsp; 已处理 309 个数据文件。<br />
CHKDSK 正在校验文件数据(阶段 4/5)...<br />
完成百分比: 10。(共 2288 个文件，已处理 1239 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\52_LIS~1\CDImage.ape 的 1268
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1299 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\55_MAH~1.9_D\Booklet\BOOKLE~4.JPG 的
1321 文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1312 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\55_MAH~1.9_D\CD1\CDImage.ape 的 1331
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1319 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\56_MOZ~1.1-4\CDImage.ape 的 1339
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1323 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\57_MOZ~1.382\CD1\CDImage.ape 的 1358
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1346 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\57_MOZ~1.382\CD10\CDImage.ape 的 1364
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1348 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\57_MOZ~1.382\CD2\CDImage.ape 的 1370
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1354 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\57_MOZ~1.382\CD3\CDImage.ape 的 1376
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1360 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\57_MOZ~1.382\CD4\CDImage.ape 的 1382
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1366 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\57_MOZ~1.382\CD5\CDImage.ape 的 1388
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1382 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\57_MOZ~1.382\CD7\CDImage.ape 的 1400
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1384 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\57_MOZ~1.382\CD8\CDImage.ape 的 1406
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1394 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\57_MOZ~1.382\CD9\CDImage.ape 的 1412
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1396 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\58_MOZ~1\CD1\CDImage.ape 的 1439
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1423 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\58_MOZ~1\CD2\CDImage.ape 的 1443
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1427 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\58_MOZ~1\CD3\CDImage.ape 的 1447
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1431 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\59_MOZ~1\CD1\CDImage.ape 的 1470
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1454 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\59_MOZ~1\CD2\CDImage.ape 的 1474
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1458 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\59_MOZ~1\CD3\CDImage.ape 的 1478
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1466 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\60_MOZ~1\Booklet\BOOKLE~2.JPG 的 1487
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1471 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\60_MOZ~1\Booklet\BOOKLE~4.JPG 的 1489
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1474 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\60_MOZ~1\Booklet\BOD716~1.JPG 的 1494
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1478 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\60_MOZ~1\CD1\CDImage.ape 的 1496
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1480 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\60_MOZ~1\CD2\CDImage.ape 的 1500
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1484 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\60_MOZ~1\CD3\CDImage.ape 的 1504
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1506 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\61_MOZ~1.20_\CD2\CDImage.ape 的 1526
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1510 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\61_MOZ~1.20_\CD3\CDImage.ape 的 1530
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1532 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\62_MOZ~1\CD1\CDImage .ape 的 1550
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1534 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\62_MOZ~1\CD2\CDImage.ape 的 1554
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1538 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\62_MOZ~1\CD3\CDImage.ape 的 1558
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1542 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\63_PRO~1.5_S\CDImage.ape 的 1562
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1557 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\63_PRO~1.5_S\Booklet\BOB7E9~1.JPG 的
1574 文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1573 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\64_PUC~1\CD1\CDImage.ape 的 1591
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1579 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\65_PUC~1\CD1\CDImage.ape 的 1614
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1598 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\65_PUC~1\CD2\CDImage.ape 的 1618
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1602 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\66_RAC~1.3_P\CDImage.ape 的 1622
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1619 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\68_ROS~1\CDImage.ape 的 1652
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1669 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\69_SCH~1\Booklet\BO0D1E~1.JPG 的 1686
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1679 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\70_SCH~1.3_5\CDImage.ape 的 1699
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1690 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\72_SCH~1.17_\CDImage.ape 的 1724
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1729 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\76_SHO~1\BOOKLE~1\BOB7E9~1.JPG 的 1746
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1739 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\76_SHO~1\BOOKLE~2\BOOKLE~1.JPG 的 1759
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1750 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\76_SHO~1\BOOKLE~2\BO52CC~1.JPG 的 1769
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1753 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\76_SHO~1\BOOKLE~2\BO680F~1.JPG 的 1770
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1754 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\76_SHO~1\BOOKLE~2\BOFC25~1.JPG 的 1771
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1764 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\76_SHO~1\BOOKLE~2\BO1E72~1.JPG 的 1781
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1765 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\76_SHO~1\BOOKLE~2\BO731A~1.JPG 的 1783
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1775 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\76_SHO~1\CD2\CDImage.ape 的 1795
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1783 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\81_R~1.STR\CDImage.ape 的 1801
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1813 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\86_TCH~1.4_5\CD1\CDImage.ape 的 1840
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1824 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\86_TCH~1.4_5\CD2\CDImage.ape 的 1844
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1837 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\89_VER~1\Booklet\BOOKLE~3.JPG 的 1854
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1841 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\89_VER~1\Booklet\BO62B5~1.JPG 的 1858
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1842 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\89_VER~1\CD1\CDImage.ape 的 1862
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1846 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\89_VER~1\CD2\CDImage.ape 的 1866
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1850 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\89_VER~1\CD3\CDImage.ape 的 1870
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1854 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\90_VER~1\CD1\CDImage.ape 的 1890
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1874 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\90_VER~1\CD2\CDImage.ape 的 1894
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1901 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\97_WEB~1\CD1\CDImage.ape 的 1921
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1905 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\97_WEB~1\CD2\CDImage.ape 的 1925
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1909 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\97_WEB~1\CD3\CDImage.ape 的 1929
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1913 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\73_SCH~1\CDImage.ape 的 1956
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1949 个)<br />
Windows 替换了名为 \UNSORT~1\ARTURR~1\cd2\RUBINS~1.APE 的 1969
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1953 个)<br />
Windows 替换了名为 \UNSORT~1\ARTURR~1\cd3\RUBINS~1.APE 的 1973
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1957 个)<br />
Windows 替换了名为 \UNSORT~1\ARTURR~1\cd5\RUBINS~1.APE 的 1985
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1969 个)<br />
Windows 替换了名为 \UNSORT~1\ARTURR~1\cd6\RUBINS~1.APE 的 1988
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1972 个)<br />
Windows 替换了名为 \UNSORT~1\ARTURR~1\cd7\RUBINS~1.APE 的 1992
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1976 个)<br />
Windows 替换了名为 \UNSORT~1\ARTURR~1\cd8\RUBINS~1.APE 的 1996
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 1990 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\74_SCH~1.2_E\CDImage.ape 的 2016
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2010 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\75_SCH~1\Booklet\BO0D1E~1.JPG 的 2027
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2011 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\75_SCH~1\Booklet\BOB7E9~1.JPG 的 2028
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2012 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\75_SCH~1\Booklet\BO62B5~1.JPG 的 2029
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2013 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\75_SCH~1\Booklet\BOF28E~1.JPG 的 2030
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2014 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\75_SCH~1\Booklet\BOD716~1.JPG 的 2031
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2015 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\75_SCH~1\Booklet\BO0377~1.JPG 的 2032
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2016 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\75_SCH~1\Booklet\BO52CC~1.JPG 的 2033
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2017 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\75_SCH~1\Booklet\BO680F~1.JPG 的 2034
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2018 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\75_SCH~1\Booklet\BOFC25~1.JPG 的 2035
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2019 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\75_SCH~1\Booklet\BOD1CC~1.JPG 的 2036
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2020 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\75_SCH~1\Booklet\BO27F0~1.JPG 的 2037
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2021 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\75_SCH~1\CDImage.ape 的 2039
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2023 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\78_SME~1\CDImage.ape 的 2065
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2054 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\77_SIB~1\Booklet\BOOKLE~1.JPG 的 2075
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2060 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\77_SIB~1\Booklet\BOOKLE~3.JPG 的 2077
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2061 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\77_SIB~1\Booklet\BOOKLE~4.JPG 的 2078
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2062 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\77_SIB~1\CDImage.ape 的 2079
文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2063 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\留声机~1\79_R~1.STR\CD1\CDImage.ape 的
2095 文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2079 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\留声机~1\79_R~1.STR\CD2\CDImage.ape 的
2099 文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2083 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\留声机~1\79_R~1.STR\CD3\CDImage.ape 的
2103 文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2087 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\留声机~1\79_R~1.STR\CD4\CDImage.ape 的
2107 文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2091 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\留声机~1\79_R~1.STR\CD5\CDImage.ape 的
2111 文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2095 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\留声机~1\79_R~1.STR\CD6\CDImage.ape 的
2115 文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2099 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\留声机~1\79_R~1.STR\CD7\CDImage.ape 的
2119 文件中的不正确的群集。<br />
完成百分比: 10。(共 2288 个文件，已处理 2107 个)<br />
Windows 替换了名为 \UNSORT~1\留声机百大\留声机~1\79_R~1.STR\CD9\CDImage.ape 的
2127 文件中的不正确的群集。<br />
&nbsp; 已处理 2288 个文件。<br />
文件数据校验完成。<br />
CHKDSK 正在验证可用空间(阶段 5/5)...<br />
已处理 28876513 个可用簇。<br />
已完成可用空间校验。<br />
将 50891 个不正确的群集添加到了不正确的群集文件。<br />
正在更正主文件表(MFT) BITMAP 属性的错误。<br />
CHKDSK 发现卷位图中有标记为已分配的可用空间。<br />
Windows 已更正文件系统。<br />
<br />
总共有&nbsp; 157286399 KB 磁盘空间。<br />
1821 个文件中有&nbsp;&nbsp; 41702036 KB。<br />
311
个索引&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
876 KB。<br />
坏扇区&nbsp;&nbsp;&nbsp;&nbsp;
203564 KB。<br />
系统正在使用&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
73051 KB。<br />
日志文件占用了&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
65536 KB。<br />
磁盘上&nbsp; 115306872 KB 可用。<br />
<br />
每个分配单元中有&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
4096 字节。<br />
磁盘上共有&nbsp;&nbsp; 39321599 个分配单元。<br />
磁盘上有&nbsp;&nbsp; 28826718 个可用的分配单元。<br />
<br />
<a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static13.photo.sina.com.cn/orignal/4a443fd7t79d51c9810ec&amp;690" TARGET="_blank"><img SRC="http://static13.photo.sina.com.cn/bmiddle/4a443fd7t79d51c9810ec&amp;690" STYLE="" /></A><br />
<br />
DiskGenius 磁盘检测结果：<br />
<br />
被检测磁盘：HD1:External HDD(596GB)<br />
检测范围：柱面 39162 - 58743 (该磁盘柱面总数：77825)<br />
完成时间：2009-12-03 19:13:22<br />
<br />
共检测到 892 个坏道区域。详细坏道信息如下：<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
柱面号&nbsp;&nbsp;&nbsp;&nbsp;
磁头号&nbsp;&nbsp;&nbsp;&nbsp;
扇区号&nbsp;&nbsp;&nbsp;&nbsp;
扇区数目&nbsp;&nbsp;
耗时(毫秒)&nbsp;&nbsp;&nbsp;&nbsp;
修复情况&nbsp;&nbsp; 错误信息<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
41838&nbsp;&nbsp;&nbsp;&nbsp;
未检测&nbsp;&nbsp;&nbsp;&nbsp;
未检测&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
未检测&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
4212&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
未处理&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
41841&nbsp;&nbsp;&nbsp;&nbsp;
未检测&nbsp;&nbsp;&nbsp;&nbsp;
未检测&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
未检测&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5086&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
未处理&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
41842&nbsp;&nbsp;&nbsp;&nbsp;
未检测&nbsp;&nbsp;&nbsp;&nbsp;
未检测&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
未检测&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2387&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
未处理&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
41843&nbsp;&nbsp;&nbsp;&nbsp;
未检测&nbsp;&nbsp;&nbsp;&nbsp;
未检测&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
未检测&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
3541&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
未处理&nbsp;&nbsp;<br />
....<br />
....<br />
<br />
<a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static6.photo.sina.com.cn/orignal/4a443fd7t79d51f84b955&amp;690" TARGET="_blank"><img SRC="http://static6.photo.sina.com.cn/bmiddle/4a443fd7t79d51f84b955&amp;690" STYLE="" /></A><br />]]></description>
            <author>逆铭</author>
            <category>生活在此处</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100ggg7.html#comment</comments>
            <pubDate>Thu, 03 Dec 2009 16:01:05 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100ggg7.html</guid>
        </item>
        <item>
            <title>有爱的小脚本：启动终端时显示一句箴言</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100gbk9.html</link>
            <description><![CDATA[<p>效果就是每次启动终端时都有一个小动物什么的讲一句有意思的话：<span STYLE="color: rgb(255, 255, 255);">doubanclaim469c1764e4db1ecf</SPAN></P>
<code>&nbsp;
______________________________________________________________________<br />

/ Agnes'
Law:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
\<br />
\&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Almost everything in life is easier to get into than out of.
/<br />
&nbsp;----------------------------------------------------------------------<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
\&nbsp;&nbsp; ,__,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
\&nbsp; (@@)____<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(__)&nbsp;&nbsp;&nbsp; )\<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
||--|| *<br />
tomtung@tomtung-laptop:~$<br />
<br />
&nbsp;</CODE>
<p>说话的东西和说的话都随机出现。这个效果是我在<a HREF="http://www.linuxmint.com/" TARGET="_blank">Linux
Mint</A>里面看到的，感觉很有爱。下周考Unix环境编程，周末恶补一下，顺便写这个小脚本练手。</P>
<p>以我在用的 ubuntu 为例。首先确保安装 <a HREF="http://en.wikipedia.org/wiki/Fortune_%28Unix%29" TARGET="_blank">fortunes</A> 和 <a HREF="http://en.wikipedia.org/wiki/Cowsay" TARGET="_blank">cowsay</A>
两个包。前者用于显示各种各样的趣味短句，后者则提供了一头会说话的奶牛（和其它各种诡异的东西）。关于fortunes还有一些有趣的包你可能也想一起安装，比如fortune-zh里有唐诗宋词，fortunes-ubuntu-server则有关于使用Ubuntu
Server的贴士，等等。</P>
<p>新建一个文件cowsay-fortune，把以下代码复制进去：</P>
<code><font COLOR="#0000FF">#!/bin/bash</FONT><br />
<font COLOR="#0000FF"># Cow randomly says a hopefully interesting
adage</FONT><br />
<br />
<font COLOR="#0000FF"># Get a short message from fortune, both
offensive and not.</FONT><br />
<font COLOR="#0000FF"># Remove -a if you don't want to see
offensive ones.</FONT><br />
<font COLOR="#0000FF"># Remove -s if you don't mind reading the
long messages.</FONT><br />
<font COLOR="#008B8B">msg</FONT>=<font COLOR="#6A5ACD">`fortune -a
-s`</FONT><br />
<br />
<font COLOR="#0000FF"># Randomly pick a mode of the
cow</FONT><br />
<font COLOR="#008B8B">modes</FONT>=<font COLOR="#A020F0">(</FONT><font COLOR="#A52A2A"><b>""</B></FONT><font COLOR="#6A5ACD">&nbsp;-b
-d -g -p -s -t -w -y</FONT> <font COLOR="#A020F0">)</FONT>;
<font COLOR="#008B8B">mode</FONT>=<font COLOR="#A020F0">${</FONT><font COLOR="#A020F0">modes</FONT><font COLOR="#A020F0">[</FONT><font COLOR="#A020F0">$((</FONT><font COLOR="#A020F0">$RANDOM</FONT><font COLOR="#6A5ACD">&nbsp;%</FONT> <font COLOR="#FF00FF">9</FONT><font COLOR="#A020F0">))</FONT><font COLOR="#A020F0">]</FONT><font COLOR="#A020F0">}</FONT><br />
<br />
<font COLOR="#0000FF"># cowsay or cowthink?</FONT><br />
<font COLOR="#008B8B">cowdos</FONT>=<font COLOR="#A020F0">(</FONT><font COLOR="#6A5ACD">cowsay
cowthink</FONT><font COLOR="#A020F0">)</FONT>; <font COLOR="#008B8B">cowdo</FONT>=<font COLOR="#A020F0">${</FONT><font COLOR="#A020F0">cowdos</FONT><font COLOR="#A020F0">[</FONT><font COLOR="#A020F0">$((</FONT><font COLOR="#A020F0">$RANDOM</FONT><font COLOR="#6A5ACD">&nbsp;%</FONT>
<font COLOR="#FF00FF">2</FONT><font COLOR="#A020F0">))</FONT><font COLOR="#A020F0">]</FONT><font COLOR="#A020F0">}</FONT><br />
<br />
<font COLOR="#0000FF"># Radomly pick a cow picture
file</FONT><br />
<font COLOR="#008B8B">speaker</FONT>=<font COLOR="#6A5ACD">`cowsay
-l</FONT> <font COLOR="#A52A2A"><b>|</B></FONT><font COLOR="#6A5ACD">&nbsp;</FONT><font COLOR="#A52A2A"><b>sed</B></FONT><font COLOR="#6A5ACD">&nbsp;</FONT><font COLOR="#A52A2A"><b>'</B></FONT><font COLOR="#FF00FF">1d;s/
/\n/g</FONT><font COLOR="#A52A2A"><b>'|</B></FONT><font COLOR="#6A5ACD">&nbsp;</FONT><font COLOR="#A52A2A"><b>sort</B></FONT><font COLOR="#6A5ACD">&nbsp;-R</FONT> <font COLOR="#A52A2A"><b>|</B></FONT><font COLOR="#6A5ACD">&nbsp;head</FONT> <font COLOR="#FF00FF">-1</FONT><font COLOR="#6A5ACD">`</FONT><br />
<br />
<font COLOR="#0000FF"># That's it ^^</FONT><br />
<font COLOR="#A52A2A"><b>echo</B></FONT><font COLOR="#FF00FF">&nbsp;</FONT><font COLOR="#A52A2A"><b>"</B></FONT><font COLOR="#A020F0">$msg</FONT><font COLOR="#A52A2A"><b>"</B></FONT><font COLOR="#FF00FF">&nbsp;</FONT>| <font COLOR="#A020F0">$cowdo</FONT>&nbsp;<font COLOR="#6A5ACD">-n</FONT>&nbsp;<font COLOR="#6A5ACD">-f</FONT>&nbsp;<font COLOR="#A020F0">$speaker</FONT>&nbsp;<font COLOR="#A020F0">$mode</FONT><br />
<br /></CODE>
<p>保存后加上执行权限：</P>
<code>chmod +x cowsay-fortune</CODE>
<p>然后把这个文件复制到/usr/bin下</P>
<code>sudo cp cowsay-fortune /usr/bin</CODE>
<p>最后打开/etc/bash.bashrc</P>
<code>sudo gedit /etc/bash.bashrc</CODE>
<p>并在最后加上一行：</P>
<code>cowsay-fortune</CODE>
<p>保存后打开终端，应该就是这个效果了：</P>
<p><a HREF="http://static11.photo.sina.com.cn/orignal/4a443fd7t727eda1b893a&amp;690&amp;690" TARGET="_blank"><img SRC="http://static11.photo.sina.com.cn/orignal/4a443fd7t727eda1b893a&amp;690&amp;690" STYLE="" /></A></P>
<p>顺便抱怨一下，shell编程时对空格的要求也太诡异了吧。。一会儿要求空，一会儿要求不空，一会儿又不限制。。。<br /></P>]]></description>
            <author>逆铭</author>
            <category>新长征路上的代码</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100gbk9.html#comment</comments>
            <pubDate>Sun, 22 Nov 2009 10:46:17 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100gbk9.html</guid>
        </item>
        <item>
            <title>[POJ1771] Elevator Stopping Plan</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100gaqh.html</link>
            <description><![CDATA[新浪的 spamer 越来越多，很早就想搬到独立的 wordpress
上去，但是一直没顾上。只好先在sina这里凑合着了。<br />
<br />
<div STYLE="text-align: center; font-weight: bold; color: rgb(0, 0, 255);" XML:LANG="en-US" LANG="en-US"><font STYLE="font-size: 18px;">Elevator Stopping Plan</FONT></DIV>
<div STYLE="text-align: center;"><b>Time Limit:</B>
1000MS&nbsp; <b>Memory Limit:</B>
30000K&nbsp; <span STYLE="font-weight: bold; color: rgb(255, 0, 0);">Special
Judge</SPAN></DIV>
<p STYLE="font-weight: bold; color: rgb(0, 0, 255);">
Description</P>
<div XML:LANG="en-US" LANG="en-US">ZSoft Corp. is a software
company in GaoKe Hall. And the workers in the hall are very
hard-working. But the elevator in that hall always drives them
crazy. Why? Because there is only one elevator in GaoKe Hall, while
there are hundreds of companies in it. Every morning, people must
waste a lot of time waiting for the elevator.<br />
<br />
Hal, a smart guy in ZSoft, wants to change this situation. He wants
to find a way to make the elevator work more effectively. But it’s
not an easy job.<br />
<br />
There are 31 floors in GaoKe Hall. It takes 4 seconds for the
elevator to raise one floor. It means:<br />
<br />
It costs (31-1)*4=120 seconds if the elevator goes from the 1st
floor to the 31st floor without stop. And the elevator stops 10
second once. So, if the elevator stops at each floor, it will cost
30*4+29*10 = 410 seconds (It is not necessary to calculate the
stopping time at 31st floor). In another way, it takes 20 seconds
for the workers to go up or down one floor. It takes 30*20 = 600
seconds for them to walk from the 1st floor to the 31st floor.
Obviously, it is not a good idea. So some people choose to use the
elevator to get a floor which is the nearest to their office.<br />
<br />
After thinking over for a long time, Hal finally found a way to
improve this situation. He told the elevator man his idea: First,
the elevator man asks the people which floors they want to go. He
will then design a stopping plan which minimize the time the last
person need to arrive the floor where his office locates. For
example, if the elevator is required to stop at the 4th, 5th and
10th floor,the stopping plan would be: the elevator stops at 4th
and 10th floor. Because the elevator will arrive 4th floor at 3*4 =
12 second, then it will stop 10 seconds, then it will arrive 10th
floor at 3*4+10+6*4 = 46 second. People who want to go 4th floor
will reach their office at 12 second, people who want to go to 5th
floor will reach at 12+20 = 32 second and people who want to go to
10th floor will reach at 46 second. Therefore it takes 46 seconds
for the last person to reach his office. It is a good deal for all
people.<br />
Now, you are supposed to write a program to help the elevator man
to design the stopping plan,which minimize the time the last person
needs to arrive at his floor.</DIV>
<p STYLE="color: rgb(0, 0, 255); font-weight: bold;">Input</P>
<div XML:LANG="en-US" LANG="en-US">The input consists of several
testcases. Each testcase is in a single line as the
following:<br />
<center>n f1 f2 ... fn</CENTER>
<br />
It means, there are totally n floors at which the elevator need to
stop, and n = 0 means no testcases any more. f1 f2 ... fn are the
floors at which the elevator is to be stopped (n &lt;=
30, 2 &lt;= f1 &lt; f2 ... fn
&lt;= 31). Every number is separated by a single
space.</DIV>
<p STYLE="color: rgb(0, 0, 255); font-weight: bold;">Output</P>
<div XML:LANG="en-US" LANG="en-US">For each testcase, output the
time the last reading person needs in the first line and the
stopping floors in the second line. Please note that there is a
summary of the floors at the head of the second line. There may be
several solutions, any appropriate one is accepted. No extra spaces
are allowed.</DIV>
<p STYLE="font-weight: bold; color: rgb(0, 0, 255);">Sample
Input</P>
<pre>
3 4 5 10<br />
1 2<br />
0
</PRE>
<p STYLE="font-weight: bold; color: rgb(0, 0, 255);">Sample
Output</P>
<pre>
46<br />
2 4 10<br />
4<br />
1 2
</PRE>
<p STYLE="color: rgb(0, 0, 255); font-weight: bold;">Source</P>
Asia Guangzhou 2003<br />
<p STYLE="font-weight: bold; color: rgb(0, 0, 255);">Solution</P>
<p><br /></P>
<p>
很久不更新了，写个水水的解题报告充数。。。这是最近做的算法习题，网上看到这题的题解都是二分+贪心的，这里提供一个dp解法。</P>
<p><br /></P>
<p>理解题意的时候有一点需要特别注意：题目所描述的整个过程是“并行”的。所以所有人都到达各自楼层的用时只与最晚到达的人有关。</P>
<p><br /></P>
<p>
首先，由于去各楼层乘客的具体数目对结果没有影响，为表述方便，我们假设每个目标楼层只有一个人要去，并且把各个目标楼层与要去该楼层的那个乘客对应。下面在说“电梯里还剩i个人”的时候，就是在说“电梯里的乘客还要去i个楼层”。</P>
<p><br /></P>
<p>粗略的阶段划分和状态表示还是很简单的。</P>
<p><br /></P>
<p>
电梯从第1层开始层层上升，每层都看做一个阶段，任意时刻的状态都可以由“电梯在几楼”和“电梯上都有谁”这两个参数唯一确定。初始状态就是“电梯在1楼”和“所有人都在电梯上”。</P>
<p><br /></P>
<p>
在每个阶段需要做出决策，选择让电梯上的哪些人下来自己走（如果没人下来就表示电梯在这层不停）。每个决策发生后，原来电梯里的人被分成两拨：一拨留在电梯上继续上升，另一拨离开电梯开始爬楼锻炼身体。要求某个状态下电梯里的所有人到达各自楼层所需的最短时间，只需要找到一个最优的决策，使得上述两拨人中最晚到达的人尽早到达。</P>
<p><br /></P>
<p>即，若设决策后留在电梯里的人全部到达各自楼层需要时间 T1，离开电梯的人全部到达需要时间 T2，则要求的就是 min{
max(T1, T2) }。其中 T1 可由“当前层数+1”和“决策后剩下的人”确定的状态得到；T2
则是下电梯的人中走的最远的那位所花的时间。</P>
<p><br /></P>
<p>按照上述想法很容易列出转移方程。但是“电梯上都有谁”这一参数有 2^n
种取值，整个算法的复杂度因此能到达令人发指的O(m*2^2n)，对于m=31，n=30的数据规模这是不可接受的。</P>
<p><br /></P>
<p>我们需要设法减少需要考虑的状态数目。下面给出两个引理：</P>
<p><br /></P>
<p>1. 电梯决定停在第k层时：要去 1..k 层的人应选择在这时下电梯，这样一定可以得到当前决策下的一个最优解。如图：</P>
<p STYLE="text-align: center;"><a href="http://blog.photo.sina.com.cn/showpic.html#url=http://static1.photo.sina.com.cn/orignal/4a443fd7t78d0b50683d0&amp;690" TARGET="_blank"><img SRC="http://static1.photo.sina.com.cn/bmiddle/4a443fd7t78d0b50683d0&amp;690" STYLE="" /></A></P>
<p>2. 电梯在第k层时，若要去 k+r
层的人选择在这时下电梯，则：要去k+1..k+r-1层的人也应选择在此时下电梯，这样一定可以得到当前决策下的一个最优解。如图：</P>
<p STYLE="text-align: center;"><a href="http://blog.photo.sina.com.cn/showpic.html#url=http://static15.photo.sina.com.cn/orignal/4a443fd7t78d0ccb04c6e&amp;690" TARGET="_blank"><img SRC="http://static15.photo.sina.com.cn/bmiddle/4a443fd7t78d0ccb04c6e&amp;690" STYLE="" /></A></P>
<p>以上两点很容易证明。由这两点可以得到一个很简单但足以解决问题的结论：</P>
<p><br /></P>
<p STYLE="font-weight: bold;">无论电梯停在哪一层，若要去第 k
层的人选择在这时下电梯，则：所有要去低于k层（第1..k-1层）的人也应选择在此时下电梯，这样一定可以得到当前决策下的一个最优解。<span STYLE="font-weight: normal;">如图：</SPAN></P>
<p STYLE="font-weight: bold; text-align: center;"><a href="http://blog.photo.sina.com.cn/showpic.html#url=http://static11.photo.sina.com.cn/orignal/4a443fd7t727b50d32fca&amp;690" TARGET="_blank"><img SRC="http://static11.photo.sina.com.cn/bmiddle/4a443fd7t727b50d32fca&amp;690" STYLE="" /></A></P>
<p STYLE="font-weight: bold;"><br /></P>
<p>也就是说，如果把初始时的 n 名乘客按照各自要去的层数从<span STYLE="font-weight: bold;">高</SPAN>到<span STYLE="font-weight: bold;">低</SPAN>（注意此顺序与输入相反）排列，并依此编号为第 1、2、3...n 个人，第
i 个人要去第 f[i]
层（f[1]&gt;f[2]&gt;...&gt;f[n]），那么可以认为<span STYLE="font-weight: bold;">任意时刻电梯里乘客的编号都是
1, 2,..,x 这样一个连续序列</SPAN>。也就是说，对于电梯里的人我们只需要考虑编号为 1, 2, 3 或 1, 2, 3,
4, 5 这样连续排列的情况，而无需考虑 1, 2, 4（缺3）或2, 3, 4（缺1）这样的情况。</P>
<p STYLE="text-align: center;"><a href="http://blog.photo.sina.com.cn/showpic.html#url=http://static5.photo.sina.com.cn/orignal/4a443fd7t78d102645b94&amp;690" TARGET="_blank"><img SRC="http://static5.photo.sina.com.cn/bmiddle/4a443fd7t78d102645b94&amp;690" STYLE="width: 648px; height: 123px;" /></A></P>
<p>这样一来，每个状态都能由两个数[i,j]来表示：电梯在第i层，电梯里有j个人，即要去楼层最高的第1,2,..,j个人。</P>
<p><br /></P>
<p>下面给出转移方程：</P>
<p><br /></P>
<p>f[i,j]表示电梯在第i层，电梯上有要去楼层最高的j个人时，电梯上的人全部到达各自楼层所需的最短时间</P>
<p>f[i,j] = min{ max(t1, t2) }
(0&lt;=k&lt;=j)</P>
<p>&nbsp;&nbsp; t1 = f[i+1, k] + 电梯停留时间 +
电梯上升一层所用时间</P>
<p>&nbsp;&nbsp; t2 = max{ |d[l] - i| *
人爬一层楼所用时间 } ( k+1&lt;=l&lt;=j )</P>
<p><br /></P>
边界条件、最优解的构造方法以及其它细节问题不再赘述，详见代码。复杂度O(m*n^2)。代码中其实还有优化的空间，但已经是0ms过的，没必要了。<br />

<br />
<font FACE="monospace"><font COLOR="#804040">&nbsp;&nbsp;1</FONT> <font COLOR="#A020F0">#include</FONT> <font COLOR="#FF00FF">&lt;iostream&gt;</FONT><br />
<font COLOR="#804040">&nbsp;&nbsp;2</FONT>
<font COLOR="#804040"><b>using</B></FONT>&nbsp;std::cin;<br />
<font COLOR="#804040">&nbsp;&nbsp;3</FONT>
<font COLOR="#804040"><b>using</B></FONT>&nbsp;std::cout;<br />
<font COLOR="#804040">&nbsp;&nbsp;4</FONT>
<font COLOR="#804040"><b>using</B></FONT>&nbsp;std::endl;<br />
<font COLOR="#804040">&nbsp;&nbsp;5</FONT><br />
<font COLOR="#804040">&nbsp;&nbsp;6</FONT>
<font COLOR="#A020F0">#include</FONT> <font COLOR="#FF00FF">&lt;cstring&gt;</FONT><br />
<font COLOR="#804040">&nbsp;&nbsp;7</FONT>
<font COLOR="#804040"><b>using</B></FONT>&nbsp;std::memset;<br />
<font COLOR="#804040">&nbsp;&nbsp;8</FONT><br />
<font COLOR="#804040">&nbsp;&nbsp;9</FONT>
<font COLOR="#A020F0">#include</FONT> <font COLOR="#FF00FF">&lt;algorithm&gt;</FONT><br />
<font COLOR="#804040">&nbsp;10</FONT> <font COLOR="#804040"><b>using</B></FONT>&nbsp;std::max;<br />
<font COLOR="#804040">&nbsp;11</FONT><br />
<font COLOR="#804040">&nbsp;12</FONT> <font COLOR="#A020F0">#include</FONT> <font COLOR="#FF00FF">&lt;cmath&gt;</FONT><br />
<font COLOR="#804040">&nbsp;13</FONT> <font COLOR="#804040"><b>using</B></FONT>&nbsp;std::abs;<br />
<font COLOR="#804040">&nbsp;14</FONT><br />
<font COLOR="#804040">&nbsp;15</FONT> <font COLOR="#A020F0">#include</FONT> <font COLOR="#FF00FF">&lt;limits&gt;</FONT><br />
<font COLOR="#804040">&nbsp;16</FONT> <font COLOR="#804040"><b>using</B></FONT>&nbsp;std::numeric_limits;<br />

<font COLOR="#804040">&nbsp;17</FONT><br />
<font COLOR="#804040">&nbsp;18</FONT> <font COLOR="#A020F0">#include</FONT> <font COLOR="#FF00FF">&lt;vector&gt;</FONT><br />
<font COLOR="#804040">&nbsp;19</FONT> <font COLOR="#804040"><b>using</B></FONT>&nbsp;std::vector;<br />
<font COLOR="#804040">&nbsp;20</FONT><br />
<font COLOR="#804040">&nbsp;21</FONT> <font COLOR="#2E8B57"><b>const</B></FONT>&nbsp;<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;maxN = <font COLOR="#FF00FF">30</FONT>, maxF = <font COLOR="#FF00FF">31</FONT>;<br />
<font COLOR="#804040">&nbsp;22</FONT> <font COLOR="#2E8B57"><b>const</B></FONT>&nbsp;<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;ve = <font COLOR="#FF00FF">4</FONT>, st = <font COLOR="#FF00FF">10</FONT>, vw =
<font COLOR="#FF00FF">20</FONT>; <font COLOR="#0000FF">//
电梯上一层所需时间；电梯停一层所需时间；人走一层所需时间</FONT><br />
<font COLOR="#804040">&nbsp;23</FONT><br />
<font COLOR="#804040">&nbsp;24</FONT> <font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;n, f[maxN +
<font COLOR="#FF00FF">1</FONT>];<br />
<font COLOR="#804040">&nbsp;25</FONT><br />
<font COLOR="#804040">&nbsp;26</FONT> <font COLOR="#2E8B57"><b>bool</B></FONT>&nbsp;input()<br />
<font COLOR="#804040">&nbsp;27</FONT> {<br />
<font COLOR="#804040">&nbsp;28</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;cin
&gt;&gt; n;<br />
<font COLOR="#804040">&nbsp;29</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>if</B></FONT>&nbsp;(n==<font COLOR="#FF00FF">0</FONT>)
<font COLOR="#804040"><b>return</B></FONT>&nbsp;<font COLOR="#FF00FF">false</FONT>;<br />
<font COLOR="#804040">&nbsp;30</FONT><br />
<font COLOR="#804040">&nbsp;31</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#0000FF">//
注意：f[1..n]中楼层数从高到底排列</FONT><br />
<font COLOR="#804040">&nbsp;32</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>for</B></FONT>&nbsp;(<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;i
= n; i&gt;=<font COLOR="#FF00FF">1</FONT>; --i)<br />
<font COLOR="#804040">&nbsp;33</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin
&gt;&gt; f[i];<br />
<font COLOR="#804040">&nbsp;34</FONT><br />
<font COLOR="#804040">&nbsp;35</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>return</B></FONT>&nbsp;<font COLOR="#FF00FF">true</FONT>;<br />

<font COLOR="#804040">&nbsp;36</FONT> }<br />
<font COLOR="#804040">&nbsp;37</FONT><br />
<font COLOR="#804040">&nbsp;38</FONT> <font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;dp[maxF + <font COLOR="#FF00FF">1</FONT>][maxN + <font COLOR="#FF00FF">1</FONT>],
nextJ[maxF + <font COLOR="#FF00FF">1</FONT>][maxN + <font COLOR="#FF00FF">1</FONT>];<br />
<font COLOR="#804040">&nbsp;39</FONT><br />
<font COLOR="#804040">&nbsp;40</FONT> <font COLOR="#0000FF">// 现在电梯在第currF层，第L到第R人离开电梯</FONT><br />
<font COLOR="#804040">&nbsp;41</FONT> <font COLOR="#0000FF">// 函数返回这些离开电梯的人中最晚到达目的楼层所需的时间</FONT><br />
<font COLOR="#804040">&nbsp;42</FONT> <font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;tLeave(<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;currF, <font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;l, <font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;r)<br />
<font COLOR="#804040">&nbsp;43</FONT> {<br />
<font COLOR="#804040">&nbsp;44</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>if</B></FONT>&nbsp;(l&gt;r)&nbsp;&nbsp;<font COLOR="#804040"><b>return</B></FONT>&nbsp;<font COLOR="#FF00FF">0</FONT>;<br />

<font COLOR="#804040">&nbsp;45</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#0000FF">//
仅需考虑两端</FONT><br />
<font COLOR="#804040">&nbsp;46</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>return</B></FONT>&nbsp;max(abs(currF-f[l]),
abs(currF-f[r])) * vw;<br />
<font COLOR="#804040">&nbsp;47</FONT> }<br />
<font COLOR="#804040">&nbsp;48</FONT><br />
<font COLOR="#804040">&nbsp;49</FONT> <font COLOR="#0000FF">// 现在电梯在第i层，电梯里本来有j个人，在要下电梯的人离开后还剩jj个人</FONT><br />
<font COLOR="#804040">&nbsp;50</FONT> <font COLOR="#0000FF">// 函数返回这些留在电梯里的人中最晚到达目的楼层所需的时间</FONT><br />
<font COLOR="#804040">&nbsp;51</FONT> <font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;tStay(<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;i, <font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;j, <font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;jj)<br />
<font COLOR="#804040">&nbsp;52</FONT> {<br />
<font COLOR="#804040">&nbsp;53</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#0000FF">//
没人下电梯</FONT><br />
<font COLOR="#804040">&nbsp;54</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>if</B></FONT>&nbsp;(j==jj)<br />

<font COLOR="#804040">&nbsp;55</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>return</B></FONT>&nbsp;dp[i+<font COLOR="#FF00FF">1</FONT>][jj]
+ ve;<br />
<font COLOR="#804040">&nbsp;56</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#0000FF">//
所有人都离开电梯</FONT><br />
<font COLOR="#804040">&nbsp;57</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>else</B></FONT>&nbsp;<font COLOR="#804040"><b>if</B></FONT>&nbsp;(jj==<font COLOR="#FF00FF">0</FONT>)<br />

<font COLOR="#804040">&nbsp;58</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>return</B></FONT>&nbsp;<font COLOR="#FF00FF">0</FONT>;<br />

<font COLOR="#804040">&nbsp;59</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#0000FF">//
第1层不计算电梯停留时间</FONT><br />
<font COLOR="#804040">&nbsp;60</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>else</B></FONT>&nbsp;<font COLOR="#804040"><b>if</B></FONT>&nbsp;(i==<font COLOR="#FF00FF">1</FONT>)<br />

<font COLOR="#804040">&nbsp;61</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>return</B></FONT>&nbsp;dp[i+<font COLOR="#FF00FF">1</FONT>][jj]
+ ve;<br />
<font COLOR="#804040">&nbsp;62</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#0000FF">//普通情况</FONT><br />

<font COLOR="#804040">&nbsp;63</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>else</B></FONT><br />

<font COLOR="#804040">&nbsp;64</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>return</B></FONT>&nbsp;dp[i+<font COLOR="#FF00FF">1</FONT>][jj]
+ ve + st;<br />
<font COLOR="#804040">&nbsp;65</FONT> }<br />
<font COLOR="#804040">&nbsp;66</FONT><br />
<font COLOR="#804040">&nbsp;67</FONT> <font COLOR="#2E8B57"><b>void</B></FONT>&nbsp;calculate()<br />
<font COLOR="#804040">&nbsp;68</FONT> {<br />
<font COLOR="#804040">&nbsp;69</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#0000FF">//
边界：电梯在顶楼时所有人都必须下电梯</FONT><br />
<font COLOR="#804040">&nbsp;70</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;topFloor
= f[<font COLOR="#FF00FF">1</FONT>];<br />
<font COLOR="#804040">&nbsp;71</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>for</B></FONT>&nbsp;(<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;j
= <font COLOR="#FF00FF">1</FONT>; j&lt;=n; ++j)<br />
<font COLOR="#804040">&nbsp;72</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[topFloor][j]
= tLeave(topFloor,<font COLOR="#FF00FF">1</FONT>,j);<br />
<font COLOR="#804040">&nbsp;73</FONT><br />
<font COLOR="#804040">&nbsp;74</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>for</B></FONT>&nbsp;(<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;i
= topFloor - <font COLOR="#FF00FF">1</FONT>;
i&gt;=<font COLOR="#FF00FF">1</FONT>; --i)<br />
<font COLOR="#804040">&nbsp;75</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>for</B></FONT>&nbsp;(<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;j
= <font COLOR="#FF00FF">1</FONT>; j&lt;=n; ++j)<br />
<font COLOR="#804040">&nbsp;76</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />

<font COLOR="#804040">&nbsp;77</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[i][j]
= numeric_limits&lt;<font COLOR="#2E8B57"><b>int</B></FONT>&gt;::max();<br />
<font COLOR="#804040">&nbsp;78</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>for</B></FONT>&nbsp;(<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;jj
= <font COLOR="#FF00FF">0</FONT>; jj &lt;= j;
++jj)<br />
<font COLOR="#804040">&nbsp;79</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />

<font COLOR="#804040">&nbsp;80</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#0000FF">//
取离开电梯的人和留下的人中的最晚到达者</FONT><br />
<font COLOR="#804040">&nbsp;81</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;tmp
= max(tStay(i,j,jj),tLeave(i,jj+<font COLOR="#FF00FF">1</FONT>,j));<br />
<font COLOR="#804040">&nbsp;82</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>if</B></FONT>&nbsp;(dp[i][j]
&gt; tmp)<br />
<font COLOR="#804040">&nbsp;83</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />

<font COLOR="#804040">&nbsp;84</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[i][j]
= tmp;<br />
<font COLOR="#804040">&nbsp;85</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nextJ[i][j]
= jj;<br />
<font COLOR="#804040">&nbsp;86</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

<font COLOR="#804040">&nbsp;87</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

<font COLOR="#804040">&nbsp;88</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

<font COLOR="#804040">&nbsp;89</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;cout
&lt;&lt; dp[<font COLOR="#FF00FF">1</FONT>][n] &lt;&lt; endl;<br />
<font COLOR="#804040">&nbsp;90</FONT> }<br />
<font COLOR="#804040">&nbsp;91</FONT><br />
<font COLOR="#804040">&nbsp;92</FONT> <font COLOR="#2E8B57"><b>void</B></FONT>&nbsp;rebuildSolution()<br />

<font COLOR="#804040">&nbsp;93</FONT> {<br />
<font COLOR="#804040">&nbsp;94</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;vector&lt;<font COLOR="#2E8B57"><b>int</B></FONT>&gt;
stops;<br />
<font COLOR="#804040">&nbsp;95</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;j
= nextJ[<font COLOR="#FF00FF">1</FONT>][n], topFloor =
f[<font COLOR="#FF00FF">1</FONT>];<br />
<font COLOR="#804040">&nbsp;96</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>for</B></FONT>&nbsp;(<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;i
= <font COLOR="#FF00FF">2</FONT>; i&lt;=topFloor;
++i)<br />
<font COLOR="#804040">&nbsp;97</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>if</B></FONT>&nbsp;(nextJ[i][j]!=j)<br />

<font COLOR="#804040">&nbsp;98</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />

<font COLOR="#804040">&nbsp;99</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stops.push_back(i);<br />

<font COLOR="#804040">100</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j
= nextJ[i][j];<br />
<font COLOR="#804040">101</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>if</B></FONT>&nbsp;(j==<font COLOR="#FF00FF">0</FONT>)
<font COLOR="#804040"><b>break</B></FONT>;<br />
<font COLOR="#804040">102</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

<font COLOR="#804040">103</FONT><br />
<font COLOR="#804040">104</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;cout
&lt;&lt; stops.size();<br />
<font COLOR="#804040">105</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>for</B></FONT>&nbsp;(<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;i
= <font COLOR="#FF00FF">0</FONT>; i!=stops.size(); ++i)<br />
<font COLOR="#804040">106</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout
&lt;&lt; <font COLOR="#FF00FF">'
'</FONT>&nbsp;&lt;&lt;
stops[i];<br />
<font COLOR="#804040">107</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;cout
&lt;&lt; endl;<br />
<font COLOR="#804040">108</FONT> }<br />
<font COLOR="#804040">109</FONT><br />
<font COLOR="#804040">110</FONT> <font COLOR="#2E8B57"><b>void</B></FONT>&nbsp;solve()<br />
<font COLOR="#804040">111</FONT> {<br />
<font COLOR="#804040">112</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;memset(dp,<font COLOR="#FF00FF">0</FONT>,<font COLOR="#804040"><b>sizeof</B></FONT>(dp));<br />

<font COLOR="#804040">113</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;memset(nextJ,<font COLOR="#FF00FF">0</FONT>,<font COLOR="#804040"><b>sizeof</B></FONT>(nextJ));<br />

<font COLOR="#804040">114</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;calculate();<br />

<font COLOR="#804040">115</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;rebuildSolution();<br />

<font COLOR="#804040">116</FONT> }<br />
<font COLOR="#804040">117</FONT><br />
<font COLOR="#804040">118</FONT> <font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;main()<br />
<font COLOR="#804040">119</FONT> {<br />
<font COLOR="#804040">120</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>while</B></FONT>&nbsp;(input())<br />

<font COLOR="#804040">121</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;solve();<br />

<font COLOR="#804040">122</FONT> }<br /></FONT>]]></description>
            <author>逆铭</author>
            <category>新长征路上的代码</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100gaqh.html#comment</comments>
            <pubDate>Fri, 20 Nov 2009 16:33:17 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100gaqh.html</guid>
        </item>
        <item>
            <title>Le Matin by Yann Tiersen (Yamaha DGX-620)</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100f7gf.html</link>
            <description><![CDATA[<object HEIGHT="363" WIDTH="420"><param NAME="movie" VALUE="http://www.tudou.com/v/LvLqQWxslao" />
<param NAME="allowFullScreen" VALUE="true" />
<param NAME="allowscriptaccess" VALUE="always" />
<param NAME="wmode" VALUE="opaque" />
<embed SRC="http://www.tudou.com/v/LvLqQWxslao" TYPE="application/x-shockwave-flash" ALLOWSCRIPTACCESS="samedomain" ALLOWFULLSCREEN="true" WMODE="opaque" HEIGHT="363" WIDTH="420"></EMBED><a HREF="http://www.tudou.com/v/LvLqQWxslao"></A><a STYLE="left: 34px ! important; top: 34px ! important;" TITLE="点击这里使 Adblock Plus 过滤该对象" HREF="http://www.tudou.com/v/LvLqQWxslao"></A></OBJECT>
<p><br /></P>
<p>拿本本的摄像头录的，同步有点问题不想调了= = 能弹成这样我很满意了恩~<br /></P>
<p><br /></P>
<p>p.s. 使用了强大的开源视频处理软件 <a HREF="http://www.virtualdub.org/" TARGET="_blank">VirtualDub</A> 进行视频捕获和剪辑，欢迎猛击链接到其主页围观。</P>]]></description>
            <author>逆铭</author>
            <category>Music maks me talk</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100f7gf.html#comment</comments>
            <pubDate>Tue, 08 Sep 2009 10:00:01 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100f7gf.html</guid>
        </item>
        <item>
            <title>读取RFC822格式日期时间的类[C#]</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100etgm.html</link>
            <description><![CDATA[<div STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static4.photo.sina.com.cn/orignal/4a443fd7x70b4b70a53f3&amp;690" TARGET="_blank"><img SRC="http://static4.photo.sina.com.cn/bmiddle/4a443fd7x70b4b70a53f3&amp;690" STYLE="" /></A><br /></DIV>
<br />
比较无法理解为什么 .NET 类库里面没有提供足够对<a HREF="http://www.w3.org/Protocols/rfc822/#z28" TARGET="_blank">RFC822格式日期时间</A>的支持。网上有人实现，但是都不太让人满意。比较囧的是，关于单字母表示时区，好几个实现都只考虑了
Z、A、M、N、Y 五个 spec 里直接列出的字母……我在用的 Argotic 也是这样。所以就自己实现了一个
parser，然后修改 Argotic 的代码直接用它。<br />
<br />
点<a HREF="http://podcat.sourceforge.net/Rfc822DateTimeParser.zip" TARGET="_blank">这里</A>下载源代码及其单元测试。需要的话就拿去吧，lgpl。<br />
<br />
我实现的时候相比严格的 spec 又放宽了一些，比如允许小时、分钟、秒只有一位数字（spec
要求必须两位），允许不指定时区，允许用四位数字表示年份（这个是 rss 的 spec
要求的），允许只指定日期不指定时间。如果你觉着不爽就自己改改吧，看代码就知道非常好改（就在“Set Format Strings”那个
region 里）。<br />
<br />
欢迎报告bug。<br />]]></description>
            <author>逆铭</author>
            <category>新长征路上的代码</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100etgm.html#comment</comments>
            <pubDate>Sun, 09 Aug 2009 12:06:31 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100etgm.html</guid>
        </item>
        <item>
            <title>使用新英文ID：Typocolder</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100eft0.html</link>
            <description><![CDATA[<a href="http://blog.photo.sina.com.cn/showpic.html#url=http://static1.photo.sina.com.cn/orignal/4a443fd7x72d0d95a0470&amp;690" TARGET="_blank"><img SRC="http://static1.photo.sina.com.cn/bmiddle/4a443fd7x72d0d95a0470&amp;690" STYLE="" /></A><br />
rt。之前需要用E文ID的时候一直是使用tomtung，近似于直接使用姓名当ID，比较不爽。刚想了这个比较冷的ID，以后在国外论坛里和需要使用英文字符组成的ID时就用它了。<br />

<br />
希周知。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />

p.s.虽然我觉得没太多必要解释这个名字的含义，但……还是解释一下吧：<br />
[TopCoder] -(囧一下)→ [TypoCoder] -(自我指涉一下)→ [TypoColder]<br />
很清楚了吧。。。<br />
<br />]]></description>
            <author>逆铭</author>
            <category>生活在此处</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100eft0.html#comment</comments>
            <pubDate>Sat, 11 Jul 2009 13:11:01 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100eft0.html</guid>
        </item>
        <item>
            <title>敏捷开发学习笔记（思维导图）</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100ecrx.html</link>
            <description><![CDATA[终于看完了《<a HREF="http://www.douban.com/subject/1815898/" TARGET="_blank">Agile Principles, Patterns, and Practices in
C#</A>》的第一个Section，上学期间读这些书的进度还真不是一般的慢……第一次尝试用<a HREF="http://en.wikipedia.org/wiki/Mindmap" TARGET="_blank">MindMap</A>做笔记，感觉不错，不过效率还是不够高。<a HREF="http://www.jiangtianzheng.com/" TARGET="_blank">老蒋</A>说我笔记做得太详尽了，像抄书...反思中。<br />
<br />
篇幅所限，书中还是有很多内容不够深入。一些内容需要另一本书的篇幅深入讨论（如重构），甚至需要看一本书才能从纸上谈兵转到实践（如TDD、Acceptance
Tests）。。。望不到头的书单啊T_T<br />
<br />
做笔记使用的工具是 <a HREF="http://www.xmind.net/" TARGET="_blank">XMind</A>。下面是整体结构：<br />
<br />
<div STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static1.photo.sina.com.cn/orignal/4a443fd7t6ddea6efff00&amp;690" TARGET="_blank"><img SRC="http://static1.photo.sina.com.cn/bmiddle/4a443fd7t6ddea6efff00&amp;690" STYLE="" /></A><br /></DIV>
<br />
由于XMind不支持导出到flash，所以只好上一张巨图了（如果支持导出到flash我就完全找不到使用Freemind的理由了）<br />

<br />
<div STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static8.photo.sina.com.cn/orignal/4a443fd7t6ddeadb236d7&amp;690" TARGET="_blank"><img SRC="http://static8.photo.sina.com.cn/bmiddle/4a443fd7t6ddeadb236d7&amp;690" STYLE="" /></A><br />
（点击放大）<br /></DIV>
<br />
导图文件可以到<a HREF="http://share.xmind.net/tomtung/xmind-362366/" TARGET="_blank">此</A>下载，不过需要用XMind打开。<br />
http://share.xmind.net/tomtung/xmind-362366/<br />]]></description>
            <author>逆铭</author>
            <category>新长征路上的代码</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100ecrx.html#comment</comments>
            <pubDate>Sat, 04 Jul 2009 10:06:18 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100ecrx.html</guid>
        </item>
        <item>
            <title>Wordfilter Test</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100dyok.html</link>
            <description><![CDATA[今年我就要<font STYLE="font-size: 24px; color: rgb(153, 0, 0);">20</FONT>岁啦~~~是不是再过不了六一儿童节了捏？555……<br />

<br />
BGM:<br />
<embed AllowScriptAccess="samedomain"  SRC="http://www.8box.cn/feed/000000_s_543306_/mini.swf" TYPE="application/x-shockwave-flash" WMODE="transparent" HEIGHT="32" WIDTH="160"></EMBED>]]></description>
            <author>逆铭</author>
            <category>杂的扯</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100dyok.html#comment</comments>
            <pubDate>Wed, 03 Jun 2009 16:01:52 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100dyok.html</guid>
        </item>
        <item>
            <title>Grass Mud Horse</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100d75i.html</link>
            <description><![CDATA[<p>我们口语课结课，要求imagine一个产品，然后做presentation和tv
commercial。然后我们就很恶趣味同时很正经地做了Grass Mud Horse。下面是幻灯片~_~</P>
<p>&nbsp;</P>
<p>(特别说明，那个Logo是PS大牛<a HREF="http://blog.sina.com.cn/maundytime" TARGET="_blank">Catt</A>同学搞的)</P>
<p>&nbsp;</P>
<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static8.photo.sina.com.cn/orignal/4a443fd7t670c9c928f97" TARGET="_blank"><img STYLE="MAX-WIDTH: 500px" SRC="http://static8.photo.sina.com.cn/bmiddle/4a443fd7t670c9c928f97" /></A></P>
<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static3.photo.sina.com.cn/orignal/4a443fd7t670c9ea8ac02" TARGET="_blank"><img STYLE="MAX-WIDTH: 500px" SRC="http://static3.photo.sina.com.cn/bmiddle/4a443fd7t670c9ea8ac02" /></A></P>
<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static16.photo.sina.com.cn/orignal/4a443fd7t670ca0f15d1f" TARGET="_blank"><img STYLE="MAX-WIDTH: 500px" SRC="http://static16.photo.sina.com.cn/bmiddle/4a443fd7t670ca0f15d1f" /></A></P>
<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static14.photo.sina.com.cn/orignal/4a443fd7t670ca323f49d" TARGET="_blank"><img STYLE="MAX-WIDTH: 500px" SRC="http://static14.photo.sina.com.cn/bmiddle/4a443fd7t670ca323f49d" /></A></P>
<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static6.photo.sina.com.cn/orignal/4a443fd7t70b476f79775" TARGET="_blank"><img STYLE="MAX-WIDTH: 500px" SRC="http://static6.photo.sina.com.cn/bmiddle/4a443fd7t70b476f79775" /></A></P>
<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static1.photo.sina.com.cn/orignal/4a443fd7t670ca7d1d260" TARGET="_blank"><img STYLE="MAX-WIDTH: 500px" SRC="http://static1.photo.sina.com.cn/bmiddle/4a443fd7t670ca7d1d260" /></A></P>
<p ALIGN="left">
关于这个GMH这个诡异的名字，我们是这么和外教解释的：吃进去的是Grass，X出来的是Mud，多么Eco-friendly啊~~~~</P>
<p ALIGN="left">&nbsp;</P>
<p ALIGN="left">……好吧，是有点冷，我只是不知道该更新什么了就发这个上来凑数，恩。</P>
<p ALIGN="left">&nbsp;</P>
<p ALIGN="left">
P.S.今天最后一次口语课，才注意到我们班竟然有个叫Dick的…………………………这说明什么呢？</P>
<p ALIGN="left">说明，我不但词汇量小，知道的单词也想不起来- -</P>]]></description>
            <author>逆铭</author>
            <category>生活在此处</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100d75i.html#comment</comments>
            <pubDate>Wed, 08 Apr 2009 14:34:51 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100d75i.html</guid>
        </item>
        <item>
            <title>Tagged by 音符（回学姐点名）</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100d2mq.html</link>
            <description><![CDATA[<p STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static9.photo.sina.com.cn/orignal/4a443fd7t6644b5f69208" TARGET="_blank"><img SRC="http://static9.photo.sina.com.cn/bmiddle/4a443fd7t6644b5f69208" STYLE="" /></A></P>
<p>游戏规则如下：</P>
<p>當你給人tag了，就要寫一篇note，內含16項有關你的事情，習慣，喜好，目標....或任何各不相干但有關你的東西。</P>
<p>最後tag另外16個人。你必須tag回原先tag你的那個人。</P>
<p>如果我tag你，即是我想認識你更深。</P>
<p><br /></P>
<p>Tag from <a HREF="http://www.douban.com/note/28155611/" TARGET="_blank">here</A>.</P>
<p><br /></P>
<p>
-------------------------------------------------------------------------------------<br />
</P>
5.17更新：<br />
偷懒，以此同一篇再回我系hwl母牛tag……由于tag来自校内，出于隐私考虑不做回链。这次也不再tag别人。<br />
<br />
和普通点名游戏相比还是tag好啊，写一次一劳永逸。。。XD<br />
<p>
-------------------------------------------------------------------------------------</P>
<p><br /></P>
<p>
学姐点了我一个月了，期间我总是干这干那，没有干多少正经事但是总是没回复。。。再不回复我自己都要忘掉，也实在是不好意思了。貌似曾经有人点过我，然后我拖了好久都忘记是谁点的了-
- 抱歉抱歉……</P>
<p>上面游戏说明里“tag”的意思不是很理解，这里就当成一般点名游戏玩好了。<br /></P>
<p>下面是16项（好多啊）：<br /></P>
<p>1. 音乐。</P>
<p>
从第一次听一盘贝三磁带到现在，五年来音乐是我最忠实的陪伴。不管做什么事，只要有机会，总是让音乐在一旁一直一直响着。瘦弱优雅的肖邦，机敏狡黠的海顿，歇斯底里的老柴，斗争了几百年的小贝，还有为上帝谱曲(并生下20个孩子)的巴赫，每个阶段的心理状态也都反映在我听的唱片上。我豆瓣的“读过”和“看过”很少更新，“在听”和“听过”却始终保持着相当的更新速度。在匆忙的追赶中，能有音乐相伴，幸甚至哉。</P>
<p>2. 计算机</P>
<p>
从瞎玩家里那台破烂586，到买电脑杂志看，到成为OIer，到现在进入这个专业，我一直都花费大量时间待在显示器前面。我想称自己为Geek，但是总是心虚，因为，厄——</P>
<p>3. 数学</P>
<p>
因为我对数学一直没有感觉。似乎一个总是仅在需要时才学数学，总是担心数学成绩的人是没有资格被称为Geek的……我还在想，期中考试高数该怎么办啊
&gt;_&lt;</P>
<p>4. 互联网</P>
<p>
从拨号时代一直混到现在，也算是老网民了吧。可以连续一个多星期不关机挂电骡、每天花费时间上网阅读、不定期更新blog和饭否、要买什么东西第一反应就是淘宝京东卓越当当……我这么大网瘾肯定要被诊断成精神病的。</P>
<p>(milestone: 1/4)<br /></P>
<p>5. 无线电静默</P>
<p>
很长一段时间不更新blog了，饭否更新频率较低，开机没事也不会习惯性打开qq和msn。我曾经给别人说要联系我上网可能比用手机还快，但现在恐怕不是这样了。渐渐地很少发出信息，浏览器往往也仅用于浏览。这个是否是——</P>
<p>6. 自闭倾向</P>
<p>
假期和初中同学、小学同学聚会时，总是走神，如果不刻意努力也不主动加入交谈。这是因为对他们有些生疏了，还是我待在自己的世界太久了？</P>
<p>对人际上花的时间精力越来越少，只是埋头赶路。觉得“一切源于你不够强”（荣耀归于<a HREF="http://blog.jiangtianzheng.com/aboutme/" TARGET="_blank">蒋天正</A>），变强以后一切问题都会解决。显然，我并没有变多强，问题也都还摆在这里。我也知道，就算变强了，问题也不见得能解决多少。也许仅仅是借“变强”这个遥远的目标逃避眼前的问题吧。<br />
</P>
<p>7. 颓废</P>
<p>虽然一切按部就班，但整体状态不佳。做<a HREF="http://www.monkeyquiz.com/life/rate_my_life.html" TARGET="_blank">生活评估</A>，结果各项均低于平均值，让人很闷。其实，状态不佳的一部分原因就是——</P>
<p>8. 熬夜</P>
<p>我狠好奇他们在临床上管我这种有事没事就喜欢瞎熬夜的人叫什么。熬夜是个恶性循环，我在尽力调整。</P>
<p>(milestone: 1/2)</P>
<p>9. MM</P>
<p>
对MM不抱幻想但时刻保持警觉，这是一个北航男的基本素养。其实看淡了也就无所谓了。也许是曾经空转了许久的感情之轮透支了热情吧，现在每天想到的也只是作业啊书啊碟啊，无他。偶尔遇到寂寞，我们是老朋友了。待到2011年11月11日，我一定与诸位同庆百年一遇的大光棍节。</P>
<p>10. 科幻</P>
<p>科幻读得并不很多。曾经一期不落的《科幻世界》不知不觉中竟然也连着三个月没看了。不管怎么样，我都还称自己为科幻爱好者。</P>
<p>11. 不可知论者</P>
<p>我是。</P>
<p>12. 当断不断</P>
<p>我的性格弱点。自然常受其乱。</P>
<p>(milestone: 3/4)</P>
<p>13. 口琴</P>
<p>有在o2mania上yy的时间不如多吹吹我那把半音阶吧……现在在练巴赫的g弦上的咏叹调。</P>
<p>14. 不记人</P>
<p>
一般要见过两次以上才能在大街上认出一个人，且正确率不高。如果认识我的同学看到我迎面走来却没打招呼，请一定谅解，因为我肯定是害怕认错人
&gt;_&lt;</P>
<p>15. 宽容</P>
<p>至少我觉得我是宽容的。很少有谁做了什么事能让我耿耿于怀。<br /></P>
<p>
但反过来自己做了什么影响双方关系的事有时就会很不安，尤其是会影响对方看待自己方式的事。即使理性地看事并不大，也会纠结很久。这种心理现象我也觉得很奇怪。难道是虚荣么？还是——</P>
<p>16. 得过且过的完美主义</P>
<p>
在很多事情上我都得过且过，混个差不多就行，但有时又会表现出“要么全有要么全无”的完美主义倾向。现在心智成熟一些以后可能已经好一些了(真的好很多很多了-
-)，小时候对于受到损坏的东西总是倾向于直接丢弃。反映在人际关系上，对于被伤害的关系，不是积极修补而是消极放弃。这也算是一个弱点。</P>
<p><br /></P>
<p><br /></P>
<p>终于凑够了16条（又一次熬夜，明天高数不去了- -）。感谢学姐点我，提供给我一个难得的更新blog的机会……<br /></P>
<p>赶紧睡觉去，不点别人了。。<br /></P>
<p>&nbsp;</P>]]></description>
            <author>逆铭</author>
            <category>生活在此处</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100d2mq.html#comment</comments>
            <pubDate>Sun, 29 Mar 2009 16:07:39 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100d2mq.html</guid>
        </item>
        <item>
            <title>[BHOJ10235] 窗口取数</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100d21o.html</link>
            <description><![CDATA[<h2 STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static16.photo.sina.com.cn/orignal/4a443fd7t6631d60ba82f" TARGET="_blank"><img SRC="http://static16.photo.sina.com.cn/bmiddle/4a443fd7t6631d60ba82f" STYLE="" /></A></H2>
<h2 STYLE="text-align: center;">窗口（超级版）</H2>
<div STYLE="text-align: center;"></DIV>
<div>
<div STYLE="text-align: center;"></DIV>
<div STYLE="text-align: center;"><font COLOR="">时间限制:</FONT>5000 ms
&nbsp; <font COLOR="">内存限制:</FONT>65535 KB</DIV>
</DIV>
<div STYLE="text-align: left;">
<h4>描述</H4>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">有一串整数在排队……</SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">有</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">N</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">个整数，你有一个可以框住</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">M</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">个连续段整数的木框，现在你想知道，对于这个队列中任意的连续</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">M</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">个整数，最大和最小的整数是哪个？</SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">例：(</SPAN></SPAN><span STYLE="font-size: small;"><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">M</SPAN></SPAN></SPAN><span STYLE="font-size: small;"><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">大小的窗口向右滑动)</SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="font-family: Calibri;"><span STYLE="color: rgb(0, 0, 0);">1 2 3 2
1<span STYLE="">&nbsp;&nbsp;</SPAN>
M=2</SPAN></SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="font-family: Calibri;"><span STYLE="color: rgb(0, 0, 0);">1
2<span STYLE="">&nbsp;&nbsp;&nbsp;</SPAN>
MAX 2<span STYLE="">&nbsp;</SPAN> MIN
1</SPAN></SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="font-family: Calibri;"><span STYLE="color: rgb(0, 0, 0);">2
3<span STYLE="">&nbsp;&nbsp;&nbsp;</SPAN>
MAX 3<span STYLE="">&nbsp;</SPAN> MIN
2</SPAN></SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="font-family: Calibri;"><span STYLE="color: rgb(0, 0, 0);">3
2<span STYLE="">&nbsp;&nbsp;&nbsp;</SPAN>
MAX 3<span STYLE="">&nbsp;</SPAN> MIN
2</SPAN></SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="font-family: Calibri;"><span STYLE="color: rgb(0, 0, 0);">2
1<span STYLE="">&nbsp;&nbsp;&nbsp;</SPAN>
MAX 2<span STYLE="">&nbsp;</SPAN> MIN
1</SPAN></SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">最后需要输出的是两行：</SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-size: small;"><span STYLE="font-family: Calibri;">1 2 2 1</SPAN></SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-size: small; font-family: Calibri;">2 3 3 2</SPAN></SPAN></P>
<h4>输入</H4>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">第一行包含一个整数</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">T</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">，表示有</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">T</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">组测试数据；</SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">以下每组测试数据格式：</SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">第一行包含</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">2</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">个整数</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">N,M</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">表示有</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">N</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">个整数在排队，取连续</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">M</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">个整数。</SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">第二行包含</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">N</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">个整数。</SPAN></SPAN></P>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">其中</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">N</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">不大于</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">1,000,000</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">，</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">M</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">不大于</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">N</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">。</SPAN></SPAN></P>
<h4>输出</H4>
<p STYLE="margin: 0cm 0cm 0pt;"><span STYLE="font-size: small;"><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">按照题目描述格式输出结果，第一行为</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">MIN</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">，第二行为</SPAN><span STYLE="color: rgb(0, 0, 0);"><span STYLE="font-family: Calibri;">MAX</SPAN></SPAN><span STYLE="color: rgb(0, 0, 0); font-family: 宋体;">。</SPAN></SPAN></P>
<h4>样例输入</H4>
<div>1&nbsp;<br />
5&nbsp;2&nbsp;<br />
1&nbsp;2&nbsp;3&nbsp;2&nbsp;1&nbsp;<br />
</DIV>
<h4>样例输出</H4>
<div>
1&nbsp;2&nbsp;2&nbsp;1&nbsp;<br />

2&nbsp;3&nbsp;3&nbsp;2<br /></DIV>
<h4>提示</H4>
注意数据规模！
<h4>问题来源</H4>
软件学院07级数据结构第二次测<br />
<br />
<h4>题解</H4>
很久不考虑算法问题了的说……当然也好久不写解题报告了。上面这题让我体会到久违了的思考的乐趣（i.e.我废掉好久了&gt;_&lt;）<br />

<br />
最显然的解法是利用平衡树始终保持木框内M个数的有序状态，大体是O(NlogM)的复杂度。这个不用多说。<br />
<br />
问题是：<span STYLE="font-weight: bold;">能否找到O(N)的解法？</SPAN>在读下去之前你可以好好想想。<br />
<br />
我纠结了好久，终于……也没想出来- - 尽管想出很多优化，终究还是不能达到要求。网上搜了下，看到 <a HREF="#SinaEditor_Temp_FontName" TARGET="_blank"><s>CS大牛</S>csdn</A>
上有人给出了一个解法（你也可以在读完全文后再回头看这一段）：<br />
<br />
------------------------------------------------------------------------------------<br />

- 是可以到o(n);<br />
-<br />
- 编程之美上有一个类似的问题:"队列中取最大值操作问题";<br />
- 实际上窗口移动就相当于对队列做了一次出队与入队操作，所以lz这道题可以套用该解法；<br />
-<br />
- 书上是使用两个栈来模拟队列，假设为分别A,B;<br />
- 1)当入队的时候，push A；<br />
- 2)当出队的时候,<br />
- &nbsp; a)若B非空,pop B,<br />
- &nbsp; b)若B为空，则先将A中的元素依次pop并push到B,再pop B;<br />
- 这样,就使用两个栈达到了队列的功能;<br />
-<br />
- 同时,对于单个栈，由于pop,push都是在栈顶进行的，所以每个栈都可以方便地维护自己的最<br />
- 大值与最小值在栈内的索引；<br />
- 以最大值为例；<br />
- 用max_idx保存栈内最大值的索引;<br />
- 另使用一个跟栈的最大长度一样的数组idx,idx[i]表示栈的索引范围在0到i-1的元素中的最<br />
- 大值的索引为idx[i];<br />
- 1) 当push的时候，比较栈顶元素与栈的已保存的最大值，<br />
- &nbsp; a) 若栈顶元素大于
已保存的最大值,那么idx[top]=max_idx,max_idx=top;<br />
- &nbsp; b) 若栈顶元素不大于
已保存的最大值,那么idx[top]=max_idx(书上是idx[top]=-1);<br />
- 2)
当pop的时候，max_idx=idx[top](书上是先比较top与max_idx，若top==max_idx,则<br />
- &nbsp;&nbsp; max_idx=idx[top]);<br />
-<br />
-<br />
- 具体到这个题目；<br />
- 可以使用两个长度为m的栈来模拟窗口；<br />
- 1)将前m个元素依次push到栈A;<br />
- 2)移动窗口就相当于分别进行pop B　与　push A操作;<br />
- 3) 窗口的最大值==max[A.items[A.max_idx]),B.items[B.max_idx])]；<br />
-<br />
- 由于每个元素最多进入两栈各一次；<br />
- 所以总的复杂度是o(n)的;<br />
------------------------------------------------------------------------------------<br />

<br />
这个解法的确可行，但描述仍不直观。为什么两个栈暧昧地眉来眼去一番，就在O(N)时间内把问题解决了呢？褪去实现上的种种细节，从更高的角度观察这个算法，它的思路是怎么样的呢？<br />

<br />
和冬冬讨论了半天，似乎找到了一个比较靠近此算法根本动机的理解方向。如下：<br />
<br />
一、简化<br />
<br />
此问题中，框的左端和右端同时在向右移动。这时，要在任意时刻用O(1)的时间获得框内最小值（最大值同理，故仅以最小值为例）并不容易。但是，如果假设这个框是可伸缩的，将其一端固定，仅移动另外一端，任意时刻能否在O(1)的时间内获得最小值呢？<br />

<br />
稍加思考，就发现要找到这样的算法是很容易的（事实上在我最初考虑时，就是试图在这样一个算法的基础上进行优化的）。<br />
<br />
假如这个框是左端固定，右端不断向右移动的（称之为<span STYLE="text-decoration: underline;">左定右动框</SPAN>）。对于框内的每个数，有一个对应指针指向框内它左边（包括自身）所有数中最小者。这样，框内最小值就是框内最右端元素对应的指针所指向的元素。如在下图中，最小元素就是右端7对应指针所指向的元素6。<br />

<div STYLE="text-align: center;"><br />
<a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static16.photo.sina.com.cn/orignal/4a443fd7t6628495fc16f" TARGET="_blank"><img SRC="http://static16.photo.sina.com.cn/bmiddle/4a443fd7t6628495fc16f" STYLE="" /></A><br />
min = 6<br />
<br /></DIV>
当框的右端向右扩展时，可以通过递推获得新元素对应指针应指向的元素。以上图为例。加入2时，由7对应的指针可知原框中最小值为6，而6&gt;2，所以新元素2对应的指针应指向自己。<br />

<br />
<div STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static5.photo.sina.com.cn/orignal/4a443fd7t6628674a9104" TARGET="_blank"><img SRC="http://static5.photo.sina.com.cn/bmiddle/4a443fd7t6628674a9104" STYLE="" /></A><br />
min = 2<br /></DIV>
<br />
加入8时，由2的指针知原框中最小值为2，而2&lt;8，所以新元素8对应指针应指向2的指针所指向的元素2。<br />

<br />
<div STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static4.photo.sina.com.cn/orignal/4a443fd7t6628721f9b53" TARGET="_blank"><img SRC="http://static4.photo.sina.com.cn/bmiddle/4a443fd7t6628721f9b53" STYLE="" /></A><br />
min = 2<br /></DIV>
<br />
其余如法炮制。<br />
<br />
<div STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static10.photo.sina.com.cn/orignal/4a443fd7t662880e34679" TARGET="_blank"><img SRC="http://static10.photo.sina.com.cn/bmiddle/4a443fd7t662880e34679" STYLE="" /></A><br />
min = 2<br />
<br /></DIV>
可见，在框左端固定、右端不断扩展时，任意时刻都能在常数时间内确定框内元素的最小值。（不仅如此，即使需要让右端向左收缩，也能在常数时间内，通过最右端元素指针获得得到收缩后框内所剩元素的最小值。）<br />

<br />
整个过程演示如下（先扩张后收缩）：<br />
<div STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static1.photo.sina.com.cn/orignal/4a443fd7t6629268d84a0" TARGET="_blank"><img SRC="http://static1.photo.sina.com.cn/bmiddle/4a443fd7t6629268d84a0" STYLE="" /></A><br /></DIV>
演示中的收缩操作在当前问题中并无必要。演示出来是为了说明无论右端如何移动，只要左端不动，就可以在任意时刻立刻得到最小值。同时也是为了与下面一个演示保持一致。<br />

<br />
如果一个框右端固定，左端收缩（称之为<span STYLE="text-decoration: underline;">右定左动框</SPAN>），也可以在任意时刻花费常数时间获得框内的最小元素。过程和上面左右对称。具体地说，每个元素对应一个指针，指向框内它右边（包括自身）所有数中最小者。首先需要从右到左计算出各个元素对应的指针。这个过程类似于将框的左端由右向左扩展。计算完毕后就可以在收缩左端的过程中在常数时间内获得最小元素了。<br />

<br />
演示如下（先扩张后收缩，可以看到完全和上面对称）：<br />
<br />
<div STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static2.photo.sina.com.cn/orignal/4a443fd7t6629b6c81ac1" TARGET="_blank"><img SRC="http://static2.photo.sina.com.cn/bmiddle/4a443fd7t6629b6c81ac1" STYLE="" /></A><br /></DIV>
<br />
<div STYLE="text-align: center;">
<div STYLE="text-align: left;">
对于当前问题，在“扩张”过程中并不需要求最小值，而仅仅需要计算出指针来为收缩过程作准备。这里在全过程中标注出最小值是为了说明任意时刻都有能力得到它，也为了与上一个演示保持一致。<br />

<br />
上面拉拉杂杂说了一堆，只为了说明：<span STYLE="font-weight: bold;">如果框的一端固定，仅移动另外一端，则在此过程中可以仅花费常数时间获得框内的最小元素。</SPAN>针对左定右移、右定左移两种情况的算法是彼此对称的。<br />

<br />
最后顺带提一点实现细节，希望不会影响你对整体的理解。上面所使用的指针也可以用索引号来代替，这里使用指针是为了显得更形象。事实上，不保存索引或指针而直接保存最小的“值”也是可行的，但是并不推荐。设想，如果每个元素不是数而是四五米长的字符串（&gt;_&lt;），偏序关系使用字符串长度的比较，那么如果不保存指针/索引而保存值，所带来的元素复制开销恐怕不是你想要的。<br />

<br />
二、推广<br />
<br />
怎样把上面只允许一端移动的解法推广到同时允许两端移动呢？<br />
<br />
一种想法是，将以上二者合二为一。具体地说，<span STYLE="font-weight: bold;">将框内的数看成左右两部分，左边一部分看成右定左动的，右边一部分看成左定右动的。这样，在左边收缩、右边扩张的过程中，左右两部分都可以在常数时间内得到最小元素。取两个最小元素中更小者，即为整个框中的最小元素。</SPAN><br />

<br />
OK，这就是O(N)算法的基本思路了。回到原题目，下面看一个例子。<br />
<br />
假设我们要处理的是这么一串数：<br />
<br />
<div STYLE="text-align: center;">3 1 4 1 5 9 2 6 5 3 5 8 9 7 9
3<br /></DIV>
<br />
框的大小为5。<br />
<br />
首先，把最先被框住的5个数看成被一个右定左动的框框住，这5个数右边看成是一个空的左定右动框。当然，首先需要计算出开始这5个元素对应的指针：<br />

<br />
<div STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static3.photo.sina.com.cn/orignal/4a443fd7t662f8a9a8742" TARGET="_blank"><img SRC="http://static3.photo.sina.com.cn/bmiddle/4a443fd7t662f8a9a8742" STYLE="" /></A><br /></DIV>
接下来，左边的右定左动框收缩，右边的左定右动框扩张。在此过程中，框在框中的M个元素的最小者可以在常数时间内获得。<br />
<div STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static3.photo.sina.com.cn/orignal/4a443fd7t6630018ecd02" TARGET="_blank"><img SRC="http://static3.photo.sina.com.cn/bmiddle/4a443fd7t6630018ecd02" STYLE="" /></A><br />
<br /></DIV>
到左边部分收缩至空时就没有办法继续收缩了。怎么继续这个过程呢？<br />
<br />
解决方法是，将右端含有M个元素的左定右动框重新处理为右定左动框，并在右边再放上一个空左定右动框：<br />
<div STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static12.photo.sina.com.cn/orignal/4a443fd7t663087855beb" TARGET="_blank"><img SRC="http://static12.photo.sina.com.cn/bmiddle/4a443fd7t663087855beb" STYLE="" /></A><br /></DIV>
接下来继续这个过程就行了。下面是全过程的演示：<br />
<br />
<div STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static12.photo.sina.com.cn/orignal/4a443fd7t6630f08a33eb" TARGET="_blank"><img SRC="http://static12.photo.sina.com.cn/bmiddle/4a443fd7t6630f08a33eb" STYLE="" /></A><br /></DIV>
<br />
你可能会对每次将右边的左定右动框重新处理为左边的右定左动框（有点晕-
-）时计算指针造成的额外开销存有疑虑。然而，每次重新计算时需要处理M个元素的指针，每隔M个元素才会进行一次这样的处理，N/M*M仍然为N，并不会升高复杂度的阶。换句话说，每个元素至多被重新计算两次指针，所以总体复杂度仍然为O(N)。<br />

<br />
以上就是整个解法。<br />
<br />
三、关于栈<br />
<br />
我们可以把右定左动框看成是一个底在右顶在左的栈，左端向左扩张看成是向栈push元素，左端向右收缩看成是栈在pop元素。左定右动框亦然。前面提到，两种框上的操作是对称的；如果把它们都看成栈，则push和pop时的操作完全一致。这样就将两种框对称的操纵统一在了同一个数据结构上，使得实现起来更为简洁。<br />

<br />
这就是对开始所引用那段算法描述的解释。<br />
<br />
四、问题的扩展<br />
<br />
更进一步，我们还可以使用类似的方法处理此问题的变种。如，对于一个队列，随意进行入队出队操作（相当于木框的宽度不再固定为M，其两端也不同时向右移动），求在任意时刻队列中的最小元素。或者，一个双端队列，在两端随意进行入队出队操作，求任意时刻队列中的最小元素。等等。<br />

<br />
最后顺便一提，在搜索此题资料时发现这个问题似乎涉及到数据流的处理算法。这个方面我一无所知，没办法站在那样一个高度阐述，抱歉。<br />
</DIV>
</DIV>
</DIV>]]></description>
            <author>逆铭</author>
            <category>新长征路上的代码</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100d21o.html#comment</comments>
            <pubDate>Sat, 28 Mar 2009 13:52:48 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100d21o.html</guid>
        </item>
        <item>
            <title>小试模板元编程</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100csfz.html</link>
            <description><![CDATA[<p>很久不更新了，再水一下吧。</P>
<p>&nbsp;</P>
<p>前两天新开的数据结构课布置上机作业，里面又出现了不知道之前出现过多少次的<a HREF="http://acm.buaa.edu.cn/oj/problem_show.php?c=99&amp;p=101330" TARGET="_blank">输出质数</A>。每次都交表也会很乏味，所以……这次还是要交表 - -|||
不过要玩一点小花样——让编译器在编译期把质数表算出来。</P>
<p>&nbsp;</P>
<p>这个当然涉及到一点<a HREF="http://zh.wikipedia.org/w/index.php?title=%E6%A8%A1%E6%9D%BF%E5%85%83%E7%B7%A8%E7%A8%8B&amp;variant=zh-cn" TARGET="_blank">模板元编程</A>了。之前虽然看了《Effective
C++》里关于模板元的简介挺感兴趣，但看到《<a HREF="http://blog.csdn.net/pongba/archive/2007/12/11/1930150.aspx" TARGET="_blank">学习C++：实践者的方法</A>》里告诫不要在这种“20%场景下的复杂性”上白花时间<font COLOR="#666666">（“这些细节或技术在日常编程中极少用到，尤其是各种语言缺陷衍生出来的workarounds，构成了一个巨大的长尾……绝大多数只在库开发当中需要用到”）</FONT>，我一直对模板元编程敬而远之。这次也只是消遣一下，并无深入学习的打算。</P>
<p>&nbsp;</P>
<p>以下是代码：</P>
<p>&nbsp;</P>
<p ALIGN="center">囧囧囧囧囧囧囧囧囧囧囧囧囧囧 美丽的分割线 囧囧囧囧囧囧囧囧囧囧囧囧囧囧</P>
<p>&nbsp;</P>
<p><font FACE="monospace"><font COLOR="#A020F0">#include</FONT>
<font COLOR="#FF00FF">&lt;iostream&gt;</FONT><br />
<font COLOR="#A020F0">#include</FONT> <font COLOR="#FF00FF">&lt;vector&gt;</FONT><br />
<font COLOR="#A020F0">#include</FONT> <font COLOR="#FF00FF">&lt;iterator&gt;</FONT><br />
<font COLOR="#A020F0">#include</FONT> <font COLOR="#FF00FF">&lt;algorithm&gt;</FONT><br />
<br />
std::vector&lt;<font COLOR="#2E8B57"><b>int</B></FONT>&gt; Primes;<br />
<br />
<font COLOR="#2E8B57"><b>template</B></FONT>&nbsp;&lt;<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;toTest,
<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;factor&gt;
<font COLOR="#0000FF">// factor should be odd</FONT><br />
<font COLOR="#2E8B57"><b>class</B></FONT>&nbsp;IsPrime<br />
{<br />
&nbsp;&nbsp; <font COLOR="#804040"><b>public</B></FONT>:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#2E8B57"><b>enum</B></FONT>&nbsp;{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
result = ( toTest == <font COLOR="#FF00FF">2</FONT>&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
||&nbsp;&nbsp;toTest % factor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;&amp; IsPrime &lt; toTest
, factor - <font COLOR="#FF00FF">2</FONT>&nbsp;&gt;::result<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br />

};<br />
<br />
<font COLOR="#2E8B57"><b>template</B></FONT>&lt;<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;toTest&gt;<br />

<font COLOR="#2E8B57"><b>class</B></FONT>&nbsp;IsPrime&lt;toTest,
<font COLOR="#FF00FF">1</FONT>&gt;<br />
{<br />
&nbsp;&nbsp; <font COLOR="#804040"><b>public</B></FONT>:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#2E8B57"><b>enum</B></FONT>&nbsp;{result
= ( toTest == <font COLOR="#FF00FF">2</FONT>&nbsp;)&nbsp;&nbsp;||
( toTest &amp; <font COLOR="#FF00FF">1</FONT>&nbsp;) };<br />
};<br />
<br />
<font COLOR="#2E8B57"><b>template</B></FONT>&nbsp;&lt;<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;upperBound&gt;
<font COLOR="#0000FF">// upperBound should be odd or 2</FONT><br />
<font COLOR="#2E8B57"><b>class</B></FONT>&nbsp;PrimePick :
<font COLOR="#804040"><b>public</B></FONT>&nbsp;PrimePick
&lt; upperBound - <font COLOR="#FF00FF">2</FONT>&nbsp;&gt;<br />
{<br />
&nbsp;&nbsp; <font COLOR="#804040"><b>public</B></FONT>:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#2E8B57"><b>enum</B></FONT>&nbsp;{<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
isPrime = IsPrime &lt; upperBound, ( upperBound
&gt;&gt; <font COLOR="#FF00FF">1</FONT>&nbsp;) | <font COLOR="#FF00FF">1</FONT>&nbsp;&gt;::result<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrimePick&lt;upperBound&gt;()
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font COLOR="#804040"><b>if</B></FONT>&nbsp;( isPrime
)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Primes.push_back
( upperBound );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

};<br />
<br />
<font COLOR="#2E8B57"><b>template</B></FONT>&lt;&gt;<br />

<font COLOR="#2E8B57"><b>class</B></FONT>&nbsp;PrimePick&lt;<font COLOR="#FF00FF">2</FONT>&gt;<br />

{<br />
&nbsp;&nbsp; <font COLOR="#804040"><b>public</B></FONT>:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrimePick&lt;<font COLOR="#FF00FF">2</FONT>&gt;()
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Primes.push_back ( <font COLOR="#FF00FF">2</FONT>&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />

};<br />
<br />
<font COLOR="#2E8B57"><b>template</B></FONT>&lt;&gt;<br />

<font COLOR="#2E8B57"><b>class</B></FONT>&nbsp;PrimePick&lt;<font COLOR="#FF00FF">1</FONT>&gt;
: <font COLOR="#804040"><b>public</B></FONT>&nbsp;PrimePick&lt;<font COLOR="#FF00FF">2</FONT>&gt;
{};<br />
<br />
<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;main()<br />
{<br />
&nbsp;&nbsp;
PrimePick&lt;<font COLOR="#FF00FF">999</FONT>&gt; PrimeInitializer;<br />
<br />
&nbsp;&nbsp; <font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;m;<br />
&nbsp;&nbsp; std::cin
&gt;&gt; m;<br />
&nbsp;&nbsp; <font COLOR="#804040"><b>for</B></FONT>&nbsp;( <font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;i = <font COLOR="#FF00FF">0</FONT>; i &lt; m; ++i ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#2E8B57"><b>int</B></FONT>&nbsp;n;<br />

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cin
&gt;&gt; n;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::vector&lt;<font COLOR="#2E8B57"><b>int</B></FONT>&gt;::iterator
end = Primes.begin();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font COLOR="#804040"><b>while</B></FONT>&nbsp;(
end != Primes.end() &amp;&amp; *end
&lt;= n )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++end;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::ostream_iterator&lt;<font COLOR="#2E8B57"><b>int</B></FONT>&gt;
out ( std::cout, <font COLOR="#FF00FF">"
"</FONT>&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::copy
( Primes.begin(), end, out );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout
&lt;&lt; std::endl;<br />
&nbsp;&nbsp; }<br />
}<br /></FONT></P>
<p ALIGN="center">囧囧囧囧囧囧囧囧囧囧囧囧囧囧 依旧美丽的分割线 囧囧囧囧囧囧囧囧囧囧囧囧囧囧</P>
<p ALIGN="center">&nbsp;</P>
<p>原理比较简单，主函数第一行初始化 PrimeInitializer
时，由于继承关系，构造函数会层层递归调用，从里至外利用另一个模板类 IsPrime 判断模板参数是否是质数，并把测试确认的质数放进一个
vector 里，这样就得到了编译期计算出的质数表。IsPrime
则使用最原始的试除方法判断质数。代码里一些写得很纠结的地方，一方面是为了尽量简化计算，减少编译时间，另一方面更主要是因为 g++
默认最大只能实例化500层模板，以题目的数据规模（1000）不纠结一下编译器会抱怨。</P>
<p>&nbsp;</P>
<p>这个程序……很不幸没能 AC。Buaa 的&nbsp;OJ
在设计时估计就考虑了这种情况，对编译时间做出了限制，在编译20秒左右还没编译成功时会结束编译，直接判 <a HREF="http://acm.buaa.edu.cn/oj/status.php?problem_id=101330&amp;user_id=38211427&amp;result=-1&amp;c=99&amp;viewall=1" TARGET="_blank">CE</A>……这个程序在我的系统上编译需要20分钟(VC 编译)到半个小时以上( g++
编译)的时间，冬冬的64位 Ubuntu 上用 g++
编译也需要将近10分钟时间。如果OJ不做这个限制估计会像当年vijos一样pending很多页吧……</P>
<p>&nbsp;</P>
<p>恩，第一次模板元编程经历就以这样悲惨收场了 T_T</P>
<p>&nbsp;</P>
<p>更新：</P>
<p>vijos<a HREF="http://fanfou.com/statuses/RNTyv6omdrE" TARGET="_blank">果然被卡住了</A> - -</P>
<p>&nbsp;</P>
<p ALIGN="center"><a href="http://blog.photo.sina.com.cn/showpic.html#url=http://static3.photo.sina.com.cn/orignal/4a443fd7t640e9aa062c2" TARGET="_blank"><img SRC="http://static3.photo.sina.com.cn/bmiddle/4a443fd7t640e9aa062c2" /></A></P>
<p ALIGN="center">可怜的puppy</P>
<p>&nbsp;</P>
<p>已作为bug报告。</P>]]></description>
            <author>逆铭</author>
            <category>新长征路上的代码</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100csfz.html#comment</comments>
            <pubDate>Sun, 01 Mar 2009 06:37:57 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100csfz.html</guid>
        </item>
        <item>
            <title>愿阳光打在你我脸上</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100c7te.html</link>
            <description><![CDATA[<p STYLE="text-align: center;"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static4.photo.sina.com.cn/orignal/4a443fd7t5f5c96f7a683&amp;000" TARGET="_blank"><img SRC="http://static4.photo.sina.com.cn/middle/4a443fd7t5f5c96f7a683&amp;000" /></A></P>
<p><a HREF="http://www.hecaitou.net/?p=4056" TARGET="_blank">混乱</A>而格外漫长的2008终于过去 ，我们无奈地经历变故，无奈地被不断<a HREF="http://www.izaobao.com/1554.html" TARGET="_blank">撼动</A>。终于到了新的一年，转一篇也许你早已看过旧文，希望08年的晦气会在09年的第一缕阳光的照射下一扫而空。</P>
<p><br /></P>
<p STYLE="text-align: center;">南方周末1999年新年致辞</P>
<p STYLE="text-align: center;">江艺平</P>
<p>　　&nbsp;&nbsp;&nbsp;
是新年的第一天。这是我们与你见面的第777次。祝愿阳光打在你的脸上。<br />
　　　　<br />
　　　　阳光打在你的脸上，温暖留在我们心头。这是冬天里平常的一天。北方的树叶已经落尽，南方的树叶还留在枝头，人们在大街上懒洋洋地走着，或者急匆匆地跑着，每个人都紧握自己的心事。本世纪最后的日历正在一页页减去，没有什么可以把人轻易打动。除了真实。人们有理想但也有幻象，人们得到过安慰
也蒙受过羞辱，人们曾经不再相信别人也不再相信自己。好在岁月让我们深知"真"的宝贵——真实、真情、真理，它让我们离开凌空蹈虚的乌托邦险境，认清了虚伪和欺骗。尽管，"真实"有时让人难堪，但直面真实的民族是成熟的民族，直面真实的人群是坚强的人群。<br />

　　　　<br />
　　　　没有什么可以轻易把人打动
，除了正义的号角。当你面对蒙冤无助的弱小，当你面对专横跋扈的恶人，当你面对足以影响人们一生的社会不公，你就明白正义需要多少代价，正义需要多少勇气。<br />

　　　　<br />
　　　　没有什么可以轻易把人打动，除了内心的爱。没有什么可以轻易把人打动，除了前进的脚步。<br />
　　　　<br />
　　　　这是新年的第一天，就像平常一样，我们与你再次见面，为逝去的一年而感怀，为新来的一年而准备。祝愿阳光打在你的脸上。<br />
　　　　<br />
　　　　阳光打在你的脸上，温暖留在我们心里。有一种力量，正在你的指尖悄悄流动，有一种关怀，正从你的眼里轻轻放出。在这个时刻，我们无言以对，惟有祝福：让无力者有力，让悲观者前行，让往前走的继续走，让幸福的人儿更幸福；而我们，在不停为你加油。<br />

　　　　<br />
　　　　我们不停为你加油。因为你的希望就是我们的希望，因为你的苦难就是我们的苦难。我们看着你举起锄头，我们看着你舞动镰刀，我们看着你挥汗如雨，我们看着你谷满粮仓，我们看着你流离失所，我们看着你痛哭流涕，我们看着你中流击水，我们看着你重建家园，我们看着你无奈下岗，我们看着你咬紧牙
关，我们看着你风雨度过，我们看着你笑逐言开......我们看着你，我们不停为你加油，因为我们就是你们的一部分。<br />
　　　　<br />
　　　　总有一种力量它让我们泪流满面，总有一种力量它让我们精神抖擞，总有一种力量它驱使我们不断寻求"正义、爱心、良知"。这种力量来自于你，来自于你们中间的每一个人。<br />

　　　　<br />
　　　　所以，在这样的时候，在这新年的第一天，我们要向你、向你身边的每一个人，说一声："新年好"！ 祝愿阳光打在你的脸上。<br />
　　　　<br />
　　　　因为有你，才有我们。<br />
　　　　<br />
　　　　阳光打在你的脸上，温暖留在我们心里。为什么我们总是眼含泪水，因为我们爱的深沉；为什么我们总是精神抖擞，因为我们爱的深沉；
为什么我们总在不断寻求，因为我们爱的深沉。爱这个国家，还有她的人民，他们善良，他们正直，他们懂得互相关怀。<br />
　　　　<br />
　　　　祝愿阳光打在所有人的脸上。</P>]]></description>
            <author>逆铭</author>
            <category>听来的故事</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100c7te.html#comment</comments>
            <pubDate>Wed, 31 Dec 2008 19:02:15 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100c7te.html</guid>
        </item>
        <item>
            <title>圣诞视频</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100c5jx.html</link>
            <description><![CDATA[<p>大家圣诞快乐～恩，推荐个搞视频，强大的腹语术</P>
<p><object WIDTH="425" HEIGHT="344"><param NAME="movie" VALUE="http://www.youtube.com/v/Gbj2eU5TAiM&amp;hl=zh_CN&amp;fs=1" />
<param NAME="allowFullScreen" VALUE="true" />
<param NAME="allowscriptaccess" VALUE="always" />
<embed SRC="http://www.youtube.com/v/Gbj2eU5TAiM&amp;hl=zh_CN&amp;fs=1" TYPE="application/x-shockwave-flash" AllowScriptAccess="samedomain" ALLOWFULLSCREEN="true" WIDTH="425" HEIGHT="344"></EMBED></OBJECT></P>
<p>看上面的之前确保看过下面这个，否则一些段子会不明白</P>
<p><object WIDTH="425" HEIGHT="344"><param NAME="movie" VALUE="http://www.youtube.com/v/1uwOL4rB-go&amp;hl=zh_CN&amp;fs=1" />
<param NAME="allowFullScreen" VALUE="true" />
<param NAME="allowscriptaccess" VALUE="always" />
<embed SRC="http://www.youtube.com/v/1uwOL4rB-go&amp;hl=zh_CN&amp;fs=1" TYPE="application/x-shockwave-flash" AllowScriptAccess="samedomain" ALLOWFULLSCREEN="true" WIDTH="425" HEIGHT="344"></EMBED></OBJECT></P>
<p>恩……反正也不是我们的节日，跟着搞一搞，merry christmas~~~</P>]]></description>
            <author>逆铭</author>
            <category>杂的扯</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100c5jx.html#comment</comments>
            <pubDate>Thu, 25 Dec 2008 14:26:16 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100c5jx.html</guid>
        </item>
        <item>
            <title>某无线信号</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100bzy1.html</link>
            <description><![CDATA[<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static11.photo.sina.com.cn/orignal/4a443fd7t5d9e7cc2d20a" TARGET="_blank"><img SRC="http://static11.photo.sina.com.cn/bmiddle/4a443fd7t5d9e7cc2d20a" /></A></P>
<p>&nbsp;</P>
<p>寝室搜到的某无线网信号，来源不明。猛击看大图。</P>
<p>&nbsp;</P>
<p>这么牛的名字竟然是WEP……只可惜我的网卡貌似不能抓包，残念</P>]]></description>
            <author>逆铭</author>
            <category>生活在此处</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100bzy1.html#comment</comments>
            <pubDate>Tue, 09 Dec 2008 15:01:47 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100bzy1.html</guid>
        </item>
        <item>
            <title>OI 退役 0.999… 周年</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100bskr.html</link>
            <description><![CDATA[<div STYLE="text-align: center;"><img SRC="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/999_Perspective.png/300px-999_Perspective.png" /><br />
</DIV>
<br />
rt。<br />
<br />
没什么额外要说的了……关于离开已久的OI，我想说的似乎已经在一年前那几段(花了一个星期来打草稿的)<a HREF="http://blog.sina.com.cn/s/blog_4a443fd701000bko.html" TARGET="_blank">文字</A>里说完了。一句话，我感激那一年的经历给我带来的一切。<br />
<br />
这里仅小小地纪念下，用稍带点 geek 味的方式。<br />
<br />
恩……同时祝海平同学生日快乐，没记错的话应该是明天。<br />
<br />]]></description>
            <author>逆铭</author>
            <category>OI那一年</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100bskr.html#comment</comments>
            <pubDate>Mon, 17 Nov 2008 15:13:05 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100bskr.html</guid>
        </item>
        <item>
            <title>1 with 1 &amp; 1 with 1</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100bq1h.html</link>
            <description><![CDATA[<div STYLE="text-align: center;"><img SRC="http://news.xinhuanet.com/school/2006-11/17/xin_34211031709364062786810.jpg" /><br />
</DIV>
<br />
今天是光棍节，我给大家拜个早年……<br />
<br />
记得几年前听CRI时，某日恰逢光棍节，节目里老外特别无辜地问，为什么要把11月11号定为光棍节呢？看起来不像四个 single
啊，反倒像两对 couple……<br />
<br />
那么，值此佳节，就让我在遥远荒凉的北航寺祝福大家早点从一 single 一 single 的变成一 couple 一 couple
的吧～～～<br />]]></description>
            <author>逆铭</author>
            <category>生活在此处</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100bq1h.html#comment</comments>
            <pubDate>Mon, 10 Nov 2008 16:00:00 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100bq1h.html</guid>
        </item>
        <item>
            <title>初来北航一个多月的零零碎碎</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100bl6n.html</link>
            <description><![CDATA[<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static8.photo.sina.com.cn/orignal/4a443fd7t5a52a682dff7" TARGET="_blank"><img SRC="http://static8.photo.sina.com.cn/bmiddle/4a443fd7t5a52a682dff7" /></A></P>
<p>&nbsp;</P>
<p>几乎持续忙碌中。得空扯两句。</P>
<p>&nbsp;</P>
<p>
除了多了不少限制，生活和来之前差不多。食堂挺好。大运村很贵，不过想想也就4年而已，也就无所谓了。没阳台，很不方便。房间里有小强出没让人很不爽，不过比去年在福州一中见到的要小多了，也没那么嚣张。还好能有自己的书桌，用无线路由上着网，看着书，其实还是很惬意的。恩……我其实还是很容易满足的。</P>
<p>&nbsp;</P>
<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static1.photo.sina.com.cn/orignal/4a443fd7t5a535536ed20" TARGET="_blank"><img SRC="http://static1.photo.sina.com.cn/bmiddle/4a443fd7t5a535536ed20" /></A></P>
<p>&nbsp;</P>
<p>
室友都很好很强大，让我觉得笨鸟先飞格外必要。有点后悔假期没有看看数学，现在一周五节数学（三节高数两节离散）让人有点吃不消。尤其是高数，大半年没有怎么做过这种题，现在看着它们感觉脑子像卡住了一样……英语依旧荒废中，腾不出手来处理，所幸
RP 足够好进了 B 班。专业方面，终于还是失去了第二遍读完 C++ Primer 的耐心，这份<a HREF="http://blog.sina.com.cn/s/blog_4a443fd70100aq4s.html" TARGET="_blank">读书笔记</A>也不知何年何月才能完成了。转而开始看 Effective C++，看完那三本 Effective
就不再在 C++
上过多纠缠了，什么模板元之类的都省省吧……这门语言的复杂程度已经足够让我望而却步了，抱着厚书啃啊啃也啃不完总不是办法，还是今后在实践中逐渐积累吧。《<a HREF="http://www.douban.com/subject/2995420/" TARGET="_blank">Pro C# with .NET 3.0 Special
Edition</A>》刚到第八章，《<a HREF="http://www.douban.com/subject/1400656/" TARGET="_blank">Head First Design
Patterns</A>》也到第八章。它们的阅读进度都由于要顾及数学被严重拖慢了，很让人郁闷。至于其它七七八八的科目，什么语文啊计算机导论啊历史啊政治啊航空航天概论啊，都在摸着石头瞎混中，但愿能混过去……</P>
<p>&nbsp;</P>
<p>没参加任何类似学生会或者班委会的组织。社团仅仅参加了 MSTC（微软技术俱乐部），并且顺利混进 .NET
组。据冬冬说，我在面试时极为成功的装X竟然让某巨牛印象深刻并颇为赞许，这让我相当有成就感。如果顺利，不太久会参与项目开发。看来我放假时决定学
C# 还算明智。现在感觉 MSTC 还算不错。</P>
<p>&nbsp;</P>
<p>本来准备参加的 GC（Google Camp）也顺利入围技术部，不过了解更多以后觉得很不靠谱，暂且退出免得浪费时间。</P>
<p>&nbsp;</P>
<p>ACM/ICPC
终于还是没有去参加……恩，连新生的选拔赛都干脆没去。虽然这个决定是早在年初就做好的，心中还是免不了一丝不舍。希望我没有做出错误的选择。</P>
<p>&nbsp;</P>
<p><img SRC="http://gnome.asia/static/img/gnome.asia-logo-2008.21.96px.2.png" /></P>
<p>&nbsp;</P>
<p>之前参加了一次 <a HREF="http://www.douban.com/event/10284206/" TARGET="_blank">Liunx of BUAA 北航小聚</A>，用 Vista 的我只能拿本里的 <a HREF="http://blog.sina.com.cn/s/blog_4a443fd70100b42i.html" TARGET="_blank">andLinux</A> 充数。群牛闪耀，气氛很融洽，更重要的是我和冬冬很幸运地遇到 <a HREF="http://www.douban.com/people/2988178/" TARGET="_blank">Jesse</A>，他是在北航举行的08年 <a HREF="http://www.douban.com/event/10247550/" TARGET="_blank">Gnome
亚洲峰会</A>（<a HREF="http://gnome.asia/" TARGET="_blank">主页</A>）北航方面的负责人，然后我们就高高兴兴地成了志愿者。记得是蒋天正还是谁给我们说，你们刚来没几天就能参加国际会议了~~
作为技术上太水的人，我也就只能搬搬桌子、指个路什么的，以此为开源社区做点贡献了。顺带一提，这样一个技术会议的组织者竟然是 Emily
姐和 Pockey 姐两位女性，真是奇妙。会议很成功，<a HREF="http://flickr.com/search/?w=all&amp;q=gnomeasia&amp;m=text" TARGET="_blank">这里</A>有n多大家拍的照片。以此为契机，北航的开源社团似乎也即将成立，真是件好事。</P>
<p>&nbsp;</P>
<p ALIGN="center"><img SRC="http://otho.douban.com/lpic/s1442476.jpg" /></P>
<p>&nbsp;</P>
<p>
一段时间听了很多碟。周董的新专辑还不如上一张，周导演果然没时间玩音乐了；JJ的新专辑安排很杂，不过整体质量还算不错。重新开始听原来没什么感觉的门德尔松无词歌。又开始迷巴赫，重听了以前没有特别留心感受的曲子，从大无开始，到小无，然后是钢琴的帕提塔、意大利协奏曲等等，并且各同时找好几个版本对照。上课路上看着阳光透过教学区树木的树冠，随着欢欣的库兰特舞跳动，或者眯起眼睛依着一首萨拉班德打一会儿瞌睡，觉得生活真是美好。托卡塔从耳旁流过时似乎可以提神，严谨紧凑的赋格似乎也会潜移默化地帮助思考。温暖且踏实的大调诠释着幸福，清冷或宁静的小调表达着自省，二者交替间很容易就在我的心室中共鸣回响起来。从不滥情的巴赫总能让人在忙碌中保持安稳，我每过一段时间似乎都会到巴赫这里停靠。每次少则一周多则一两个月，总能得到珍贵的体验。</P>
<p>&nbsp;</P>
<p>恩……似乎这段时间值得说的就是这么多。瞎忙之中一切看起来都在向着好的方向发展，一些小麻烦还不足以影响心情。希望一切顺利。</P>
<p>&nbsp;</P>
<p>最后，祝贺银男 Ghost 终于银了。祝高三各位大牛保送顺利。欢迎报考 BUAA。</P>]]></description>
            <author>逆铭</author>
            <category>生活在此处</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100bl6n.html#comment</comments>
            <pubDate>Tue, 28 Oct 2008 16:19:15 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100bl6n.html</guid>
        </item>
        <item>
            <title>写在临行前</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100b67o.html</link>
            <description><![CDATA[<div CLASS="Section0" STYLE="LAYOUT-GRID: 15.6pt none">
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt" ALIGN="center"><span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><a href="http://blog.photo.sina.com.cn/showpic.html#url=http://static16.photo.sina.com.cn/orignal/4a443fd7t6f1da0772d6f" TARGET="_blank"><font FACE="宋体"><img SRC="http://static16.photo.sina.com.cn/bmiddle/4a443fd7t6f1da0772d6f" /></FONT></A></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
昨天终于顺利闹完了，20号开学，今晚的火车，明天到。</FONT></SPAN><span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">

</SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
如果从年初学校定下来开始算起，到现在，那真是有大半年的假期了。虽然基本上一直都是忙忙碌碌的，但是效率并不咋高。假期开始的时候没写什么假期计划，现在就写点总结吧。</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">E<font FACE="宋体">文的重要性我是清楚的，自己清楚确实需要加强。原来有人（好吧，我坦白，包括我自己）觉得我英语不错，其实现在客观地看，不过是几句简单的说得比较溜，能吓唬下不了解情况的人而已，其实在基础各方面问题非常多。</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
我差不多是从今年4月份开始重新拾起E文的。兰州找不到合适的班，就自己跟着一个叫《彭蒙惠英语》的杂志走。这个是空中英语教室系列的高级版，对我来说比较吃力，但是中级版又太EZ，只好勉强用这本，结果每个月甚至都没有精力看完当月的内容。4~8月读过的课文篇数分别为2、6、7、8、1，可见利用率并不高。</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
当初其实规划得挺好：每天都安排课文和配套广播，可以练阅读和听力；遇到的生词记下来可以提升词汇量；另外还在网上找到了</FONT></SPAN><span><a HREF="http://bulo.hjenglish.com/group/advanced/"><span CLASS="15" STYLE="FONT-SIZE: 10pt; COLOR: rgb(0,0,255); FONT-FAMILY: '宋体'; TEXT-DECORATION: underline; mso-spacerun: 'yes'"><font FACE="宋体">语音讨论组</FONT></SPAN></A></SPAN><span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">可以练习口语。这样就可以全面提高了。但是对我来说杂志内容难度实在偏大，每天都要花费不少时间。每天如果读课文至少需要半小时，预习半小时，广播节目半小时。口语练习一小时。生词仅一共背了2000左右（更不幸的是现在已经忘掉不少了），难度等级从小学初中到专八GRE都有（可见我野路子学上来的基础确实有问题），每天按照软件安排复习和初记至少半小时。这样算下来单单是英文每天就要最少花费3小时，哪天稍微耽搁后面进度就跟不上了，煞是郁闷，到最后就干脆坚持不下来了。现在还是没有真正找到合适的英语学习方法，比较愁，哪位同学有什么建议欢迎在下面评论。</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
数学看得不多，除去已经忘掉的就可以忽略不计了……</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
专业课方面，主要是看完了</FONT></SPAN><span><a HREF="http://www.douban.com/subject/1845269/"><span CLASS="15" STYLE="FONT-SIZE: 10pt; COLOR: rgb(0,0,255); FONT-FAMILY: '宋体'; TEXT-DECORATION: underline; mso-spacerun: 'yes'"><font FACE="宋体">一本C#和对象建模的入门书</FONT></SPAN></A></SPAN><span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">，以及C++&nbsp;Primer。前者非常基础，需要深入起码还要看好几本。后者，正如我在</FONT></SPAN><span><a HREF="http://blog.sina.com.cn/s/blog_4a443fd70100aq4s.html"><span CLASS="15" STYLE="FONT-SIZE: 10pt; COLOR: rgb(0,0,255); FONT-FAMILY: '宋体'; TEXT-DECORATION: underline; mso-spacerun: 'yes'"><font FACE="宋体">这里</FONT></SPAN></A></SPAN><span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">所说的，花了超出预期很多的时间才看完第一遍，第二遍也没能在开学前看完。本来原计划是在开学前不但看完Primer，还要看完那三本Effective的，彻底搞定明年新标准发布前我需要掌握的C++内容。已经完成的部分和计划相比差太多了。</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
学会了游泳。</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
自学一点钢琴，教材用599和哈农，从高考开始学到现在，各只弹到第15首。买的琴是Yamaha&nbsp;DGX-620，本来想带去学校继续学的，结果发现我根本没有理解20公斤意味着什么……况且宿舍小也不一定能放得下。原来所谓Portable&nbsp;Grand的意思仅仅是相对Grand稍微Portable一点而已了。查了下其它的电钢，似乎真正比较Portable的键盘都不带配重……那就先算了吧。</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
恩……大致就是以上这些了。Linda姐问我假期最大的成果是什么，我说不知道……各项都不满意。忙忙碌碌但不出效果。其实把C++和E文放在一起的安排是很失败的，一天到晚都在看语言上拉拉杂杂的东西，搞得人又烦又低效。。。</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
忙忙碌碌的，看起来那么长的一个假期也就这样过去了。昨天去一中，见了老赵、DF、野牛、格格他们，又在楼道里习惯性闲逛，在二球下习惯性驻足，在公交站台上习惯性无意义</FONT></SPAN><span><a HREF="http://fanfou.com/statuses/Msxzgfz5jHM"><span CLASS="15" STYLE="FONT-SIZE: 10pt; COLOR: rgb(0,0,255); FONT-FAMILY: '宋体'; TEXT-DECORATION: underline; mso-spacerun: 'yes'"><font FACE="宋体">等待</FONT></SPAN></A></SPAN><span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">。即将满载着回忆离开，除了少了很多熟识的面孔，那里的一切都还是一样熟悉。</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
之前同学陆陆续续都走差不多了，并没有太多离别的伤感。我只是觉得大家保持着联系就好，有缘也肯定还会再见。我似乎总是习惯看好现在，看好将来，并不太多留恋身后。想想旅行时我不喜欢拍很多照片留念可能也是这个原因吧。是豁达，是冷漠，还是不知珍惜，我自己无从分辨。我一直自以为是前者，只是昨天从姥姥家回来才产生了怀疑。</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
姥姥快八十岁了，坚持要在我走之前看看我。她对我絮絮叨叨了很多已经说过很多遍的事情，然后让我常给她打电话。我们都笑着说姥姥拿起电话就豆腐三碗、三碗豆腐说个没完没了了，长途话费下来肯定把人愁死。姥姥摇着头说，她知道长途花费贵，又说我学习紧张，又说宿舍里那么多人也影响别人，只要我每周周末晚上打个电话就行了，她就和我说一句话，就一句，说好着呢，听听我的声音马上就挂掉……一边说用手掌抹着已经发红的眼眶。我们赶紧解释说长途花费是按时间计的，没有那么贵，学习也并没有那么紧张，也不会打扰到别人。姥姥还是摇着头说没事的时候多休息不要打电话，每周打一次电话，说一句话听听我的声音就行了，就一句话就行了……絮叨地这么说了很多遍。</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
我有些不知所措，突然间感到亲人对自己如此强烈的不舍。看着姥姥发红的双眼，我突然觉得不忍离去。这是一种我其实一直没有真正明白的情感，曾经很多老师对此的解释都是“等你们做父母、祖父母了就明白了”。作为一个自私的独生子女，我想我并没有真正懂得什么是爱。</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font FACE="宋体">
我只是愣在那里，不断提醒自己记得多打几个电话。除此之外我不知道还能做到什么。</FONT></SPAN></P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
&nbsp;</P>
<p CLASS="p0" STYLE="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt">
<span STYLE="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">Unable&nbsp;To&nbsp;Stay,&nbsp;Unwilling&nbsp;To&nbsp;Leave.&nbsp;<font FACE="宋体">不管怎样，几天以后就是完全不同的生活了。</FONT></SPAN></P>
</DIV>]]></description>
            <author>逆铭</author>
            <category>生活在此处</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100b67o.html#comment</comments>
            <pubDate>Thu, 18 Sep 2008 09:27:00 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100b67o.html</guid>
        </item>
        <item>
            <title>推荐andLinux: 在win下运行原生linux程序</title>
            <link>http://blog.sina.com.cn/s/blog_4a443fd70100b42i.html</link>
            <description><![CDATA[<p ALIGN="center">&nbsp;<a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static5.photo.sina.com.cn/orignal/4a443fd7456ae10dbd014" TARGET="_blank"><img SRC="http://static5.photo.sina.com.cn/bmiddle/4a443fd7456ae10dbd014" /></A></P>
<p ALIGN="center"><font STYLE="FONT-SIZE: 12px">andLinux及其内核coLinux的logo</FONT></P>
<p>&nbsp;</P>
<p>也许我是很火星，但是的确是刚刚发现这个好东西。忍不住讲下发现过程先。没兴趣的直接跳到第4段- -</P>
<p>&nbsp;</P>
<p>先是<a HREF="http://www.cnbeta.com/articles/56015.htm" TARGET="_blank">在cnBeta上看到了关于<span CLASS="content">Ulteo Virtual
Desktop的文章</SPAN></A><span CLASS="content">，觉得挺有意思，<a HREF="http://fanfou.com/statuses/PTuT4Sk4vpQ" TARGET="_blank">就下载使用了下</A>，但是……很无爱-
-：安装包有500M不说，装上以后启动甚慢，自带的软件大多是类似Gimp、Skype、Openoffice有Windows版本的软件，意义不大，扩展性也不强，而用网站的账号登陆还很容易死机……不过似乎还是有人比较喜欢这个东西，有兴趣可以down下来玩玩。</SPAN></P>
<p>&nbsp;</P>
<p><span CLASS="content">之后<a HREF="http://fanfou.com/statuses/GSDhngyO14A" TARGET="_blank">注意到</A>Ulteo虚拟桌面是以一个叫coLinux的东西作为内核的。在某些方面coLinux可能有些像虚拟机，但实际上并不是。<a HREF="http://www.colinux.org/" TARGET="_blank">官网</A>介绍说这是个Linux内核在Windows上的移植，可以直接访问硬件(而不是访问虚拟出来的硬件)，这样就可以无需虚拟机就运行Linux程序，且效率更高。不过看了下安装方法，发现非常麻烦。还好，在搜索相关信息的时候<a HREF="http://fanfou.com/statuses/GSDhngyO14A" TARGET="_blank">我又发现了配置起来容易很多的andLinux</A>。</SPAN></P>
<p>&nbsp;</P>
<p><span CLASS="content">andLinux(<a HREF="http://andlinux.org/" TARGET="_blank">官网</A>)和Uleto Virtual
Destop类似，都是以coLinux为内核的(也都是以Xming作为X server，以 PulseAudio 为 sound
server)，是一个已经大体配置好的 Ubuntu。提供两个版本，Xfce 和 KDE(我也很奇怪为什么没有 GNOME
版本)。前者安装包只有100+M，仅包括一些必要的组件，而后者安装包则有600+M，包括很多KDE桌面环境下的软件(如
Kate、Konqueror 等等)。我两者都试用过，最后还是比较喜欢小巧的 Xfce 版。</SPAN></P>
<p>&nbsp;</P>
<p><span CLASS="content">两者都提供了新立得，自己扩展定制起来非常方便。不过注意可能由于兼容性和系统完整性存在问题，安装、升级和删除组件也或许会带来意想不到的麻烦，比如我这里升级
firefox 升级到3后会变得非常卡，原因未知。又如如果使用 Samba 访问 Windows
的目录，也可能在升级后无法使用<font COLOR="#666666">(因此我几番尝试后还是使用了COFS，也并没有遇到传说中无法支持特殊字符的问题)</FONT>。所以如果你想玩这个而对自己的rp没有绝对信心，<strong>最好注意备份一下那个
base.drv
文件</STRONG>，否则很容易像我开始几天一样重新安装很多遍。不过请放心，大多数情况下都不会有什么问题的。</SPAN></P>
<p>&nbsp;</P>
<p><span CLASS="content">andLinux 提供了一种很新颖的 Linux 与 Windows
共存的方案。就像本文最开头那个仿太极双鱼logo所表现的一样，Linux 和 Windows<font COLOR="#666666">(好吧，白色的 Linux 和黑色的
Windows，如果你一定要这么看的话)</FONT>彼此融合，和谐共生。我很容易就想到了 andLinux
的很多用途：</SPAN></P>
<ol>
<li><span CLASS="content">在 Windows 下无痛体验越来越时髦的 Ubuntu
Linux</SPAN></LI>
<li><span CLASS="content">对 Linux 下的某些软件有特殊依赖却也离不开 Windows
时使用</SPAN></LI>
<li><span CLASS="content">如果你是一个 OIer 或 ACMer，需要在 Linux 环境下使用 vim
或者 Emacs 写代码，同时又离不开 Windows 环境(比如评测环境搭建在Win下)，可以使用
andLinux，避免虚拟机的低效或者重启电脑切换系统的麻烦</SPAN></LI>
<li><span CLASS="content">如果你在 Windows
下进行跨平台开发，可以更方便地在两个平台下测试程序</SPAN></LI>
<li><span CLASS="content">等等</SPAN></LI>
</OL>
<p>&nbsp;</P>
<p>记得第一次装好Ubuntu时也很兴奋地<a HREF="http://blog.sina.com.cn/s/blog_4a443fd7010008ka.html" TARGET="_blank">截了很多图</A>放上来，这次又忍不住了：）</P>
<p>&nbsp;</P>
<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static3.photo.sina.com.cn/orignal/4a443fd7456ae156a23b2" TARGET="_blank"><font STYLE="FONT-SIZE: 12px"><img SRC="http://static3.photo.sina.com.cn/bmiddle/4a443fd7456ae156a23b2" /></FONT></A></P>
<p ALIGN="center"><font STYLE="FONT-SIZE: 12px">Xfce panel 和
Appfinder</FONT></P>
<p ALIGN="center"><font STYLE="FONT-SIZE: 12px">&nbsp;</FONT></P>
<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static14.photo.sina.com.cn/orignal/4a443fd7456ae224ae7ed" TARGET="_blank"><font STYLE="FONT-SIZE: 12px"><img SRC="http://static14.photo.sina.com.cn/bmiddle/4a443fd7456ae224ae7ed" /></FONT></A></P>
<p ALIGN="center"><font STYLE="FONT-SIZE: 12px">简单的文本编辑器
Mousepad</FONT></P>
<p ALIGN="center"><font STYLE="FONT-SIZE: 12px">输入法平台
Scim</FONT></P>
<p ALIGN="center">&nbsp;</P>
<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static12.photo.sina.com.cn/orignal/4a443fd7456ae2e92690b" TARGET="_blank"><font STYLE="FONT-SIZE: 12px"><img SRC="http://static12.photo.sina.com.cn/bmiddle/4a443fd7456ae2e92690b" /></FONT></A></P>
<p ALIGN="center"><font STYLE="FONT-SIZE: 12px">无障碍访问 Windows
下的文件</FONT></P>
<p ALIGN="center">&nbsp;</P>
<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static6.photo.sina.com.cn/orignal/4a443fd7456ae3a0a11a5" TARGET="_blank"><font STYLE="FONT-SIZE: 12px"><img SRC="http://static6.photo.sina.com.cn/bmiddle/4a443fd7456ae3a0a11a5" /></FONT></A></P>
<p ALIGN="center"><font STYLE="FONT-SIZE: 12px">使用g++编译运行C++程序</FONT></P>
<p ALIGN="center">&nbsp;</P>
<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static10.photo.sina.com.cn/orignal/4a443fd7456ae43180669" TARGET="_blank"><font STYLE="FONT-SIZE: 12px"><img SRC="http://static10.photo.sina.com.cn/bmiddle/4a443fd7456ae43180669" /></FONT></A></P>
<p ALIGN="center"><font STYLE="FONT-SIZE: 12px">使用mono运行.net小程序(我拿C#写的，在win下编译)</FONT></P>
<p ALIGN="center">&nbsp;</P>
<p ALIGN="center"><a HREF="http://blog.photo.sina.com.cn/showpic.html#url=http://static13.photo.sina.com.cn/orignal/4a443fd7456ae4955656c" TARGET="_blank"><font STYLE="FONT-SIZE: 12px"><img SRC="http://static13.photo.sina.com.cn/bmiddle/4a443fd7456ae4955656c" /></FONT></A></P>
<p ALIGN="center"><font STYLE="FONT-SIZE: 12px">双狐傍地走&nbsp; 安能辨我是雄雌？</FONT></P>
<p ALIGN="center">&nbsp;</P>
<p ALIGN="center"><a href="http://blog.photo.sina.com.cn/showpic.html#url=http://static9.photo.sina.com.cn/orignal/4a443fd7t56d2c6ce3238" TARGET="_blank"><img SRC="http://static9.photo.sina.com.cn/bmiddle/4a443fd7t56d2c6ce3238" /></A></P>
<p ALIGN="center"><font STYLE="FONT-SIZE: 12px">LinuxQQ正常运行</FONT></P>
<p>&nbsp;</P>
<p>到现在还没有解决的问题还有几个，不过都不很重要：</P>
<ol>
<li>sound
server无法使用。pulseaudio会直接崩溃，esd也会在播放启动声音后挂掉。。。同样使用PulseAudio的 Uleto
Virtual Destop 则无此问题。反正我并不需要用 Linux 下使用媒体播放器，就索性禁用了。</LI>
<li>窗口标题中的 Unicode 字符会乱码，可能是 Xming 字体配置的问题。</LI>
<li>使用 ImageResizeTool 不能改变 base.drv 的大小</LI>
</OL>
<p>另外，在访问文件时 Xming 偶尔会无故崩溃。这时由于X server已经没了，再重启 addLinux
服务也无效。可以重启计算机，也可以采取更简单的解决方法：运行"%此处替换为addLinux安装路径%\Xming\Xming.exe
:0 -dpi 85 -clipboard -c -multiwindow -reset -terminate -unixkill
-logfile Xming.log"(把这一长串保存在快捷方式里可能是个好主意)，然后再重启服务就行了。</P>
<p>&nbsp;</P>
<p>希望能在新版本中修正。毕竟是个还没有完全成熟的项目，相信以后会很有前途的。</P>
<p>&nbsp;</P>
<p>p.s. 如果附近有懒得配置环境的同学可以直接来找我拷 base.drv</P>]]></description>
            <author>逆铭</author>
            <category>新长征路上的代码</category>
            <comments>http://blog.sina.com.cn/s/blog_4a443fd70100b42i.html#comment</comments>
            <pubDate>Fri, 12 Sep 2008 07:44:04 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_4a443fd70100b42i.html</guid>
        </item>
    </channel>
</rss>
