如果线段树写的是左闭右开。
if (l < m) mdf_mod(x * 2, lx, m, l, r, md); if (r >= m) mdf_mod(x * 2 + 1, m, rx, l, r, md);
是错的。
正确:
if (l < m) mdf_mod(x * 2, lx, m, l, r, md); if (r > m) mdf_mod(x * 2 + 1, m, rx, l, r, md);