题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4046

代码风格:www.notonlysuccess.com

题目大意:求wbw出现的个数

算法:线段树,区间合并

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;#define lson l, m, rt << 1
#define rson m+1, r, rt << 1 | 1
#define mid int m = (r+l) >> 1int cnt[454545];
char s[465456];void PushUp(int L, int R, int m, int rt)
{cnt[rt] = cnt[rt << 1] + cnt[rt << 1 | 1];if(L <= m && m+2 <= R)if(s[m] == 'w' && s[m+1] == 'b' && s[m+2] == 'w')cnt[rt] ++;if(L <= m-1 && m + 1 <= R){if(s[m-1] == 'w' && s[m] == 'b' && s[m+1] == 'w'){cnt[rt] ++;}}
}void build(int l, int r, int rt)
{if(r == l)return ;mid ;build(lson);build(rson);PushUp(l, r, m, rt);
}void update(int d, int l, int r, int rt)
{if(l == r){return ;}mid ;if(d <= m)update(d, lson);else update(d, rson);PushUp(l, r, m, rt);
}int minz(int a, int b)
{return a < b ? a : b;
}int maxz(int a, int b)
{return a > b ? a : b;
}int query(int L, int R, int l, int r, int rt)
{if(L <= l && r <= R)return cnt[rt];mid ;int ret  = 0;if(R <= m)return query(L, R, lson);else if(L > m)return query(L, R, rson);elseret += query(L, R, lson) + query(L, R, rson);if(maxz(l, L) <= m && m+2 <= minz(r, R))if(s[m] == 'w' && s[m+1] == 'b' && s[m+2] == 'w')ret ++;if(maxz(l, L) <= m-1 && m + 1 <= minz(r, R))if(s[m-1] == 'w' && s[m] == 'b' && s[m+1] == 'w')ret ++;return ret ;
}int main()
{int n, m, T;int a, b, c;int ica = 1;char op[45];scanf("%d", &T);while(T --){printf("Case %d:\n", ica ++);memset(s, 0, sizeof(s));memset(cnt, 0, sizeof(cnt));scanf("%d%d", &n, &m);scanf("%s", s);build(0, n-1, 1);while(m --){scanf("%d%d", &a, &b);if(a == 1){scanf("%s", op);s[b] = op[0];update(b, 0, n-1, 1);}else{scanf("%d", &c);printf("%d\n", query(b, c, 0, n-1, 1));}}}return 0;
}

线段树 HDU 4046 panda相关推荐

  1. hdu 4046 Panda 线段树

    五场的网络赛的题目出现了大量的线段树的题目,每次都只能坐在那里干瞪眼.. 看来需要好好的啃啃线段树了.. #include<iostream> #include<string> ...

  2. poj 2528 离散化+线段树 hdu 1698 线段树 线段树题目类型一:染色计数 外加离散化

    第一次听到离散化是今年省赛的时候,一道矩形并的题,很水,就两个矩形... 今天再去做线段树已经发现离散化忘得差不多了...水逼的悲哀啊... 先看简单点的hdu 1698 http://acm.hdu ...

  3. 线段树——HDU - 1698

    题目含义 就是初始化一堆数为1 可以经过操作把一个区间的数都改变 并求这堆数的总大小 题目分析 有一个 #include<iostream> #include<stdio.h> ...

  4. 线段树 HDU 3397

    5种操作 具体看代码 #include<iostream> #include<stdio.h> #include<string.h> #include<alg ...

  5. 暑期集训5:并查集 线段树 练习题G: HDU - 1754

    2018学校暑期集训第五天--并查集 线段树 练习题G  --   HDU - 1754 I Hate It 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.  这让 ...

  6. 暑期集训5:并查集 线段树 练习题F:  HDU - 1166 ​​​​​​​

    2018学校暑期集训第五天--并查集 线段树 练习题F  --   HDU - 1166 敌兵布阵 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A ...

  7. 暑期集训5:并查集 线段树 练习题B: HDU - 1213 ​​​​​​​

    2018学校暑期集训第五天--并查集 线段树 练习题B  --   HDU - 1213 How Many Tables Today is Ignatius' birthday. He invites ...

  8. 暑期集训5:并查集 线段树 练习题A:  HDU - 1232 ​​​​​​​

    2018学校暑期集训第五天--并查集 线段树 练习题A  --   HDU - 1232 畅通工程 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅 ...

  9. HDU 5861 Road 线段树区间更新单点查询

    题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5861 Road Time Limit: 12000/6000 MS (Java/Othe ...

最新文章

  1. 中tr不能显示字符_BeautifulSoup4中find 和find_all的比较
  2. 使用SaxParser和完整代码进行XML解析
  3. 数据结构与算法之-----图(代码实现)
  4. SQL Server复制需要有实际的服务器名称才能连接到服务器 错误解决方案
  5. 《统计学习方法》——逻辑斯蒂回归
  6. 【产品】产品经理PM相关书籍荐读
  7. Tcl学习2——Tcl语言语法
  8. 百度指数 数据分析(介绍)
  9. Silverlight Blend动画设计系列五:故事板(StoryBoards)和动画(Animation)
  10. 【HAL库系列】0.STM32CubeIDE介绍
  11. Unity Metaverse(二)、Mixamo Animator 混合树与动画融合
  12. 抖音蓝V号如何在企业首页添加联系方式?解读详细的设置流程
  13. 2022年车险攻略:1分钟告诉你什么是车险怎么买?
  14. 数据在计算机中存储形式
  15. ITX-3568JQ四核ITX工业级主板
  16. ts报错:Object is possibly ‘undefined‘.Vetur(2532)
  17. 数据结构复习题集(客观题)
  18. 封装Win10步骤和注意事项
  19. linux l7,linux iptables L7-filter
  20. ubuntu9.10安装gmlive看网络电视 #ubuntu9.10 #gmlive #pplive #sopcast

热门文章

  1. Linux文件系统管理——创建与检测
  2. 测量标准误(Standard Error of Measurement;SEm)
  3. HTML为什么称为超文本标记语言?< DOCTYPE html>什么意思?
  4. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛——C.面积【签到题】
  5. 深入理解操作系统实验——bomb lab(phase_2)
  6. 基于Bootstrap的下拉框多选 Bootstrap Multiselect 插件使用
  7. pdfmake支持html,pdfMake前端导出pdf
  8. “XXX.exe 中的 0xXXXXXXXX处未处理的异常: 0xC0000005: 读取位置 0xXXXXXXXX 时发生访问冲突”的一种解决方案
  9. 苹果支付验证回执单相关错误码
  10. 《深入理解计算机网络》迷你书