http://ooj.wzoi.org/
此乃OIBH的Online Judge,名字叫OOJ。
这个Online Judge一定算是所有中文OJ中最好的,原因之一在于它吸收了两大(现在已经挂了的)中文OJ的优点。题目说明部分一看就是TOJ的,而分测试点进行测试则是Vijos的精华。它的统计信息比两个中文OJ都要好,对于每个人和每道题都可以看到其总分和平均分以及提交记录。
界面做得比TOJ精致,比Vijos清爽,看起来很舒服(没Vijos那么花哨),速度又比Vijos好。这样的界面显然感觉比Vijos更好。FAQ等页面是英文的,貌似有些专业。
在排名方面,OOJ有它的特点。它不计较“通过率”,只看你“通过的题数”与你“曾经做过的题数”。换句话说,OOJ更重视你“做过但还没有AC”的题数。
排名的依据不是通过题数的数目,而是所有你通过的题的得分总和(刚才重新研究了一下OOJ的排名,这里更正一下,这个“总和”里包含了比“通过率”更需要马甲的因素——每一题的实际得分会因为WA/TLE的次数而有所减少,因此上文所说的“平均分”也将会因此降低,这在事实上起到了和“通过率”相同的作用。虽然有特色,但从某些方面来讲还不如普通的OJ排名方式)。
还有一点,OOJ肯定是这些OJ中最稳定的,永远不会出现过一会儿又挂掉的事情——OOJ受到了CCF的支持。
当然,现在没有推出有他的道理。它现有的题太少,而且大多没什么创意。这段时间没事我会给他几道原创题的。
Jul
4
Jul
31
Problem
小卡卡继续着他的Pascal圣地之行。他来到了Pascal农场主John的家里,向他探询关于Pascal圣地宝藏的事。
John答应小卡卡愿意把他所知道的一切告诉小卡卡,但是John有一个要求,那就是希望小卡卡帮助他找出他走丢的一头奶牛。
John的奶牛都是由1-2^k编号的,但是John在放牛的时候无意中弄丢了一头奶牛。他希望小卡卡告诉他,他走丢的奶牛的编号是多少。
Input
该题含有多组测试数据。
每组测试数据第一行一个整数k表示奶牛的数目为2^k(1<=k<=20)。
第二行到第2^k行每行一个整数表示还在农场的一头奶牛的编号(并不是按顺序给出的)。
Output
输出走丢的奶牛的编号
Sample Input
2
4
1
3
Sample Output
2
问题就是这样了。怎么办?cow:array[1..1048576]of boolean;?一个一个查找比较?
最终,解决办法还是被我找到了,一个出乎意料的算法:把读入的数全加起来,然后用公式算从一加到2^k的和,用它来减读入的数的和显然就是差的那个数了。
呵呵,很不寻常吧。这应该归为什么算法呢?
