Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

做题总结以及注意事项

Posted by ixor at 2011-03-24 21:02:50 on Problem 1009
1、如果不对大块相同数据的处理做优化,一定会超时。
2、谨慎处理边界条件,有可能会出现单行、两行的图像。

其他没有什么了,只是优化问题上见仁见智,我在第一次TLE
的基础上做了两点优化,很容易就AC了,下面是我的思路:

为了获取稳定的性能表现,我做了两种不同的优化:
1)三行内的优化。
2)多行相同数据的优化。

1)三行内的优化:
读取的数据是行程压缩的,比如:输入的数据是:
7
15 4
100 15
25 2

那么先将其变成规整的行,设其表示如下:
(15, 4) (100, 3)
(100, 7)
(100, 5) (25, 2)
观察数据,可知,并不是行内的所有位置都需要计算,那么可以求出
所有需要计算的位置,对不需要计算的位置直接做复制处理。想像将
所有不同值的像素染色,需要计算位置为三行中任意两行中色彩交汇
的地方。多的不讲,如果不很理解可以参考代码。

分析:当行很长时,且行中的色条很长的时候,这种三行内的优化是
非常有效的。但是,如果测试数据中行很短,那么这种优化很有可能
因为其本身的复杂度反而造成性能下降。

2)多行数据优化:
这个比较简单了,简述为:如果发现一次性读入了一个超长的RLE项,
那么可以肯定中间一定有几行0存在,具体怎么处理就看不同的实现
了。

抛砖,求更好的思路。

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator