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

天津建站费用汕头网站建设方案优化

天津建站费用,汕头网站建设方案优化,临沂专业做网站公司,织梦手机网站分亨链接怎么做这一题,虽说在洛谷标的是模板题,但可能没有“历史研究”那一题更加模板。 这一题相对于回滚莫队的模板题,可能在回滚的处理上稍微复杂了一点。对于回滚莫队就不多解释了,可以看一下 回滚莫队模板题 这一篇博客,稍微简单…

        这一题,虽说在洛谷标的是模板题,但可能没有“历史研究”那一题更加模板。

        这一题相对于回滚莫队的模板题,可能在回滚的处理上稍微复杂了一点。对于回滚莫队就不多解释了,可以看一下 回滚莫队模板题 这一篇博客,稍微简单的解释了一下。

        当整个询问区间都在一个块儿内的时候,只需要按顺序暴力解决即可,处理完之后把状态清空。

        当整个询问区间不在一个块儿的时候,按照回滚莫队的思路,按顺序向右更新区间状态。暴力处理当前区间。问题就是按顺序向右更新,只需要记录每个颜色第一次出现的位置即可,就能求出来最大间距。但是从中间位置向左暴力处理当前块儿的时候会发现之前的条件不足以找到最大间距,所以在之前的时候需要记录一下每个颜色最右边的位置即可。然后把结果记录,回滚状态。

int n, m, len;
int o[N], st[N], f[N], sr[N];
struct LSH // 用于离散化处理
{int a, id;
} ls[N];
struct Query // 询问列表
{int l, r, id;
} q[N];inline int get(int a) // 得到块儿号
{return a / len;
}
bool cmp(Query a, Query b) // 排序函数
{int i = get(a.l), j = get(b.l);if(i != j) return i < j;return a.r < b.r;
}
inline void lsh_init() // 离散化处理
{stable_sort(ls, ls + n, [&](LSH a, LSH b){return a.a < b.a;});int pr = -1, s = 0;for(int i = 0; i < n; i ++){if(ls[i].a == pr) o[ls[i].id + 1] = s;else o[ls[i].id + 1] = ++ s;pr = ls[i].a;}
}
inline void add(int a, int& res)
{if(!st[o[a]]) st[o[a]] = a;sr[o[a]] = a;res = max(res, a - st[o[a]]);
}
inline void sovle()
{cin >> n;len = sqrt(n); for(int i = 0; i < n; i ++){int a;cin >> a;ls[i] = {a, i};}lsh_init();cin >> m;for(int i = 0; i < m; i ++){int a, b;cin >> a >> b;q[i] = {a, b, i};}stable_sort(q, q + m, cmp);for(int x = 0; x < m; ){int y = x;while(y < m && get(q[y].l) == get(q[x].l)) y ++;int right = get(q[x].l) * len + len - 1;// 整个区间都在块儿内while(x < y && q[x].r <= right){	int id = q[x].id, l = q[x].l, r = q[x].r, res = 0;for(int i = l; i <= r; i ++) add(i, res);f[id] = res;for(int i = l; i <= r; i ++) st[o[i]] = 0, sr[o[i]] = 0; // 回滚状态,需要把用到的st以及sr回滚状态x ++;}// 不在一个块儿的询问int i = right + 1, j = right, res = 0;stack<int> yi;while(x < y){int id = q[x].id, l = q[x].l, r = q[x].r;while(j < r) add(++ j, res); // 从中间位置向右顺序遍历int backup = res; // 记录res 用于暴力处理之后的回滚while(i > l) // 从中间向左暴力处理{i --;if(!sr[o[i]]) // 如果这个颜色在区间内没出现过{yi.push(o[i]); // 记录一下暴力处理过程中用到的sr,之后全部回滚sr[o[i]] = i; // 记录这个颜色最右边的位置,就是当前位置}res = max(res, sr[o[i]] - i);}while(yi.size()) // 回滚状态{int a = yi.top();sr[a] = 0;yi.pop();}f[id] = res; // 记录答案res = backup; // 回滚res状态x ++;i = right + 1; // 回滚左端点}memset(st, 0, sizeof st); // 清空memset(sr, 0, sizeof sr);}for(int i = 0; i < m; i ++)cout << f[i] << endl;
}

http://www.hkea.cn/news/156761/

相关文章:

  • 我做中医培训去哪个网站找学员谷歌排名算法
  • 如何将网站让百度收录网店培训班
  • wordpress旧版页面编辑界面百度seo推广计划类型包括
  • 网站建设茶店网网站换友链平台
  • 珠海建设工程信息网站网络营销百度百科
  • 帮别人做网站推广犯法吗关键词排名网站
  • 建设通网站是政府的么高端网站定制设计
  • 玉溪做网站的公司夸克搜索网页版
  • wordpress导航主题haowseo挂机赚钱
  • 广州做家教的网站深圳网络推广招聘
  • 锐捷网络公司排名seo技术介绍
  • 新圩做网站公司拼多多代运营一般多少钱
  • 免费网站可以做cpa?短视频营销的优势
  • b2b外贸营销型网站如何做电商赚钱
  • 建设无障碍网站seo分析报告怎么写
  • 电子商务网站开发进什么科目模板自助建站
  • 威海市住房和城乡建设局官方网站北京seo营销公司
  • 开网页卡优化关键词排名工具
  • wordpress右侧文章归档东莞公司seo优化
  • 个人网站建设需求说明书免费外链生成器
  • 湖南网站建设的公司排名网页制作网站制作
  • 公司网页网站建设 ppt模板app开发公司排行榜
  • 网站开发yuanmus联合早报 即时消息
  • 为什么只有中国人怕疫情seo 页面
  • 网站开发总结报告十大门户网站
  • 临淄信息港发布信息临沂seo建站
  • 门户网站系统介绍企业推广哪个平台好
  • 免费网站建站排行榜网站策划报告
  • 网站设计的评估最近发生的热点新闻
  • 设建网站广告投放渠道