作业帮 > 综合 > 作业

for ( ; i ^ 1; i >>=

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/04 19:19:46
for ( ; i ^ 1; i >>=
原程序完整代码如下:
# include # include
# define N 100005
int n,D;int cnt[4 * N],num[N];
void update(int i)
{
for ( ; i ^ 1; i >>= 1)
{
cnt[i >> 1] = cnt[i] + cnt[i ^ 1];
}
}
int query(int s,int t)
{
int ret;
ret = 0;
s += D-1,t += D+1;
for ( ; s ^ t ^ 1; s >>= 1,t >>= 1)
{
if s & 0x1) ret += cnt[s+1];
if ( t & 0x1) ret += cnt[t-1];
}
return ret;
}
void init(void)
{
for (D = 1; D < N+2; D
for ( ; i ^ 1; i >>=
for ( ; i ^ 1; i >>= 1)
for循环,判断条件为i^1(即i的二进制最低位与1进行位异或),i>>=1将i的二进制值右移1为再赋给i