树状数组no pain no game(hdu 2013多校contest3)
2013-08-01 10:40
106 查看
这道题 数据量 和 询问都达到 50000
要求 [l ,r]区间内的 最大gcd(a,b) 不能简单暴力 两两求 gcd(a,b)
容易得 在 一个连续区间内 以 最右 的端点 为标志 (也可以最左的端点为标志,过程对称相反),从下标大的 向 下标小的 (从后向前)扫描 ,对 每个a[i]找出 它的所有约数,若出现两次(用一个数组 b[])来记录
(若b[k]!=0 则出现两次 ) ,并用它来更新b[k]之后 的 所有 c[](树状数组里的 部分和 ) (更新是 向上的,且传入的 约数 与 c[]值 取 最大值 )。则这段区间内的 l~ri(ri<r) 的最大gcd(a,b)
等于 getmax(ri) (向下 找 )
根据这个思想 可以先对 要查询的 区间 进行 排序可以只对 l 进行 排序 因为最终的getmax()扫面是 从上往下的 所以 每次 更新 都可以从 n(最大下标)开始
总之 树状数组 不一定用于 修改求和
还可以 update ( ) 和 其他操作
总之是对连续区间 1~i 或 i~n 进行修改 查询(求和 求 最大 etc.)
要求 [l ,r]区间内的 最大gcd(a,b) 不能简单暴力 两两求 gcd(a,b)
容易得 在 一个连续区间内 以 最右 的端点 为标志 (也可以最左的端点为标志,过程对称相反),从下标大的 向 下标小的 (从后向前)扫描 ,对 每个a[i]找出 它的所有约数,若出现两次(用一个数组 b[])来记录
(若b[k]!=0 则出现两次 ) ,并用它来更新b[k]之后 的 所有 c[](树状数组里的 部分和 ) (更新是 向上的,且传入的 约数 与 c[]值 取 最大值 )。则这段区间内的 l~ri(ri<r) 的最大gcd(a,b)
等于 getmax(ri) (向下 找 )
根据这个思想 可以先对 要查询的 区间 进行 排序可以只对 l 进行 排序 因为最终的getmax()扫面是 从上往下的 所以 每次 更新 都可以从 n(最大下标)开始
总之 树状数组 不一定用于 修改求和
还可以 update ( ) 和 其他操作
总之是对连续区间 1~i 或 i~n 进行修改 查询(求和 求 最大 etc.)
相关文章推荐
- HDU 4608 I-number 2013 Multi-University Training Contest 1 1009题
- hdu 4781 Assignment For Princess && 2013 Asia Chengdu Regional Contest && YY
- 2013 Multi-University Training Contest 1 Warm up HDU 4612
- HDU 4793 Collision(计算几何)——2013 Asia Changsha Regional Contest
- HDU 4794 Arnold (Fib数模 n 的应用)——2013 Asia Changsha Regional Contest
- 2013 Multi-University Training Contest 9(hdu 4686 - 4691)dp(好)+矩阵快速幂+一般图匹配带花树+后缀数组
- HDU 4770 Lights Against Dudely(2013 Asia Hangzhou Regional Contest)
- Hdu 4681 2013 Multi-University Training Contest 8 String
- 2013 Multi-University Training Contest 1 Occupy Cities HDU 4606
- HDU 4770 Lights Against Dudely(2013 Asia Hangzhou Regional Contest A)
- HDU 4798 Skycity (计算几何+推公式) 2013 Asia Changsha Regional Contest
- hdu 4790 Just Random 2013 Asia Chengdu Regional Contest [数学]【思维】
- 2013 Multi-University Training Contest 1 (hdu 4601 hdu 4603)
- 2013 Asia Hangzhou Regional Contest(HDU 4770 4771 4772 )
- HDU 4771 Stealing Harry Potter's Precious(2013 Asia Hangzhou Regional Contest )
- HDU 4791 Alice's Print Service(2013 Asia Changsha Regional Contest)
- HDU 4609 3-idiots(FFT优化 + 计数方法)——2013 Multi-University Training Contest 1
- HDU 4772 Zhuge Liang's Password(2013 Asia Hangzhou Regional Contest )
- HDU 4609 3-idiots(FFT优化 + 计数方法)——2013 Multi-University Training Contest 1
- HDU 4662 MU Puzzle 2013 Multi-University Training Contest 6