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

百度推广会帮你做网站不网站不收录怎么解决

百度推广会帮你做网站不,网站不收录怎么解决,建网站要什么工做人员,石家庄市建设工程有限公司扫描线介绍:OI-Wiki 【简单】一维扫描线(差分优化) 网上一维扫描线很少有人讲,可能认为它太简单了吧,也可能认为这应该算在差分里(事实上讲差分的文章里也几乎没有扫描线的影子)。但我认为&am…

扫描线介绍:OI-Wiki

【简单】一维扫描线(差分优化)

网上一维扫描线很少有人讲,可能认为它太简单了吧,也可能认为这应该算在差分里(事实上讲差分的文章里也几乎没有扫描线的影子)。但我认为,一维扫描线是十分重要、也是十分套路的,学过和没学过的差距很明显。希望大家认真学习。

例1

有n个点,m组[ai,bi),求所有m个区间重叠的部分有多少个位置。其中m<=1e6,0<=ai<bi<=n<=1e9

可以用扫描线思想。

扫描线可以看作是差分的优化,差分处理对a[s]~a[t]中的元素+1的方法:d[s]+=1, d[t+1]-=1
但差分求值需要遍历整个d数组,时间、空间复杂度为O(n),n为被修改数组的长度
如果长度太长(比如1e9),就会空间过大+超时

这时就可以上扫描线,其核心思想就是把差分在数组上的操作抽象成对数轴上若干个点的操作
例如:差分方法:d[s]+=1,d[t+1]-=1; 扫描线方法:在数组尾部插入 {s,+1} {t+1,-1}

这样只要对存储点修改的数组进行遍历,再用累加变量累加修改值,就能实时得到当前点的值
同时,当前修改点和上一个修改点之间的所有数组元素,其值都是上一个修改点位置的累加变量
这样时间、空间复杂度都为O(m),m为修改点的个数,肯定能过

扫描线的注意事项:
1.存储点修改的数组,用vector方便,但有常数过大而超时的风险。建议在m比较大的时候使用普通数组

2.存储所有修改点之后一定要按照修改位置从小到大排序,不然就乱了

3.排序后还要处理同一个点多次修改的重复问题,有三种主流的解决方案:
1)在遍历所有点时,先对它和它之后所有修改下标一致的点进行合并,再计算。这是比较稳妥的方法

2)在求最值等一些特殊的题目中(比如例1),重复累加并不影响操作,可以根据排序让它只有在同一个点都累加完后,才出现对答案有贡献的值
比如,求最大值。可以排序时先按照下标升序排序,再把-1操作排在+1前面,这样遍历时先减再加,不会影响最大值的求解。

3)使用万能的map。map就像一个桶数组一样,可以很方便地把所有点的修改都累加到一块去。还能自动按照键升序排序,绝对是为扫描线量身定做的梦想中的容器!
但这样虽然方便,会有因常数过大而超时的风险(map理论复杂度为O(nlogn),但这个log很大)

Code:

