2009.06.22

前几天 blog 挂掉了, 当时就想到了可能是 sql 数据库地址的问题. 但是 ftp 一直登不上, 我这儿上网又不是很方便, 昨天才把两个问题一并提交到客服, 然后虽然 ftp 的问题还没解决, 但是第一个问题确定了是 sql 数据库地址有问题, 客服也帮我在他那边改过了. 然后今天用速度有点慢的 webftp 装了个新的 wordpress 2.8, 折腾了一下午总算弄完了.

最近训练还好, 具体就不多说了. 然后已经得到了通知, 要 8 月 10 号左右才能回去, 到时候不知道还有多少人没玩腻…
过几天事情很多, ACM 班的面试, 提前入校的期末考试, ACM 队的训练, 加上现在还不知道要搬到哪个宿舍, 于是能预计到过几天的忙乱. 而原先定的 7 月回去一趟的目标, 估计是实现不了了.

这几天上海突然热起来了, 貌似 N 多人都是半夜两三点睡不着觉… 我今天也是凌晨 3 点才睡着的. 还好的是, 白天一直有 ACM 机房可以泡. 貌似大多数人都在泡图书馆, 不过 ACM 机房里有空调, 加上人比图书馆少, 所以还是这里好. 某人语: 早知道我就去考 ACM 队了…
电脑前几天显卡挂掉了, 跑到徐家汇去修. 然后第一天送过去修, 回来的时候淋了一身的雨, 第一次知道了啥叫落汤鸡= =||. 第二天去取, 中午去的, 然后第一次知道了啥叫热的要死… 回到宿舍之后喝了三四瓶水跟没喝一样… 不过还好电脑现在正常了, 花了 600 多块钱啊, 我电脑现在卖都不一定能卖这个价…

然后今天做了做 UVa, 换了个新 ID. 把那个推荐列表里整百的题都做了, 结果发现没有一道题不是水题, 晕死…

别的也没啥了, 最近貌似比较多愁善感, 不管怎样还是像我所说的, 你们真的不会明白我有多想你们的, 我也不会明白.
回去的时候还能不能去以前的教室看看呢…

那所谓的约定

小学篱芭旁的蒲公英
是记忆里有味道的风景
午睡操场传来蝉的声音
多少年后也还是很好听
将愿望折纸飞机寄成信
因为我们等不到那流星
认真投决定命运的硬币
却不知道到底能去哪里
一起长大的约定
那样清晰打过勾的我相信
说好要一起旅行
是你如今唯一坚持的任性
在走廊上罚站打手心
我们却注意窗边的蜻蜓
我去到哪里你都跟很紧
很多的梦在等待着进行
一起长大的约定
那样真心
与你聊不完的曾经
而我已经分不清
你是友情还是错过的爱情

高三和之前在这个世界上生活的十多年一样, 一眨眼就过来了.
再过 N 个小时, 天津的高考就结束了呢.

觉得自己的中学生活过得真是失败, 也真是成功. 借着 OI 来到 SJTU 还幸运地进了 ACM 队, 可以算比较成功了吧; 怎么说也该满足了, 其实也的确满足了. 但是翻翻以前的照片, 想想我都错过了什么: 先不说小升初中考高考三次大考; 从学农, 到 yjz 那场足球赛, 再到毕业照, 甚至到现在可能连同学们最后一面都见不了; 真的很失败呢.
我知道很多人要留言说诸如 "很多事情就是不能兼顾的" "有得必有失" "人生没什么失败的" "要错过的事情多得是" 这类的话, 在这里我也真心地感谢你们. 想起了当初班长跟我谈虚荣心的事, 人们不都是有虚荣心么, 只不过很多愿意 improve 自己的人就会把自己的虚荣心看的很重然后就觉得自己是这么坏的孩子, 当然别的事情也一样. 就像我安慰 (或者说 "教育"?) zmc 时候可以说出很多冠冕堂皇的话, 其实我自己又何尝不是如此迷惑.

当我坐在中学教室里的时候, 我会想起小学的快乐时光, 当然不用参加小升初考试的那一刻还没有现在这么强烈的分别感; 现在和那时竟然也是一样的: 躺在寝室的床上, 总会想到中学的那些同学们, 总会想到那些自己错过的事情, 总会想到如果没有保送多好, 虽然自己也清楚高三有多么的苦, 也清楚如果我经历了高三就会开始羡慕那些保送的学生.
突然发现还没有拉到正题呢. 不太想拉回来了, 这么 YY 挺好.

