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

差旅网站建设做网站一般多少钱

差旅网站建设,做网站一般多少钱,公众号app下载,做淘宝还是京东还是做网站分治 主席树。 设$solve(l, r)$表示当前处理到$[l, r]$区间的情况#xff0c;我们可以找到$[l, r]$中最大的一个数的位置$mid$#xff0c;然后扫一半区间计算一下这个区间的答案。 注意#xff0c;这时候左半边是$[l, mid]$#xff0c;而右区间是$[mid, r]$#xff0c;我…分治 主席树。 设$solve(l, r)$表示当前处理到$[l, r]$区间的情况我们可以找到$[l, r]$中最大的一个数的位置$mid$然后扫一半区间计算一下这个区间的答案。 注意这时候左半边是$[l, mid]$而右区间是$[mid, r]$我们在这个区间处理的时候要算完所有$mid$的情况然后我们每一次分治的时候去处理$solve(l, mid - 1)$和$solve(mid 1, r)$要不然当$mid$是端点的时候就会无限递归下去。 问题转化快速算出一个区间内$\leq$一个数的数只要一棵主席树就可以解决了区间最大值可以用$ST$表维护出来。 我们每一次选取一个比较短的区间去枚举然后算另一个区间的答案这样子每一次计算区间的长度至少减少一半这样子可以保证时间复杂度。 时间复杂度$O(nlog^2n)$。 Code #include cstdio #include cstring #include cmath #include algorithm using namespace std; typedef long long ll;const int N 1e5 5; const int Lg 20; const ll inf 1LL 60; int n, tot 0; ll ans 0LL, a[N], num[N];template typename T inline void read(T X) {X 0; char ch 0; T op 1;for(; ch 9 || ch 0; ch getchar())if(ch -) op -1;for(; ch 0 ch 9; ch getchar())X (X 3) (X 1) ch - 48;X * op; }template typename T inline void chkMax(T x, T y) {if(y x) x y; }namespace ST {int st[N][Lg], len[N];inline int bet(int x, int y) {return a[x] a[y] ? x : y;}inline void prework() {for(int j 1; j 18; j)for(int i 1; i (1 j) - 1 n; i)st[i][j] bet(st[i][j - 1], st[i (1 (j - 1))][j - 1]);}inline int qMax(int x, int y) {int k len[y - x 1];return bet(st[x][k], st[y - (1 k) 1][k]);}} using namespace ST;namespace SegT {struct Node {int lc, rc;ll sum;} s[N * 40];int root[N], nodeCnt 0;#define lc(p) s[p].lc#define rc(p) s[p].rc#define sum(p) s[p].sum#define mid ((l r) 1)void ins(int p, int l, int r, int x, int pre) {s[p nodeCnt] s[pre];sum(p);if(l r) return;if(x mid) ins(lc(p), l, mid, x, lc(pre));else ins(rc(p), mid 1, r, x, rc(pre));}ll query(int r1, int r2, int l, int r, int x, int y) {if(x y) return 0LL;if(x l y r) return sum(r2) - sum(r1);ll res 0LL;if(x mid) res query(lc(r1), lc(r2), l, mid, x, y);if(y mid) res query(rc(r1), rc(r2), mid 1, r, x, y);return res;}#undef mid} using namespace SegT;void solve(int l, int r) {if(l r) return;int mid qMax(l, r);if(mid - l r - mid) {for(int i l; i mid; i) {int pos upper_bound(num 1, num 1 tot, (ll) (num[a[mid]] / num[a[i]])) - num - 1;ans query(root[mid - 1], root[r], 1, tot, 1, pos);} } else {for(int i mid; i r; i) {int pos upper_bound(num 1, num 1 tot, (ll) (num[a[mid]] / num[a[i]])) - num - 1;ans query(root[l - 1], root[mid], 1, tot, 1, pos);}}solve(l, mid - 1), solve(mid 1, r); }int main() {read(n);for(int i 1; i n; i) {read(a[i]);len[i] log2(i), st[i][0] i;num[tot] a[i];}prework();num[tot] inf;sort(num 1, num 1 tot);tot unique(num 1, num tot 1) - num - 1;for(int i 1; i n; i) {a[i] lower_bound(num 1, num 1 tot, a[i]) - num;ins(root[i], 1, tot, a[i], root[i - 1]);}/* for(int i 1; i n; i) printf(%lld , a[i]);printf(\n); */solve(1, n);printf(%lld\n, ans);return 0; } View Code  转载于:https://www.cnblogs.com/CzxingcHen/p/9905867.html
http://www.huolong8.cn/news/33239/

相关文章:

  • 佛山网站优化服务腾讯企业邮箱下载app
  • 不准别人网站做反链南京专业网站设计哪个品牌
  • 网站怎么做百度快照同一个ip网站太多 seo
  • 网站开发算法岳阳公司做网站
  • 做网站详细教程贵阳做网站公司吗
  • 网站促销活动策划如何在阿里巴巴做网站
  • 网站建设制作报价wordpress 3.8 问题
  • 厦门响应式网站建设电子商务网站所应用的技术
  • 做的网站打不开了800折网站怎么做
  • 网站运营编辑做什么的常熟有哪些网站建设公司
  • 网站建设目标和功能介绍工业做网站
  • 网站源码超市上海建设局官方网站
  • 新浪博客网站做门户网站啥意思
  • 网站设计与网页配色实例精讲pdf网站建设全过程
  • 网站优化哪家专业word上下页内容不连续
  • 算卦网站哪里可以做360网站卖东西怎么做
  • 广西住房城乡和建设厅网站知名建站公司
  • 各类微网站建设wordpress怎么做后端
  • 腕表手表网站加强意识形态建设 办好政协网站
  • 泰安市违法建设网站wordpress后台美化
  • 怎么在导航网站上做推广外包的利与弊
  • 门户网站内容物流网站的建设方案总结
  • 好的平面设计灵感网站广西壮族自治区市场监督管理局官网
  • 做网站是用c 吗网站建设备案审核要多久
  • 建设部网站阮建昌公示网络营销方案500字
  • 建设化妆品网站的成本比较好的网站设计
  • 番禺区大石做网站黑icp 网站建设
  • 贵州省兴义市建设局网站小公司有必要买财务软件吗
  • 好网站推荐一下典型网站建设
  • 东莞做微网站建设价格网站制作的设计思路