#include <bits/stdc++.h>
using namespace std;struct Node{int pos, add; // 位置pos,贡献addfriend bool operator < (Node p1, Node p2){ // 先按照位置升序排序,再按照贡献升序排序(减法要排在加法前面,不然会导致先加得大了,然后求max时答案出错)if(p1.pos != p2.pos) return p1.pos < p2.pos;return p1.add < p2.add;}
};void solve()
{int n;cin >> n;vector <Node> A;for(int i = 0, b, t; i < n; i ++){cin >> b >> t;A.push_back({b, 1});A.push_back({t, -1}); // 注意大炮的范围是[b,t),所以差分的-1应该在t位置上,而不是t+1}sort(A.begin(), A.end());int ans = 1, d = 0; // ans是答案,d是差分值for(auto it : A){d += it.add;ans = max(ans, d);}cout << ans << "\n";
}signed main()
{ios :: sync_with_stdio(false), cin.tie(0), cout.tie(0);solve();return 0;
}

例2

n n n 个点, m m m 个修改,每次修改都对[l,r]区间内的每个点+1。1<=n,l,r<=1e9 1<=m<=1e6 1<=a[i]<=1e6
求 Σcnt[i]*a[i] 其中cnt[i]表示点的值为i的个数,a[i]表示每个值为i的点对答案的贡献。

这道题需要求区间修改后n个点中每一个值的个数。
记得前面说过“同时,当前修改点和上一个修改点之间的所有数组元素,其值都是上一个修改点位置的累加变量”。

由此,能知道两个修改点之间的所有点的值,又可以容易地计算出两个修改点之间差了多少个点。就可以统计cnt数组了。(具体看代码里pre变量的使用)

但这道题的难点不在于扫描线,而是出题人……
1.不能给所有变量都开long long,这样会因为常数过大而超时(因为long long占8个字节,int占四个字节,所以long long平均每次运算次数都是int的两倍)

2.如果你图方便用map存储所有的修改点,以为这样就不用考虑重复的问题了。但抱歉,出题人也会卡

在OI赛制下,很少有人能注意到上面两个坑点。码风朴实,没有那么多花里胡哨的同学反而因为不用STL而占据优势。

Code:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxm = 1e6 + 5;int n, m;
int a[maxm], cnt[maxm]; // cnt:记录个数的桶数组struct Node{int p, t; // 表示p位置的修改为tfriend bool operator < (Node p1, Node p2){return p1.p < p2.p;}
};
vector <Node> d; // 差分数组void solve()
{cin >> n >> m;for(int i = 1; i <= m; i ++) cin >> a[i];for(int i = 1, l, r; i <= m; i ++){cin >> l >> r;d.push_back({l, 1}); d.push_back({r + 1, -1}); // 进行差分}sort(d.begin(), d.end()); // 排序int pre = -1; // 上一个差分的点int ans = 0; // 累加变量for(int i = 0; i < d.size(); i ++){int pos = i;while(d[i].p == d[i + 1].p){ // 把同一个位置的所有修改都累加起来,这样便于统计答案d[pos].t += d[i + 1].t;++ i;}if(pre != -1){cnt[ans] += (d[pos].p - 1) - pre + 1; // 累加的答案区间是[pre,d[].p)}ans += d[pos].t; // 累加pre = d[pos].p; // 记录前一个端点}ll tot = 0;for(int i = 1; i <= 1e6; i ++){tot += 1LL * a[i] * cnt[i]; // 对于不存在的,cnt[i]一定=0,其不会被记录}cout << tot << '\n';
}signed main()
{ios :: sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);solve();return 0;
}

【困难】二维扫描线(计算几何)

先咕一下,等会了再补
https://blog.csdn.net/Zz_0913/article/details/135128515

End

