Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
做题总结以及注意事项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: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator