SQYBI.com

Change is a part of life, and takes part in finding us who we are.

2008年09月12日
by sqybi
13 Comments

TopCoder SRM 417

继SRM 415暴0,SRM 416因为晚开了几分钟没注册成之后,SRM 417上,我又华丽地暴0了... 这套题目给OI(也就是可以开题看所有题)的话估计期望是做出两道题(250和1000). 题目很黑,250pts虽然一如既往地水,但是500pts竟然那么难,以至于很多人没开1000pts...我在最后几分钟开的,然后发现是一个裸的Floyd...囧掉.不过不知道为啥room里唯一做了1000的人fail掉system test了. 250挂的很无语.发现错误,然后已经改对了...刚要点submit就到时间了... 结果第一个被cha掉,意料之中的. 这次的算法: 250pts,暴力.刚开始估计错了text的子串数量,后来经winsty提醒才发现总共也就几千个... 500pts,人肉出11组本质不同的解,剩下的就是旋转翻转匹配.没了. 1000pts,暂且认为是Floyd.至少我没发现这道题有阴人的地方. 总结三点: 1.做250一定要坚决果断,一定要确定这就是暴力的题...TC!=OI... 2.没有保证250调过就不要开500. 3.想出来一个算法不要立刻实现,多花点时间分数低点无所谓... 果然做TC的经验要慢慢积累.现在还是OI的思路,根本没法刷rating(rating是浮云...浮云...),甚至没法保证得分...唉... 后面几次TC的目标是保住250,争取500,争取重回yellow...(其实掉到Div 2再回Yellow更容易些...) 另外250pts没submit的一个小客观原因:鼠标滚轮突然坏掉,只能自己拉滚动条...囧死了. 过两天还得买新鼠标去...

2008年08月27日
by sqybi
4 Comments

TopCoder SRM 415

彻彻底底被屠了. challenged + challenged + unopened = 0 pts... 250pts,纯水,贪心就行.可我竟然忘记了处理-1的情况...然后Run System Test才发现两个-1的点TLE了. 这道题也花费了我太长的时间...C++用的本来就不熟悉,然后TopCoder的编程环境是那么的别扭(在Code::Blocks里写更别扭)... 然后500pts,据说可以分半DP,我写的搜索,可惜250费的时间太多,500到最后样例还是WA.就是一个V很大n很小(32)的01背包. 1000pts,比赛结束之后我才开了看.模糊记得以前似乎见到过一道这样的题目,是自动机上的DP吗?求大牛解答. 屠惨了...还剩1400多分.蓝了. 其实250如果过了的话应该还可以黄的...

2008年08月24日
by sqybi
18 Comments

TopCoder入门教程 -- sqybi完善版

本文根据经典的TC教程完善和改编。 TopCoder:http://www.topcoder.com/ 基本规则 TopCoder的比赛类型很多,最常见的是周赛SRM(Single Round Match),另外还有TCHS SRM(TopCoder High School SRM,题目和SRM一样,仅限中学生参加,参赛者水平较低,据说涨rating很容易),马拉松(Marathon Matchs),还有TCOpen(每年两次的大比赛)之类的比赛。因为大多数人都在做SRM,所以本文介绍的TC比赛即为SRM。 SRM的规则总结起来就是一句话:75分钟做完3道难度递增的题。 TC的每个用户(handle)都有自己的积分(rating),从0-3000+不等。成绩越好,分数越高。 积分与颜色的对应为:白色——未参赛(unrated);灰色——0~899;绿色——900~1199;蓝色——1200~1499;黄色——1500~2199;红色——2200+。另外排名最高的几个人在TC客户端中会变成红色靶子图标。 比赛分为两个Division,Div I和Div II。白色灰色和绿色的参加Div II,蓝色黄色和红色的参加Div I。Div I的题要比Div II难许多,一般DivII的最后一题和Div I的第一或第二题是一样的。无论是Div I或Div II。三道题目的Score一般为250, 500和1000。 TC的计分规则很诡异,可以见http://www.topcoder.com/wiki/display/tc/Algorithm+Competition+Rating+System,但基本是没人看的懂。不过,TC积分规则的基本思想很简单。 首先是SRM每道题的计分规则。题目从打开开始计时,随着时间的流逝,你这道题目可能得到的分数也越来越少。不过分数减少的速率会逐渐变慢(有人说是先快后慢再快再慢,我不清楚到底哪个是对的,不过总体趋势是越来越慢),一般1000分的题目在降低到300分的时候就基本不会再下降太多了。每道题点击Submit才算正式提交,如果Submit之后发现错误,还可以再次点击Submit修改提交,不过这样会扣除这道题一定的分数。 其次是TC的计分规则。复杂的数学公式很难看懂,但大概的计分思想是:根据此次比赛的得分算出一个这次比赛的rank,然后和以前的rank做比较,求出一个期望的rank,再根据这个期望的rank调整rating。而有时也会出现考得很砸但依然涨rating的情况,不过总体来说TC的计分公式是十分稳定的。 运行环境 TC的客户端是一个Java程序,所以需要JRE(Java Runtime Environment)或者JDK(Java Development Kit)来运行。如果平时不写Java程序的话,装JRE就可以了。毕竟JDK比JRE大一个数量级,下载慢。安装照着提示完成就行了。推荐使用1.4.1以后的版本,因为带了java web start,可以快速登陆。具体方法下一部分讲。 JRE下载地址(中文):http://www.java.com/zh_CN/download/index.jsp 注册 原文在注册的地方没有详细说明,但很多人似乎对注册都有疑问。所以这里我来注册一个小号,并通过整个过程讲解如何注册。 首先打开http://www.topcoder.com/tc(本文后面TopCoder的主页都指这个网址),然后点击右上角的Register … Continue reading

