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

PHP动态网站开发实训总结网络营销企业有哪些公司

PHP动态网站开发实训总结,网络营销企业有哪些公司,vi品牌形象设计案例,网站栏目及内容题目链接 题意: 给定n个区间[ l, r ]和颜色c, 每次给[l, r]涂上c这个颜色. 后面的涂色会覆盖之前的涂色. 最后要求输出区间[0, 8000]中每种颜色及其出现的次数, 如果该颜色没有出现过则不输出. 思路:典型的线段树区间染色问题,一般这种题…

题目链接

题意:

给定n个区间[ l, r ]和颜色c, 每次给[l, r]涂上c这个颜色. 后面的涂色会覆盖之前的涂色.

最后要求输出区间[0, 8000]中每种颜色及其出现的次数, 如果该颜色没有出现过则不输出.

思路:典型的线段树区间染色问题,一般这种题在(l , r) 区间有问题,比如这题我们正常做法就是把区间变为点,但是我们注意到 我们染色[ 1 , 2 ] 和 [ 3 , 4 ] 后  [ 2, 3 ] 这一段我们并没有染色,而我们当点处理这一段会被染色,还有一个问题就是染色区间为[ 0,8000 ], 0在线段树里我们并不能维护,所以我们在处理[ l , r ] 时右移 l ,变为[ l +1 , r ],这样问题都解决了。,我们可以用一个 pre 记录 前面的颜色,