现在已经忘记了, 以前和同学们有过什么约定. 只是模糊的记得, 曾经与 Thity 约定, 一起去清华. 然后, 结果就是, 他去了 HUST, 而我到了 SJTU. 还有似乎和木木还是 zch 的约定过, ACM 总决赛赛场上再见. 现在想一想, 我什么时候真正为了约定努力过? 不是说没有努力过, 但是努力的动力似乎都不是某个约定.
果然我是个喜欢爽约的人.
zbw 曾经和我说过, 如果我爽约了, 她可是不一定能原谅我的. 我也不能原谅自己呢, 呵呵.
其实最后不也都淡忘了, 甚至不曾察觉自己的爽约.

算了, 反正一切都过去了.

争取在7月回一次天津吧, 虽然可能只有短短几天呢. 祝所有我认识的高三同学高考顺利, 考完之后玩得愉快, 最好还能模糊地记得你们有个同学是 sqybi.
我写的都什么乱七八糟的啊.

交大ACM队机试结束

题目很恶心,7水+2难.结果就是N多人都是7道题,7道题主流啊…qujun这种做了7道题结果因为全场最水的G题看错题而排名靠后的就悲剧了…

A题,给出C个字母,要求输出由这些字母所有满足下列条件的字符串:所有字母升序排列,每个字母只用一次,长度为L(L<=15),单词里至少有一个元音两个辅音.
这道题因为刚开始状态不太好卡了一会儿,不过最后还是比较顺利的搞出来了.

B题,给一个01矩阵,问有几个连通块(只有上下左右连通才算).
简单的BFS.

C题,给一个5*5的数字矩阵,从任意一点开始每一次向上下左右的任意一个方向走一步,可以走重复的格子,经过6个格子之后会得到一个六位数.问总共可能得到多少个不同的六位数.
纯搜索.

D题,题目描述比较恶心,反正就是给你一堆矩形叠在一起的影子,问最少多少个矩形能够叠出这样的影子.所有矩形都是放在地面上的.
用链表维护一下就行,题目稍微长一些,但是很简单.第一次写写错了,写的算法和想的算法不是一个…走神了啊.不过还好,后来改对了.

E题,有N头牛,每头牛都有一个强壮指数和重量.现在把它们按照某个顺序叠起来,每头牛计算一个上面所有牛的重量之和(不包括自己)减去它的强壮指数,问如何所有牛的这个值的最大值尽量小,输出这个最小的最大值.
刚开始还以为是二分答案,后来想到了贪心是把重量和强壮指数加起来,大的放在底下,但是没法证明,第一次submit还错了.后来发现第一头牛的这个值应该是负的自己的强壮指数,改了再交就过了.但是没完整地证明出来(只证明了三头牛是正确的).

F题,给定函数f(a),计算方法是:把a的最后一位挪到第一位前面,然后平方,再把结果的第一位挪到最后一位后面.问第N个满足条件f(a)=a^2的a是多少.
写个暴力找下规律,就可以发现是1,2,3,21,221,2221,22221…于是直接输出就可以了.

G题,全场最水的一道题.就是给定N个点,两个点之间有个某某概率为1/sqrt((x1-x2)^2+(y1-y2)^2+(z1-z2)^2+1),问最后一个点和前面所有点分别算这个概率,最大的一个概率是多少.
只需要把最后一个点和前面所有点的概率分别算出来然后找个最大的就行了…很可惜,因为是个人赛,所以没办法刚开始就看完所有题…基本上每个人都是最后才做出这道题的.还有很多看错题,求了所有点对之间的…那些人很悲剧…

然后是两道不可做题.

H题,要求求出一个序列{a_n},满足sigma(i=1~n)a_i=x,sigma(i=1~n)a_i^p=y,而且sigma(i=1~n)a_i^q尽量小.输出这个最小值.
数论题,我是直接放掉了…

G题,给一个有向无环图,给四个点abcd,四个点的编号都不同,从a到c和从b到d可以找到一对不相交路径(就是没有公共点),问这样的路径对有多少种.
这道题写了个暴力交上去,然后眼睁睁的看着前面的judge拿我的程序跑,大概在第三个点TLE了…然后给我return了一个TLE…于是就再也没想出来…

大概就是这样,题还是很水的了.最后排在所有人的第13名,比笔试退后了两名…不过据说这次又会有N多人晋级面试,唉…

