hdu 4027 Can you answer these queries?

题意:将题目的背景去掉,简单的说,就是每一次对一个区间的所有值都分别做一次求平方根的运算,就是将那个值改为它的平方根的值,每次再询问一段区间内的总和

分析:很明显的用线段树来做,不过明显的对线段树还是不熟悉,一开始将每一步update操作都更新到具体的每一个点了,没有任何技巧,直接TLE;很明显,如果每一步都必须更新的具体每一个点的话,就是一个

O(n)复杂度的操作了,这个对使用线段树来说,没太大意义了。

这题目而言,我们发现,任何一个2^63次方以内的数,开根号都至多开八次,也就是,多次询问操作之后,很多都已经不需要update了,所以,只需要在每一个节点中增加一个域,用来标记该区间是否已经全部更新到0或者1了,若满足条件,则不需要更新了

 

posted @   枕边梦  阅读(279)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示