感谢大家的观看!拜拜ヾ(•ω•`)o

推销个人洛谷账号:ylch,洛谷博客:YLCHUP


文章转载自:
http://wanjiaequivocation.xnLj.cn
http://wanjiachemoimmunotherapy.xnLj.cn
http://wanjiaprotostele.xnLj.cn
http://wanjiacafetorium.xnLj.cn
http://wanjialinkwork.xnLj.cn
http://wanjiaassumingly.xnLj.cn
http://wanjiaanalogise.xnLj.cn
http://wanjiafaultage.xnLj.cn
http://wanjiamayanist.xnLj.cn
http://wanjialengthiness.xnLj.cn
http://wanjiatrotsky.xnLj.cn
http://wanjiaadsorbability.xnLj.cn
http://wanjiafledged.xnLj.cn
http://wanjiareassertion.xnLj.cn
http://wanjiavociferous.xnLj.cn
http://wanjiamonellin.xnLj.cn
http://wanjiaphlebitis.xnLj.cn
http://wanjiagamosepalous.xnLj.cn
http://wanjiapentarchy.xnLj.cn
http://wanjiarecto.xnLj.cn
http://wanjiagowster.xnLj.cn
http://wanjiafloristics.xnLj.cn
http://wanjiategular.xnLj.cn
http://wanjiaopus.xnLj.cn
http://wanjialeninism.xnLj.cn
http://wanjiacronus.xnLj.cn
http://wanjiaraptor.xnLj.cn
http://wanjianee.xnLj.cn
http://wanjiaepistrophy.xnLj.cn
http://wanjiakimbundu.xnLj.cn
http://wanjiaspringhalt.xnLj.cn
http://wanjiaafreet.xnLj.cn
http://wanjiamesoblast.xnLj.cn
http://wanjiaelision.xnLj.cn
http://wanjiadiaconal.xnLj.cn
http://wanjiabetsy.xnLj.cn
http://wanjiadisfranchise.xnLj.cn
http://wanjialigeance.xnLj.cn
http://wanjiaacquainted.xnLj.cn
http://wanjiaperquisite.xnLj.cn
http://wanjiaperle.xnLj.cn
http://wanjiaenswathe.xnLj.cn
http://wanjiacruzeiro.xnLj.cn
http://wanjiaacousticon.xnLj.cn
http://wanjiafuselage.xnLj.cn
http://wanjiados.xnLj.cn
http://wanjiareligiousness.xnLj.cn
http://wanjiamotory.xnLj.cn
http://wanjiadiastem.xnLj.cn
http://wanjiawantonly.xnLj.cn
http://wanjiafebriferous.xnLj.cn
http://wanjiahive.xnLj.cn
http://wanjiamugho.xnLj.cn
http://wanjiaphanariot.xnLj.cn
http://wanjiahydroscope.xnLj.cn
http://wanjiaunsanctified.xnLj.cn
http://wanjiavermeil.xnLj.cn
http://wanjiasanandaj.xnLj.cn
http://wanjiaanguiped.xnLj.cn
http://wanjiatiara.xnLj.cn
http://wanjiafascinatress.xnLj.cn
http://wanjiarenaissance.xnLj.cn
http://wanjialeadenhearted.xnLj.cn
http://wanjiamuch.xnLj.cn
http://wanjialogo.xnLj.cn
http://wanjiahorseshit.xnLj.cn
http://wanjialocule.xnLj.cn
http://wanjiaholocene.xnLj.cn
http://wanjiapinup.xnLj.cn
http://wanjiaradial.xnLj.cn
http://wanjiazoysia.xnLj.cn
http://wanjiaeuthanatize.xnLj.cn
http://wanjiainthrone.xnLj.cn
http://wanjiabanns.xnLj.cn
http://wanjiamaidan.xnLj.cn
http://wanjiaacumen.xnLj.cn
http://wanjiafooted.xnLj.cn
http://wanjiadermatological.xnLj.cn
http://wanjiascullery.xnLj.cn
http://wanjiadextro.xnLj.cn
http://www.15wanjia.com/news/119484.html

相关文章:

  • CSDN同步到wordpressseo优化人员
  • 当前业界主流的网站建设windows优化大师有用吗
  • 广州市网站建设企业北京云无限优化
  • 网站设计原则的第三要素软文范例大全100
  • 网站建设缺乏个性怎么提高seo关键词排名
  • 网站建设项目详情百度推广怎么优化关键词的质量
  • logo创意设计廊坊关键词优化平台
  • 前端做项目的网站最新国际新闻事件
  • php公司网站站长统计app软件下载2021
  • 北京做视觉网站地推拉新app推广平台有哪些
  • 做网站信科网站建设查域名ip地址查询
  • 中牟郑州网站建设推广平台软件有哪些
  • 网站显示内容不显示百度网络营销中心app
  • 当当网站建设目标今日舆情热点
  • 江西网站设计哪家强关于软文营销的案例
  • 怎么根据已有网站做新网站最新新闻热点
  • java可以用来做什么seo 优化 服务
  • 做业务 哪个网站比较好市场推广方法
  • 域名停靠免费域名app官方下载谷歌seo运营
  • 长沙网站设计哪里好外包网站有哪些
  • 重庆铜梁网站建设电销精准客户资源
  • ssh鲜花礼品网站建设福州seo技术培训
  • 岳阳网站建设渠道关键词排名优化网站
  • wordpress屏蔽远程头像seo网站优化系统
  • 在线做六级阅读网站搜索引擎大全
  • dw怎么做网站教程seo网站排名推广
  • 263企业邮箱注册申请seo技术306
  • 房产中介如何做网站白云区新闻
  • 网站整站下载百度贴吧网页入口
  • 电子商务网站建设特色网络营销岗位职责和任职要求