CodeVS 1083 Cantor表

题目

源地址:

http://codevs.cn/problem/1083/

理解

一道基础题,但是我在如何建立模型上面想了很久。 事实上,我们可以按照斜线分类,第1条斜线有1个数,第2条有2个数,以此类推,第i条有i个数。这样,我们可以很轻松的知道,前i条共有S(i)=12i(i+1)个数。由方程n<=S(k),我们可以求出n所在的斜线的位置,也就是floor(sqrt(8.0*n+1)-1)/2。 本来在小白书上面,这个问题已经被解决了,但是CodeVS上面的这道题采用了不同的排列规则。通过观察可以发现,这个规则和斜线数k的奇偶性有关。只要进行一次简单的判断就可以让结果按照需要的规则进行排列了。

Read More

UVa 11059 Maximum Product

题目

源地址:

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=22&page=show_problem&problem=2000

理解

这道题卡了两个半小时,各种神体位卡数据。 最开始题意理解错误,认为是要求出最大的乘积,实际上应该是求最大的连续积。然后在for循环的开始和结束全都卡了很多次,卡long long,卡输出,卡边界条件,直到队友看不下去了来帮我看代码,才终于解脱= =。 天若了,真的太弱了- -,遇到这种坑特别多的题目,发挥就各种失常,这样可不行。

Read More

大学生网站集合

即使是在搜索引擎如此发达的今天,依然有很多偏僻但是特别有用的网站被无数SEO们死死地压在身下。比如,直到现场赛的前几天,才从学长们的口中知道了在线数列大全(OEIS)这样神一般的网站。我就不禁想,像这样的网站是不是并不在少数?我们是不是可以把自己积累的一些好网站共享出来,让大家都能在搜寻某方面的信息可以对症下药,而不是用几个关键词翻来覆去地在Google上面盲目的搜寻?于是,这个大学生网站集合项目就诞生了。

Read More

Codeforces Beta Round 2 A Winner

题目

源地址:

http://codeforces.com/contest/2/problem/A

理解

真尼玛给俄式英语跪了= =,游戏规则中最关键的地方各种看不懂。

If score is negative, this means that the player has lost in the round.`

这句话一直看不懂,是不是只要为负就能直接出局?还是就算暂时是负的也是没有关系的,只要最后大于最后的M就可以?直到看到CF的多组样例之后才明白,应该是后面一种。 除了这个之外,好好地学习了一下STL中的map,vector和迭代器,感觉好厉害!涨姿势了。

Read More

Codeforces Beta Round 1 C Ancient Berland Circus

题目

源地址:

http://codeforces.com/contest/1/problem/C

理解

题意很简单,就是给出一个正N边形的三个点,要求求出这个正N边形的最小面积。 然后就是我不停地逗的过程了= =,因为手滑,在计算3个角的时候,全都采用了反cos函数的方法求解,debug的时候一直以为是double精度的问题,直到看到这样下图,我才恍然大悟= =,可怜我的两个小时。 示意图

Read More

Codeforces Beta Round 1 B Spreadsheets

题目

源地址:

http://codeforces.com/contest/1/problem/B

理解

大水题一道,不过我坑了很久,实在是代码功底太弱。 题意非常简单,给出两种表格的坐标体系,要你进行相互转化,本质上是一道26进制转化类的题目。 我遇到的坑基本上分为两类,一个是在判断当前输入的字符串属于何种类型,第二是在具体实现过程中的BUG。 首先,讲一讲判断的过程。我另外写了一个判断的函数,一开始想的比较简单,只要判断第二个是不是字符,就OK。挂在了Test 2,错误样例是A1。然后就在思考,这两种坐标体系的根本不同到底在哪里。实际上,RXCY体系中一定有字符R和C,R和C之间必定会有一个数字。从这一点出发,重写了一遍judge函数,总算是搞定了问题。 其次,来看一下在具体的实现过程中的BUG。这一次挂在了Test 6,一个总共有1000个的输入= =,错误的样例是R228C494R98C688。观察之后发现,问题出在进退位上,因为在A—Z的体系中,实际上是没有代表’0’这个字符的,所以,当R或者C坐标上出现整除的时候,就会发现本应出现’Z’的地方,出现了字符’@‘。不过在挂了这么多发之后,偷懒直接进行了特判,当’Z’出现字符串末尾,也就是c%26==0时,直接指定它为’Z’;当Z出现在字符串最前方时,直接在输出中过滤。 然后= =,A了。

Read More