就要是大学生了吗…

前几天终于到了交大, 乱七八糟地也算是过了一个礼拜. 总体感觉还是很爽的.

Z41到上海, 然后听从 HL 的话一号线转五号线, 大约一个多小时就到了 SJTU.

坐地铁的时候遇到了唯一一次服务态度极其差的情况… ft, 上海人还是很不错的, 并不想所说的那样对外地人很 bs…

然后拿书办卡, 还算挺顺利, 办卡的时候相片照的太难看了…

接下来是分宿舍, 和吴培峰, 傅一波还有强瑞鑫一起分到了 5L, 于是要把一堆大包小包的东西都搬上去… 累的也算够呛. 然后中午 12 点的时候屋里另外三个人也没有来, 只好先去吃饭.

吃 饭的时候叫上了 HL, 去二食堂二楼… 貌似是一个新疆馆, 所以也没吃出来饭和北方有啥太大的不同. 唯一不适应的就是米饭很硬, 而且一粒一粒的, 不过吃了几天也就好了. 还有, 这几天我才发现, 上海的饭真的有很多是甜口的, 不过很合我的胃口. 价格也不是太贵, 总体来说伙食很不错的.

宿舍里面各种东西也很齐全, 除了只能洗凉水澡, 别的基本完美了.

对了, 上海这里早晨的天气是很凉的, 但是到10点左右的时候就很热了, 而且要一直持续到半夜… 于是如果盖被子睡觉就会热到, 不盖就会冻到, 比较烦人的事情.

课上了五节, 周四第一节英语因为老师迟到所以在语音教室坐了一节课, 第二节英语扯了一节课… 然后周五的三节数学更是连扯三节课… 预习了 6 节完全没有派上用场啊…

同学们之间说话还是没什么大问题的, 不过 wpf 和 fyb 两个浙江人要是说起话来我可就听不懂了… 不过他们貌似还可以听懂大部分天津话的, at…

还有, 南方人打牌似乎都是两副牌… 我那天拿出一副牌说, “我这儿有一副牌, 咱们打牌吧”, 然后 wpf 和 fyb 疑惑地问我, “一副牌怎么打啊…” 嗯不过这几天过得很好玩哇.

自行车可以租, 但是没有租过… 校园其实也不是太大, 走着稍微累一些而已.

嗯别的事情也没什么了, 换了个手机, 号码是 (见校内), 原先的号码不用了…

能上网就方便了, 有啥事想起来再写好咯…

ACM/ICPC World Final 2009 结束

真的好久没有更新了呢, 快一个月了吧.
这篇 blog 只说刚刚结束的 WF 的事情, 不会很长, 别的我要是不困再写一篇.

知道今天有 WF 也是下午回家之后的事, 然后立刻开 ranking 观战. 这时有人发来一个视频直播的链接, 打开看了, 很卡加上半懂不懂的英语解说, 我获得的信息基本还是来自 ranking 的.
当时一直关注着 SJTU 的尴尬的 2 题, 然后就发现 tsinghua 在前面也停滞不前了. 接下来就是眼睁睁的看着 tsinghua 被一次次的赶超.
然后 tsinghua 貌似出了一题, 但是很快就发现 ZJU 赶了上来… 这时 TJU 都跑到了 SJTU 的前面, 真的很尴尬. 直到 FROZEN 的时候, ZJU 是 rank 5, TSU 是 rank 6, 而 TJU 和 SJTU 都是 3 题 (似乎快封板了才搞出一题?), 排在好几十名, TJU 貌似更靠前.
然后 FROZEN, 接下来就是一边看亚冠一边期待…

刚刚看完亚冠回来的时候, 群里对比赛结果有 N 种说法… 最后在饮水思源上看到了 JinBin 的发言, 基本确定了 tsinghua 最后是第二, 似乎是最后时刻爆发了, 做出了9题 (封板的时候第一名是8题, 第二名6题, tsinghua 是第6), 不过还是因为罚时只拿到了第二… ACRush 教主竟然拿了两个第二, 真的不知道说什么好… 听说楼教主当时哭了, 其实我也想哭了…

可能记得不是很清楚, 有不对的地方, 但大致的进程就是这样…
ICPC 真的很刺激… 终于又一次发现了它的魅力… 团队协作的比赛, 还是比 TC 那种单打独斗更加令人痴迷, 令人陶醉.

