当前位置: 首页 > news >正文

wordpress 多站点迁移/重庆森林粤语完整版在线观看免费

wordpress 多站点迁移,重庆森林粤语完整版在线观看免费,专做秒杀的网站,成都建站模板题面 洛谷 题解 考虑暴力,对于询问中的一段区间\([l,r]\),我们先将其中的数升序排序,假设当前可以表示出\([1,k]\)目前处理\(a_i\),假如\(a_i>k1\),则答案就是\(k1\),否则,调整右界到\(ka_i\…

题面

洛谷

题解

考虑暴力,对于询问中的一段区间\([l,r]\),我们先将其中的数升序排序,假设当前可以表示出\([1,k]\)目前处理\(a_i\),假如\(a_i>k+1\),则答案就是\(k+1\),否则,调整右界到\(k+a_i\)

考虑如何优化,还是扫到了\([1,k]\),假设\(ans=k+1\),如果所有小于等于\(ans\)的数的和\(sum\)起来大于等于\(ans\),则一定可以将\(k\)更新成\(sum\)。否则直接输出就好了。

以上这个过程很明显可以用主席树维护,统计一个区间内小于等于某个数的数的和。

接着来证明一下这个东西的复杂度。什么时候对于这种算法,复杂度最劣呢?就是,对于一个区间\([l,r]\),排完序后有:
\[ a_i=\sum_{j=l}^{i-1}a_j(l\leq i\leq r) \]
比如:\(1,1,2,4,8,16,...,2^k\),所以说,这个算法的复杂度是\(log_2(\sum a_i)\),而\(\sum a_i\leq10^9\),所以所以是对的

#include <cmath>
#include <cstdio>
#include <cstring>
#include <algorithm>
using std::min; using std::max;
using std::swap; using std::sort;
using std::unique; using std::lower_bound;
typedef long long ll;template<typename T>
void read(T &x) {int flag = 1; x = 0; char ch = getchar();while(ch < '0' || ch > '9') { if(ch == '-') flag = -flag; ch = getchar(); }while(ch >= '0' && ch <= '9') x = x * 10 + ch - '0', ch = getchar(); x *= flag;
}const int N = 1e5 + 10, Inf = 1e9 + 7;
int n, q, a[N], rt[N], poi;
int val[N << 5], lson[N << 5], rson[N << 5];
ll sum[N << 5];int insert(int o, int l, int r, int k) {int o_ = ++poi;lson[o_] = lson[o], rson[o_] = rson[o], sum[o_] = sum[o] + k;if (l == r) return o_;int mid = (l + r) >> 1;if (k <= mid) lson[o_] = insert(lson[o_], l, mid, k);else rson[o_] = insert(rson[o_], mid + 1, r, k);return o_;
}ll query (int x, int y, int l, int r, int k) {if(l == r) return sum[y] - sum[x];int mid = (l + r) >> 1; if(k <= mid) return query(lson[x], lson[y], l, mid, k);else return sum[lson[y]] - sum[lson[x]] +query(rson[x], rson[y], mid + 1, r, k);
}int main () {read(n);for(int i = 1; i <= n; ++i)read(a[i]), rt[i] = insert(rt[i - 1], 1, Inf, a[i]);read(q); int x, y;while(q--) {read(x), read(y);ll MX = 1, ans = 0;ans = query(rt[x - 1], rt[y], 1, Inf, int(MX));while(ans >= MX && MX != Inf) {MX = min(1ll * Inf, ans + 1);ans = query(rt[x - 1], rt[y], 1, Inf, int(MX));} printf("%lld\n", ans + 1);}return 0;
} 

转载于:https://www.cnblogs.com/water-mi/p/10280736.html

http://www.jmfq.cn/news/4915873.html

相关文章:

  • 重庆网站建设公司/跨境电商培训机构哪个靠谱
  • 做优化网站注意什么/百度投诉中心24人工 客服电话
  • 江苏企业网站定制服务/怎样推广小程序平台
  • 2880元网站建设/百度游戏官网
  • 专业的培训行业网站制作/六种常见的网络广告类型
  • 淘宝的网站怎么做的好/爱站工具包官网
  • 怎么自己建一个论坛网站/哪个行业最需要推广
  • php做网站主要怎么布局/外包客服平台
  • 淘宝客网站建设难度大吗/域名解析ip地址查询
  • 网站扫码怎么做的/成都seo工程师
  • 做网站推广有效果吗/百度关键词优化
  • 魔方网站建设网站制作/网络营销策略的特点
  • 做网站是互联网开发吗/怎么做一个网页
  • 烟台做网站案例/如何做好一个网站
  • 如何做网站管理/江门seo外包公司
  • 网站编辑做app/投资网站建设方案
  • 网站建设报价东莞/每日新闻播报
  • 暖通设计网站推荐/谷歌seo详细教学
  • 网站建设佰金手指科杰十一/网络建站平台
  • 0基础做下载网站/优化大师是什么软件
  • 海口房产网站建设/长春做网站推荐选吉网传媒好
  • 手机做图片的网站/个人网站模板
  • 网站开发技术及特点/在线培训系统平台
  • wordpress 前台评论/优化法治化营商环境
  • 织梦移动端网站模板下载/网络推广山东
  • vps网站管理助手教程/重庆关键词快速排名
  • 制作公司工作网站/腾讯新闻发布平台
  • 网页设计与制作怎样添加图片/关键词优化排名用哪些软件比较好
  • wordpress在线演示/北京seo技术
  • 施工企业工作分解结构/保定百度首页优化