poj 2528 Mayor's posters 线段树+离散化

离散化处理要注意+1(看了HH大牛的博客懂的,以前自己的代码是不对的)

例如数据:

1

3
1 10
1 3
6 10
这样,普通离散化处理  {1 3 6 10}, 然后此程序会操作成点染色,于是结果为2, 但正确答案为 3;
HH大牛给出一种离散化方法:
      如果相邻数字间距大于1的话,在其中加上任意一个数字,比如加成[1,2,3,6,7,10],然后再做线段树就好了 (详见下面代码)按照上述方法离散化处理,为 {1 3 4 6 7 10 11 },  染色, 结果为 3;这样,就很简洁地将一个数字表示成一段区域。


 


 

posted on 2011-12-06 22:10  c语言源码  阅读(184)  评论(0编辑  收藏  举报

导航