就是这样. 最终圣彼得堡的一个什么学院拿了第一, 清华第二, 圣彼得堡大学第三. 浙大拿到了第六, 赞一个. 而交大最后是并列第13, 很无奈.

Everything is New

友情提示: 本文没有任何实用价值, 请自行决定是否观看本文, 或者直接拉到最后 (不过估计我写不了几行).

虽然说就要进大学了, 但是还没有个新的面貌啊.

Blog 已经两周一次更新了, 足以体现现在我有多么懒. 整天玩游戏, 上校内, 切题, 过得毫无感觉.
Boss 那儿给了不到 20 道二分图匹配的题, 竟然前两道题都没有 1Y, 我真弱智.

嗯还是说正题吧. 开始为 ACM 做准备了. 虽然听说了 SJTU 的 ACM 队很难进, 不过还是有一些憧憬的. 毕竟大一的同学里只有这些 OIer 在竞争, 虽然个个都是高手, 不过自己也不能就这么放弃.
然后呢, 现在很无聊, 于是想为以后的 ACM 准备个用户名. 主要是在各个 OJ 上的 sqybi 的刷题记录没办法清除, 所以换个用户好知道自己哪道题还没做过… 毕竟以前做的题现在不一定还会了.
现在在用 sqybicpp, 看着就难看. 所以自己准备了一些用户名, 欢迎留言告诉我哪个好, 或者有更好的创意也请告诉我…

ssjqtyu – sSjQtYu
sqeezey – SQeezeY
saqcym – SaQcYm
crapixo – cRaPiXo -> RPX -> (R+1)(P+1)(X+1) -> SQY
sterizy – sTeRiZy -> TRZ -> (T-1)(R-1)(Z-1) -> SQY

后面是解释.. 基本就围绕着 sqy, sjtu 和 acm. 貌似 crapixo 还比较好看… ssjqtyu 那个就很难看…

另外, 最近做题要顺手整理代码了, zmc 给我的那份代码库简直太强大了… 不过还是自己整理的代码用着舒服.

武汉大学百度杯比赛惨败

为了方便搜索引擎, 列出全名:
百度杯 第四节华中北区程序设计邀请赛
The 4th Baidu Cup Central China Invitational Programming Contest

比赛也算是比较圆满的结束了 (如果不考虑比赛过程中不断的 HTTP 503 / 500 的话), 挂的也是够惨.
据说除了校内队伍取 40 支, 然后我们总排名第 54. 还有一丝希望晋级吧. 已经被淘汰了. 也好, 轻松了.

不想再发泄什么因为我晚到半小时导致比赛结束 10 min 才出 I 题的事情… 昨天发泄够了也在校内被 bs 够了. 当然当时没 bs 够的还可以接着来这篇文章底下留言 bs… 我现在心情至少比那时候好.

正式比赛里, gnocuil 牛领衔的 E.W.F. 队没有如愿拿到第一, 第一被 jby 神牛的 Gold Kylin 抢去了… 第三竟然是 cqf 神牛, 不知道做题的时候神牛有没有用到 SBT 呢… 第四不认识, 第五是 xt 神牛, 果然中学队伍比较强大.
然后强力的 wh 拿到了第 16, orz一个. 啊, 忘了说, 然牛貌似是第 12 啊. And, rank 13 是姜里羊神牛. 能认出来的貌似就这些.

比赛刚开始, 我就迟到了… 等我到的时候, 比赛已经开始了半小时, 貌似有很多队伍都出两三道题了. 而 zmc 也过掉了 G (似乎是水题, 我没看题).
到了之后我就鬼使神差地开始写 E (一个不是太恶心的枚举), 还鬼使神差的读错题了. 于是贡献了 4 个 WA 以后才 A 掉, 这也就导致我们在出 4 题 5 题的时候, 排名一直是最靠后的.
在我 submit E 的同时, zmc 也在做 J (据说是弱智DP). 然后我在 E 多次 submit 都 WA 的情况下, 最终开始搞 H (纯水题, 排序), 在使用了大量 STL 的情况下 (map, set, vector, pair, algorithm, 基本上 1/2 的程序行都有这些东西), 终于 2Y 掉. 而在 Y 掉 H 之前, zmc 和 Nxun 找到了 E 的问题, 就是读题读错了 (关于该黑棋还是白棋走的问题). 于是 E 题也过掉. 紧接着, zmc 也过掉了 J.
然后, Nxun 就开始折腾那道不太该折腾的题, F (根据化学式计算相对分子质量, 需要高精度). 这道题直到最后也没搞对, 最终确定是高精度写错了. 而我正好发现了 D 题 (Cipher 加密法) 是我曾经给 FNOI 的小朋友们出过的一道题 (瀑布汗! 我当时出的是解密, 这里要求加密), 于是赶快写, 1Y 掉. 这道题本该早写的, 但是当时看 AC 人数比较少所以都没看题…
接下来的时间就是每人一道题慢慢磨的时间了, zmc 是 C (恶心计算几何貌似?), Nxun 还是 F, 而我是 I (SCDP). 最终三道题一道也没出, 比赛结束 10min 后搞出了 I. 错的原因也在校内说过了, 数组开小了 1. Shoot.

这次败得够惨, 顺便膜拜搞出 A (双向宽搜) 的牛们.

顺便提一句, TCO Round 1 我就被淘汰了, 最近状态 ttm 差了…

游戏推荐: 韦诺之战 (Battle for Wesnoth)

貌似是 blog 上第一次专门写一篇文章推荐一款游戏啊. 不过 Battle for Wesnoth 的确是我见过的最好的一款开源游戏了.

Wesnoth 是战棋类游戏, 地图的每一个格子为正六边形, 对战模式的地图存储为文本文件 (也就是说只要了解了不同的字符代表的意义, 你可以用任意一个文本编辑器去编辑 / 制作地图, 不过战役模式则不同). 一个特点是, 所有的单位都只能够攻击相邻格子的单位, 而攻击却有两种, 近身和远程, 当攻击者用其中一种进行攻击的时候, 防御者也只能用对应的那种防御.

单位的种族有很多 (貌似六个?), 而战役 + 对战的模式使得 Wesnoth 变得十分好玩. 对战模式又分为网络对战和本机多人对战, 后者还可以有 AI 的参与, 每个 AI 都是一个 Python 代码, 你可以自己编写一个 AI.

如果想要玩一玩, 直接到官网下载程序和各种地图, 大部分 Linux 用户可以直接从源里安装, 或者你也可以从 SVN 下载并编译.

战役和对战都玩了, 因为我玩的战役 (South Guard) 大部分都是控制人族单位的, 所以对人族了解稍微多一点, 给没玩过的朋友稍微介绍一下.
弓箭手, 这个我刚开始时大量招募的单位, 网上说很鸡肋. 我开始不太觉得, 但是打到 South Guard 的倒数第二关 (盗贼支线) 的时候终于发现很难用了 — 即使升到了三级, 依然一打就死, 虽然远程近程都不弱, 但是血薄是它的致命弱点, 强烈不推荐. 不过打一些零星的类似人族重甲的血厚却没有远程攻击的单位还是有一些用处的 (不过基本也是一个甚至几个换一个).
矛兵, 最经济的单位. 刚开始看它的远程比较弱, 所以不喜欢招募, 后来发现它守城还是有很大用处的, 因为即使是防御的时候, 它也会率先攻击. 价格不是太贵, 升级之后也比较强, 加上血不是太薄, 多买些没坏处.
骑兵骑手, 两个移动极高的单位. 区别我也不太清楚, 貌似骑兵更适合侦查, 而骑手更适合打游击.
重甲步兵, 也就是前面提到的 "重甲". 血比较厚 (实际上和骑兵骑手一样), 近程攻击强 (单次攻击耗血量大), 移动速度慢. 实际使用中还是配合矛兵防守为好, 最好旁边有法师补血. 感觉这东西如果出就要攒够钱一下子出好几个, 不然一两个很快就会被对方的远程部队干掉. 还有, 我曾经试过在对战中用重甲加弓箭手拼AI的树人 (精灵族一个类似重甲但是攻击力更强一些的东西), 输得很惨.
法师, 血薄, 不过远程攻击是魔法攻击, 对任何单位都有 70% 的命中率. 而且能够给周围的单位补血. 如果足够有钱, 一个法师周围一圈重甲再外面几个骑兵矛兵扫荡, 比较爽… 当然能出这些兵的时候估计已经赢了…
剑术家, 生命不多, 攻击力不高, 有稍微高一些的闪避和速度. 如果是一个普通的单位, 貌似没有什么存在的价值 — 不过它有一点却是无人能比的, 那就是无视控制区域. 在 Wesnoth 里, 如果前方有一个敌人, 那么那个敌人周围的几个格子是不能通行的 (也就是不能通过敌人身边的格子绕到敌人身后), 那些格子叫做敌人单位的控制区域. 而剑术家可以无视控制区域, 这表示如果敌人的 boss 在血不多的时候被几个敌人单位用控制区域围在了中间, 剑术家依然可以攻击到敌人的 boss 并完成致命一击. 当然, 招募多了也没啥用.
基本就是这些.