2008年08月17日
by sqybi
10 Comments

ZOJ Monthly August 2008 and SRM 414 and dd's Contest

今天做了两场比赛,ZOJ Monthly和SRM. 总体感觉还是不错,coding速度有待提高.思路准确性不够.coding准确性尚可. ZOJ去晚了,做了几道弱智题,拿了rank 60.其实早去半小时,就能top 25了... ZOJ月赛好多人组队参加...下次考虑和jl等人组个队. SRM,基本发挥水平,250+500全部Pass,可惜250和500开始想的都有问题,加上我C++的coding速度很慢,最后加起来也不到500分.我那个room都是强人,六个red...于是cha人的时候,打开一个代码,就提示我这个已经被cha了,再打开一个,又提示...最后一个代码也没看完就都cha干净了...现在rating是1671,涨得不多... 对了,还有dd的一个模拟赛,那个我写了三道题的标程.交到TOI的时候,第三题又因为%lld和%I64d的问题挂掉了...我忘了TOI是Linux系统,直接交了%I64d... ZOJ Monthly 中午去图书大厦,下午回到家,winsty告诉我有月赛...然后那时候人家都比了一半了. 这次月赛是ZOJ内部集训的题目,于是某道题我就得利了...可是重写的程序精度还是出了问题,最后2Y掉.就是1008题,这题AC率好低...传说中的万人坑. 然后1006,1002和1001都1Y掉了. 1008 这题注意精度,十分注意精度...没别的了. 1006 统计每个数在a和b中分别出现的次数,然后对每个数对应的两个次数取个最小值,最后把这些最小值都+起来.用了map和迭代器,STL果然好用. 1002 小学奥数题,竟然想了半天没想出来...后来MM群里有人提醒我(HL牛?),就是那个一个人牵着一匹马(一头驴也一样...)从A走到B途中要去河里喝水...问最短路径...后来又扯到Fermat原理...但不管怎么说,就是作(b, 0)关于三角形那条斜边的对称点...然后对称点和(0, a)连线,求出这条连线与斜边的交点,就是反射点...没有精度问题. 1001 写个暴力,跑,然后打表...dd的题目真恶搞... SRM 414 Div 1 第一次做Div 1,题目还不是很难. 250 这道题一开始想复杂了,一直在想怎么处理第一个表格从一天的什么时刻开始填的问题...后来发现一天最多有10^6个时刻,于是直接枚举...然后最后Pass掉.很囧...这道题白白掉了一大半的分数. 500 这道题开始想的就是正确的,贪心.可是细节处理出了问题. 算法是每个string记录当前取到了哪个字母,每次取字典序最小的一个字母. 细节上,当两个字符串当前字母一样的时候,需要比较剩余后缀的字典序.注意abc比abcd的字典序靠后,而不是一般我们认为的靠前. 一度以为时间复杂度太高会被cha,事实证明pass了. dd_engi的NOIP模拟赛 题目难度适中.dd的题质量还是不错的. 生命游戏 … Continue reading

2008年08月15日
by sqybi
11 Comments

TopCoder SRM 413

Div 2果然是水题.第一次SRM,变黄. yuhch不好好出题啊... 此文测试插件用 有爱者可以忽略 第一题,纯水.贴TC的标程: double minTime(int length, int maxAcceleration, int maxVelocity) { double t1 = sqrt(length / double(maxAcceleration)); if(maxAcceleration * t1 > maxVelocity) { double t2 = maxVelocity / double(maxAcceleration); return (length - maxAcceleration * t2 * t2) … Continue reading