02 2014 档案

摘要:题目链接:http://codeforces.com/problemset/problem/275/B题目内容:给出一个n * m 大小的grid,上面只有 black 和 white 两种颜色填充。问任意两个black cell 的连通是否满足最多转一次弯而达到。当然,如果有好多堆black cell 也是不满足条件的,即只能有一堆!! 这是继color the fence 之后,又一条花了我很长时间才做出来的题目,因为搜索这些技巧学不好,于是只能结合观察能力做出来了。其实最直接的方法应该是bfs,可惜= =,好啦我会加油的!!! 主要分成两个个部分判断:1、black cell 是否有且仅 阅读全文
posted @ 2014-02-25 22:25 windysai 阅读(320) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/284/C题目意思:给出3种操作:t = 1:在前 a 个数中每个数都加上x; t= 2:在数组末尾增加一个数k,数组长度相应增加1; t =3:删除数组最后一个数,数组长度减少1。对于n次操作,都给出整个数组所有元素的平均值。一开始看见题目意思那么容易懂,于是以为很容易做,错足14次,15次终于成功了。先是TLE(对操作2直接暴力循环加),后在Test 10 wa wa wa~~~,说误差超了,全部不知道是什么回事! 其实3个操作不需要都模拟出来,操作3是比较麻烦的,因为删除的数有可能经过 t = 1 阅读全文
posted @ 2014-02-19 22:05 windysai 阅读(333) 评论(2) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/279/A题目意思:给出一个坐标点(x, y),问当从(0, 0) 开始到达该点转过的拐角有多少个。(拐角是这样的:(0, 0) -> (1, 0) -> (1, 1) -> (-1, 1) -> (-1, -1) -> (2, -1) -> (2, 2) ->...),总的来说,对于每一圈可以想成它是从坐标系的第四象限开始的(x > 0 && y 2 #include 3 #include 4 #include 5 using names 阅读全文
posted @ 2014-02-16 23:30 windysai 阅读(299) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/379/C题目意思:有n个users,每个user都有自己想升的rating。要解决的问题是给予每个人不同的rating,使得每个人rating不比他期望的rating小,即 安排的rating >= 他自己的希望的rating,还有一个条件就是 总rating之和要最小。 要想使得总rating最少,那么安排的rating要尽可能小。把rating从小到大排序。对最小的rating值当然就给予这个值,于是下一次安排的rating在这个值的基础下递增1(rmin+1),当下一个user期望的rat 阅读全文
posted @ 2014-02-11 15:23 windysai 阅读(329) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/388/A题目意思:有 n 个 boxes,每个box 有相同的 size 和 weight,但是strength 有可能不同。strength的数值表示该box的上面只能放strength 个 boxes,直到放不下,这样就成了一个pile。问如何叠放使得pile 的个数最少。 一开始从最底层放置考虑,于是越想越复杂..... 可以从最高层来开始,那么放在最上面的box的strength最小可以为0,但是stength为0的box在每个pile中最多只可以放一个(0代表这个box上面不能再放任何的bo 阅读全文
posted @ 2014-02-10 22:17 windysai 阅读(487) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/384/B题目意思:给出n个数组,每个数组包括m个数字,当k = 0 时,需要把n个数组都按照从小到大的顺序排列,k = 1则把n个数组里面的数字按照从大到小的顺序排列。 直接模拟即可,不过有个地方注意下是可以减少工作量的,当处理第 i 行的时候,不再需要移动前 i - 1 行的数组下标。因为前 i - 1行的数组都排好序了。TimeMemory46 ms500 KB 1 #include 2 #include 3 #include 4 #include 5 using namespace s... 阅读全文
posted @ 2014-02-10 16:57 windysai 阅读(252) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/289/B题目意思:给出一个 n 行 m 列的矩阵和数值 d 。通过对矩阵里面的数进行 + d 或者 - d 的操作,是否可以使矩阵上的所有数相等。可以的话输出最少的操作步数,否则输出 -1。 由于矩阵的排列对处理没什么影响,因此不需要用到二维数组存储。接着把矩阵中所有的数从小到大进行排序,要想算出最少的步数,很容易想到应该最中间的数(中位数)靠拢。最关键的是如何判断不能通过对矩阵中的数进行处理使得所有数相等。我的做法是,在将每个数向这个中位数靠拢的过程中,它们的差(绝对值)应该能被 d 除尽,一旦有一 阅读全文
posted @ 2014-02-07 21:15 windysai 阅读(364) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/300/B题目意思:给出n个students(n%3 = 0),编号依次为1~n,接下来有m行,每行有两个数:a和b(1 1人组的人数(不成组) 根据这样硬用并查集来做,代码量非一般多!!!这就是不会算法的悲剧咯~~~ 我的思路: 先用并查集来连边,保证大编号的指向最小编号的。 接着统计一人组,二人组,三人组的人数(分别为c1,c2,c3),以判断结果为-1的两种情况。 最后依次输出: 二人组 + 一人组,三人组,一人组 (除了三人组的情况其他两种都要组合)(以后学好dfs一定要写条简短的代码,呜呜呜~ 阅读全文
posted @ 2014-02-06 00:11 windysai 阅读(403) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/389/B题目意思:给出一个由n行n列组成的board,其中'#'表示的一片地方恰好能画满十字架,画满的意思表示:这些十字架不能够共用'#' !当然如果全部都是'.',表示不画十字架。问如果有'#'和'.'的board上,是否恰好能填满所有'#'。能就输出 'YES',否则输入'NO' 比赛的时候完全没有思路,这是赛后做出来的,参考了别人的思路。可以这样想,考虑到十字架这么特殊 阅读全文
posted @ 2014-02-04 12:41 windysai 阅读(273) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/300/A题目意思:给出n个数,将它们分成三批:1、所有数相乘的结果 0; 3、所有数相乘的结果 = 0 还需要满足一个条件:n个数的归属只可以是其中的一批。由于翻译的时候总是以整个短语来翻,因此一直误以为“product”是“产物”的意思,多谢乌冬兄指点迷津。 不难想到对所有数进行排序,最小的那个数绝对是负数,因此第一批数放1个即可;最大的那个数归到第2批(也是1个),但有个问题,有可能最大的那个数是0,此时第2批要放2两个数(负数),保证相乘是整数,其余放在第3批即可(0和任意一个数相乘都为0),. 阅读全文
posted @ 2014-02-03 12:21 windysai 阅读(250) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/387/problem/B题目意思:给出1~n个问题,以及要满足是good rounde条件下这n个问题分别需要达到的complexity,最后还有George已经准备好的关于这些问题的m个complexity。问George要come up with的问题最少有多少个。 很明显要使问题最少,那么满足每个问题的complexity为一个即可。解决这个问题的关键是要理解这句话:He can simplify any already prepared problem with complexitycto any positive 阅读全文
posted @ 2014-02-02 12:58 windysai 阅读(245) 评论(0) 推荐(0)