我在战役 South Guard 里卡在第 6 关了. 正如上面说过的, 我选择了和盗贼结盟的支线. 在第 5 关的时候, 已经和精灵结盟的你会面临一个支线选择, 如果选择和盗贼结盟, 精灵就会和你反目成仇, 你需要和盗贼一起打败不死族; 反之, 你需要和精灵联手打败不死族和盗贼. 从网上为数不多的评论看来, 精灵支线会比盗贼支线好打得多. 虽然精灵支线会导致必须一直打到第 9 关才能结束, 而盗贼支线貌似只有 7 关, 不过盗贼支线的第 6 关 (就是我在卡的那关) 十分困难. 这关里, 需要和盗贼一起 (实际上盗贼的单位都很弱, 基本没用, 而盗贼首领也很弱, 还需要保护它) 同时突破精灵和不死族的阻击从地图右下角到达左上角, 回合数也是少得可怜的 40 回合. 我即使到最后使用了大量的牺牲战术牺牲了很多个三级兵 (有大部分是弓箭手, 三级弓箭手仍然无法用来抗血), 还是回合用尽 (差一点就到了啊啊啊) 输掉了战役. 最关键的是, 大片森林地形对精灵和不死很有利, 我十分无奈…

说了这么多, 还是去玩玩吧… 至少应该不会让你失望的.

p.s. 为啥还没收到 SJTU 的预录取通知书… and, whu 的那个比赛, 问了一堆人, 想去的只有我, zmc, Nxun 和 xhy 四个人. 发现什么了没有? 我们四个都是 SJTU 的! 十分无语啊, SJTU 的人都这么喜欢比赛么…

2009.02.22

最近一直在瞎折腾, 不过也算是折腾了一些有用的事情.

首先是 TLE, 结果出来了, TESTGEN 那题竟然0分, 名次最终下降了两名, 不过还是可以接受了.
超过我们的那两个队伍中, 有一个是 TESTGEN 一题得分第一的队伍.

然后 Fedora 在前几天 update 的时候挂掉了, 据说原因是内核版本更新了, 而源里的驱动版本没跟上. 而且貌似 fedora-zh 上也有人有同样的问题. 本来想换个发行版, 结果一个偶然的机会不知怎么就进了 Fedora 了… 于是在 oldherl 和 WC_111191 的帮助下, 下载 nVIDIA 驱动, 编译安装 (这中间还出了点小问题), 成功. 看来 Fedora 还得用不少日子了, 如果过段时间换的话, 我准备在 Mint 和 Arch 中选一个.
不过不爽的是, iBus 在我编译完 Python 2.6.1 之后挂掉了, 也不知道和 Python 版本变化有没有关系. 现在暂时用 scim-python 了, 但是无论是 iBus 还是 scim-python, 都比 Windows 下的输入法烂得多… 啥时候 Google 拼音或者搜狗拼音能进驻 Linux 啊…

这几天大部分时间在 Fedora 下工作, 最大的一个好处就是这样基本不玩游戏了.
而这些时间里也熟悉了一下 Emacs, 感觉快捷键太凌乱了, 而且找不到一个太好的教程 (也是因为它的功能太多了). 所以准备学习 VIM, 至少不用按那么多 Ctrl / Alt (另外我是知道为啥用 Emacs 要把 Esc 绑定到 CapsLock 了).
同时筹划着安装 TeXLive 的事情, 不过的确对自己配置中文没有信心, 加之最近基本用不上, TeX 还是放放好了.

今天弄了本软件工程的书来看看, 结果发现真的很无聊… 果然我不会对付这种长篇大论的东西啊.
说到无聊, 货币战争也让我看得头昏脑胀的. 还好坚持下来了, 现在已经差不多快看完了. 总的观点就是, 这东西也就看看, 有点太夸大罗斯柴尔德家族了.

