求助算一个东西
  • 板块学术版
  • 楼主yukimianyan
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/12/30 14:33
  • 上次更新2023/12/30 17:05:52
查看原帖
求助算一个东西
509229
yukimianyan楼主2023/12/30 14:33

给定整数 s,t,u,l,r,m≤30,sz=2m−1s, t, u, l, r,m\leq 30, sz=2^m-1,询问有多少个整数 x∈[l,r]x\in[l,r] 使得 (t−2ux) mod x<2u(t-2^ux)\bmod x < 2 ^ u。或者以下是代码形式:

auto f = [&](int s, int t, int u) { return (t - s * (1ll << u) % sz + sz) % sz; };
auto calc = [&](int l, int r, int t, int v) {
  int res = 0;
  for (int i = l; i <= r; i++) res += f(i, t, v) < (1 << v);
  return res;
};

然后要调用 calc(l,r,t,v∈[0,m))calc(l, r, t, v\in[0, m)) 这样子,这是一组数据需要的计算量,一共 50005000 组数据,有没有什么方法能解它?

2023/12/30 14:33
加载中...