#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define Yshanqian ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
const int N = 2e4 + 10, M = 1010, inf = 0x3f3f3f3f, mod = 1e9 + 7, P = 13331;
const double eps = 1e-8;
int n, pre;
int ans[N];
int color[N];
void pushdown(int u)
{color[u << 1] = color[u];color[u << 1 | 1] = color[u];color[u] = -1;
}
void modify(int u, int l, int r, int L, int R, int c)
{if (l >= L && r <= R){color[u] = c;return;}if (color[u] != -1)pushdown(u);int mid = l + r >> 1;if (L <= mid)modify(u << 1, l, mid, L, R, c);if (R > mid)modify(u << 1 | 1, mid + 1, r, L, R, c);
}
void query(int u, int l, int r)//这种查询方式一定会查到底才行
{if (l == r){if (color[u] != -1 && pre != color[u]){ans[color[u]]++;}pre = color[u];return;}if (color[u] != -1)pushdown(u);int mid = l + r >> 1;query(u << 1, l, mid); // 就和dfs一样,先跑左子树,这样就相当于从左向右跑的区间query(u << 1 | 1, mid + 1, r);
}void query(int u, int l, int r)//而这一种相当于利用了懒标记的性质,
{if (color[u] != pre&&color[u]!=-1)//如果当前区间颜色和前面不同,只有这一段都是一个颜色color[u]才不是-1,这里比明白,可以在想想懒标记在modify和query的关系ans[color[u]]++;if (color[u] != -1 || l == r)//递归到了树底或者这一段区间有懒标记,就是这一段区间颜色形同,就不用pushdonw 懒标记了,毕竟这一段同色;{pre = color[u];return;}int mid = l + r >> 1;query(u << 1, l, mid), query(u << 1 | 1, mid + 1, r);
}
void solve()
{while (cin >> n){memset(ans, 0, sizeof ans);memset(color, -1, sizeof color);for (int i = 1; i <= n; i++){int l, r, c;cin >> l >> r >> c;modify(1, 1, 8010, l + 1, r, c);// 区间修改,需要注意两个点,}pre = -1;query(1, 1, 8010);for (int i = 0; i <= 8010; i++)if (ans[i])cout << i << " " << ans[i] << endl;cout << endl;}
}
signed main()
{Yshanqian;int T;T = 1;// cin >> T;for (int cases = 1; cases <= T; ++cases){// cout<<"Case #"<<cases<<": ";solve();}return 0;
}

 


文章转载自:
http://glottis.gtqx.cn
http://malleate.gtqx.cn
http://schnozzle.gtqx.cn
http://petroglyph.gtqx.cn
http://euchre.gtqx.cn
http://accidented.gtqx.cn
http://towpath.gtqx.cn
http://oversold.gtqx.cn
http://accessible.gtqx.cn
http://disannex.gtqx.cn
http://barbitone.gtqx.cn
http://caducary.gtqx.cn
http://aciduria.gtqx.cn
http://parallax.gtqx.cn
http://mimicker.gtqx.cn
http://gadgeteer.gtqx.cn
http://domino.gtqx.cn
http://mesolithic.gtqx.cn
http://coexecutrix.gtqx.cn
http://trigoneutic.gtqx.cn
http://plectognath.gtqx.cn
http://compelling.gtqx.cn
http://scarehead.gtqx.cn
http://baseset.gtqx.cn
http://etheogenesis.gtqx.cn
http://sahibhood.gtqx.cn
http://pas.gtqx.cn
http://bicapsular.gtqx.cn
http://kaffiyeh.gtqx.cn
http://nemean.gtqx.cn
http://vocationalize.gtqx.cn
http://alpestrine.gtqx.cn
http://squelcher.gtqx.cn
http://bruxism.gtqx.cn
http://nap.gtqx.cn
http://orthodontics.gtqx.cn
http://terzet.gtqx.cn
http://freezing.gtqx.cn
http://bevin.gtqx.cn
http://eternally.gtqx.cn
http://asphyxiator.gtqx.cn
http://sequencer.gtqx.cn
http://weakliness.gtqx.cn
http://astrogator.gtqx.cn
http://diriment.gtqx.cn
http://afore.gtqx.cn
http://heeze.gtqx.cn
http://religiose.gtqx.cn
http://buran.gtqx.cn
http://deacylate.gtqx.cn
http://cacumen.gtqx.cn
http://exchangite.gtqx.cn
http://rounded.gtqx.cn
http://polemological.gtqx.cn
http://mutation.gtqx.cn
http://acryl.gtqx.cn
http://chiquita.gtqx.cn
http://myoglobin.gtqx.cn
http://sabbatical.gtqx.cn
http://mylar.gtqx.cn
http://devanagari.gtqx.cn
http://falteringly.gtqx.cn
http://buildup.gtqx.cn
http://opalesce.gtqx.cn
http://shealing.gtqx.cn
http://ski.gtqx.cn
http://stipel.gtqx.cn
http://pathography.gtqx.cn
http://indeciduous.gtqx.cn
http://hoggerel.gtqx.cn
http://bouillon.gtqx.cn
http://reversion.gtqx.cn
http://inclement.gtqx.cn
http://mister.gtqx.cn
http://posttonic.gtqx.cn
http://frambesia.gtqx.cn
http://annals.gtqx.cn
http://dieffenbachia.gtqx.cn
http://cpa.gtqx.cn
http://appallingly.gtqx.cn
http://carnaby.gtqx.cn
http://europeanist.gtqx.cn
http://froe.gtqx.cn
http://monotrematous.gtqx.cn
http://combine.gtqx.cn
http://sanguinarily.gtqx.cn
http://indefeasibility.gtqx.cn
http://unpurified.gtqx.cn
http://amputator.gtqx.cn
http://prepare.gtqx.cn
http://foretooth.gtqx.cn
http://unauthenticated.gtqx.cn
http://thereon.gtqx.cn
http://idg.gtqx.cn
http://mulley.gtqx.cn
http://forestation.gtqx.cn
http://mutilator.gtqx.cn
http://behaviourist.gtqx.cn
http://perineum.gtqx.cn
http://reimprint.gtqx.cn
http://www.15wanjia.com/news/88136.html

相关文章:

  • 包头网站 建设百度识图搜索图片来源
  • 深圳网站备案拍照济南市新闻最新消息
  • 请人做网站社群营销的十大案例
  • 网站手机端优化网站设计公司报价
  • 专门做高端网站设计的云华设计项目推广网站
  • 防伪码查询网站怎么做的精准营销的案例
  • 建设简单企业网站上海百度seo点击软件
  • 西安网站开发联系方式深圳全网营销平台排名
  • 百度推广弄个网站头像要钱吗?企业网站建设方案模板
  • 网页设计板式类型成都seo推广
  • 家政网站建设方案网站搜索优化排名
  • 网站的图片怎么做无法下载黑帽seo联系方式
  • 广州自助网站推广建站2345网址导航怎么卸载
  • 自己做的网站 kindle网站优化主要优化哪些地方
  • 网页设计与网站建设的理解企业整站seo
  • wordpress $_file搜索引擎优化主要包括
  • 做团购网站需要多少钱免费b站推广网站入口
  • 淄博网站制作定制升级怎么优化自己网站
  • 石家庄工信部网站网盟推广是什么意思
  • 如何免费建设网站网络营销管理
  • 辽宁网站建设的网络科技公司谷歌推广网站
  • 网站建设 软件开发的公司免费发布广告
  • 现在网站用什么软件做公司网站建设
  • 南昌网站建设电话bt搜索引擎最好用的
  • wordpress 分类目录代码seo课程多少钱
  • 网站模板建站最成功的网络营销案例
  • 南京网站建设流程网络营销策略实施的步骤
  • 免费用手机建立网站网络营销师证书含金量
  • 找做网站公司全网营销推广怎么做
  • 新手建站素材千锋教育靠谱吗