在这儿特别感谢一下 oldherl, 最近给了我很多帮助, 除了帮我折腾好了 Fedora (300多行的聊天记录啊), 还耐心地为我 (和crazygir1) 讲解了他的 Linux 经历 (”一个 Open Source 大牛的成长历程” — crazygir1 语) 以及 SVN 和 lowsars 开发的事情.

明天开始就要给 wjf 讲电脑操作的一些基本知识了… 还是要讲 Windows 的, 估计如果给他讲 Linux 然后出现我这种驱动挂掉的问题, 他得把我杀了… 何况作为老师经常要处理 doc 之类的文档… 不过我讲啥好呢…

打这篇文章的时候, 左 Alt 突然坏掉了… 很无奈. 过几天又要换键盘了…

在 Linux 和 Windows 下都禁用了 Firefox 的 TwitterFox 插件, 转 twhirl 了…

BTW, 和 Baiger 学姐讨论到的一个问题, xhy 说他已经收到 SJTU 的预录取通知书了, 为啥我还没收到呢…

Time Limit Exceeded 结束 && Happy Valentine’s Day~

昨天搞完了 Time Limit Exceeded, 现在还有一道题TESTGEN没有测试, 其余题目我们 YaohuaFree 的 Rank 是 41, 得分很诡异地竟然是 1234 分 (Rank List). 还算可以接受吧, 不过很可惜最后还是没有达成超过 lonelycorn 和搞掉 CLASS 这两个目标.
简单的说一下题目.

  1. Key to C (KEY)
    这道题是我们第一道出的题目, 也是搞得最久的一道题目, 不过事实证明这道题根本拉不开分差 — 最高的 154 分, 而我们 126 分就 20 多名了. 和其他的题目的 rank 1 动辄上千分比起来, 这道题做了基本相当于没做.
    题目要求读入一些数, 判断它们的二进制表示是否回文. 评分标准和很多东西有关, 比如程序中关键字的个数 (这个权重最大), 比如空格个数, 比如代码长度… 总之这些东西都是越多得分越低. 然后代码回文会得到 extra bonus, 貌似是 4 倍多分数吧.
    基本的做法就是?:操作符加main递归, 貌似 rank 1 那个也就这么做的.
  2. Play with Code (SHORTEN)
    给出一个代码要求缩短. 这道题最终也不知道那个代码到底啥意思, 只看懂了一段求素数. 而且那个代码在我们几个人的机器上跑貌似都 RE 掉了… 评分规则是代码长度越长分数越少.
    最终的做法是物理缩短… 也就是 define 一个 for 啊, 改一点变量名啊… 就这样子…
  3. Produce the Code (INPUT)
    给出一个输入文件和一个输出文件, 要求写一个程序, 对于这个输入文件能够输出给出的输出文件. 当然可以不理睬输入文件直接把输出文件打出来 (我的第一个 code 的确是这么干的), 不过这样代码长度会很长, 而这道题的评分规则也是代码长度越长分数越少…
    这道题由三个人合力完成… 先是来帮忙的 xhy 同学看出了替换规则 (我就是一直卡在这里), 然后我折腾出了乱序的规则, 最后是木木同学的 coding… 虽然 rank 不高不过做得很爽.
  4. #ED (CODEHASH)
    给出一段代码, 给一个 hash 函数, 要求代码输出自身的 hash 值.
    貌似有人用 whitespace 来搞, 不过还是比较 orz 那个 rank 1 的, 就一句代码… 很强大.
    这题我们一点没动.
  5. COMPILE ERROR (CLASS)
    我最想做出来的题, 但可惜最后也没做出来.
    要求写一个类 multiply, 里面包括一个函数 mult(int a, int b), 函数的功能是输出 a * b 的结果, a, b 都小于 10000. 变态就变态在不允许用空白字符…
    见到了两种解决方法, 一种是官方的 (之所以说官方因为这道题提示了要用 typedef, 如果认为题目描述的那个 "typedefine a class" 不足以说明问题, 那么自己去翻 forum), 另一种很诡异, 用一个不可见字符替代了空白字符还编译通过了… 据说那个字符是 \f, 从来没见过…
  6. PRINT D PENGUIN (PENGUIN)
    给一个字符画, 是 Linux 那个企鹅. 要求输出这个东西.
    基本就是考压缩, 我因为怕编译器没法处理所以只压缩成了可见字符, 但是事实证明编译器是可以处理不可见字符的, 因为 rank 前几名的都用了不可见字符. 我很无奈, 不过可见字符范围的压缩我基本是搞到极限了, 还比较有成就感.
  7. PRINT ME (PRINT)
    这道题是前来帮忙的 xhy 写的, 题目要求很简单, 输入一个数, 如果是偶数那么输出代码本身, 否则反转代码输出.
    xhy 写了一个回文的代码, 这样就不用管奇数偶数了, 而且根据题目还可以获得 200 pts 的加分.很不错.
    最后一天用了很短的时间完成的 code, 得分还不低 (貌似是所有题里 rank 最高的一个), 或许是性价比最高的一个 code 了.
  8. P=NP (NP)
    这道题的题目描述讨论了半天也没明白, 最终放弃. 直接贴出英文题目描述, 做出来的神牛 (比如 oldherl) 来讲解一下…
    "Given an directed graph, find out the minimal set of vertex such that all vertex not in the set have atleast one edge in the set."
  9. P!=NP (TESTGEN)
    这道题是为上一道题出测试数据 (想起 SRM 了), 以上一道题 submit 的代码跑的情况评分. 因为前一道题没看懂, 加上最后还有 10 分钟的时候才开写, 所以输出了一个基本是完全图的图草草了事. 这道题至今还没出成绩.
  10. Arbit Code (ARBIT)
    此题做的比较爽. 给一段会 TLE 的代码 (实际测试证明还会 RE), 要求改成能够 AC 的代码. 不知道代码是干什么的, 只有数据范围.
    这道题我们的做法是, 把一个范围内 (刚开始是 1~20, 后来为了测试增加到了 1~50) 的所有输入全部打出来, 然后分析规律.
    刚开始的成果是, 求 f(a, b)的时候, 把 b 从 1 到 a 列出表格, 发现每到 a 的约数才发生变化.
    接下来我发现对于素数和素数的幂, 它们的 f 的变化规律是按照比它小的幂变化 (不太好描述, 想知道的话自己输出几个比如 a = 27 或者 16 就能发现了).
    然后木木又发现了 f(a, 1) = phi(a) (这里 phi 是欧拉函数).
    最后时刻木木大胆猜测:
    当 b = 1 时, f(a, b) = phi(a);
    当 b 不是 a 的约数 (a % b != 0) 时, f(a, b) = f(a, b – 1);
    当 b 是 a 的约数时, f(a, b) = f(a, b – 1) + f(a / b, 1).
    然后写了个 code submit 上去, 挂了.
    差点就认为这个推测不对, 但是本地测试 100 以内的数据发现和给出的程序输出完全匹配.
    最后偶然发现, 有一句要做 t * ((i – 1) / i) (不用说也知道是求欧拉函数时候写的), 我当初写的是 t * (i – 1) / i, 而 t * (i – 1) 会爆掉 int… 改成 t / i * (i – 1) 就 AC 了.
  11. Give It a try (THINK)
    这道题是最有意思的, 要求破解三个密码, 没有任何提示.
    第一个密码很简单, 一篇文章, 把里面所有的大写字母挑出来拼在一起, 就是答案了.
    第二个密码是一个 32 * 241的 01 矩阵, 最后也不知道是啥意思, 只知道答案是 2.
    第三个密码, 刚开始一看就感觉是一个简单的 26 个字母的置换, 然后还推出了 p => e, 另外还找到了三个 p 连在一起的一个突破口. 但是无奈没有破解经验, 加上文章里竟然 26 个字母都是齐全的, 让我有点打退堂鼓, 所以没有一鼓作气破解出来, 很遗憾. 其实想想, 当初直接按照统计学的字母出现频率解密, 然后再做微调, 应该都可以把密码破出来了… 很无奈.

比赛基本就是这样, 最后的 1234 分真的不是有意为之… 运气比较好吧.

——————-我是爱情的分隔线——————-

今天情人节, 白天在家待了一天 (本来说要和 lxc, djs 去打台球, 一想今天人应该多就没去), 晚上去 FNOI (还迟到了), 就这么度过了情人节.

放一张图, 从 M67 那里看到的, 来源是 Abstruse Goose (来源页面).

alicenbob 

祝各位情人节快乐, 估计我能在本科上完之前找到第一个 GF 就很不错咯… 光棍节还可以一直过下去, 很满足很满足…
p.s. 文章写完正好 0:00, 情人节过去了… 这篇文章的分类想了很久是 About Computer 还是 About
Life, 最终还是放在了前者里…