HDU 4046 Panda
线段树单点更新,要注意两段合并多出的答案的计算即可
//============================================================================
// Name : D.cpp
// Author : L_Ecry
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include <iostream>
#define N 50050
using namespace std;
int value[N*];
char s[N];
inline int cal(int l,int r,int mid)
{ int res=;
if(mid>l&&s[mid-]=='w'&&s[mid]=='b'&&s[mid+]=='w')res++;
if(mid+<r&&s[mid]=='w'&&s[mid+]=='b'&&s[mid+]=='w')res++;
return res;
}
void build(int l,int r,int i)
{
if(l==r)
{
value[i]=;
return ;
}
int mid=(l+r)>>;
int lson=(i<<),rson=(i<<|);
build(l,mid,lson);
build(mid+,r,rson);
value[i]=value[lson]+value[rson]+cal(l,r,mid);
}
void update(int l,int r,int p,int i)
{
if(l==r)
{
return;
}
int mid=(l+r)>>;
int lson=(i<<),rson=(i<<|);
if(p<=mid)update(l,mid,p,lson);
else update(mid+,r,p,rson);
value[i]=value[lson]+value[rson]+cal(l,r,mid);
}
int query(int l,int r,int pl,int pr,int i)
{
if(l==pl&&r==pr)
{
return value[i];
}
int mid=(l+r)>>;
if(pr<=mid)return query(l,mid,pl,pr,i<<);
else if(pl>mid)return query(mid+,r,pl,pr,i<<|);
else
{
return query(l,mid,pl,mid,i<<)+query(mid+,r,mid+,pr,i<<|)+cal(pl,pr,mid);
}
}
int n,m;
void init()
{
scanf("%d%d",&n,&m);
scanf(" %s",s+);
build(,n,);
}
void solve()
{
while(m--)
{
int x,y,z;
char c;
scanf("%d%d",&x,&y);
if(x==)
{
scanf("%d",&z);
y++;z++;
printf("%d\n",query(,n,y,z,));
}
else
{
scanf(" %c",&c);
y++;
s[y]=c;
update(,n,y,);
}
}
}
int main() {
int tt,ri=;
scanf("%d",&tt);
while(tt--)
{
init();
printf("Case %d:\n",++ri);
solve();
}
return ;
}
HDU 4046 Panda的更多相关文章
- HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛)
HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛) Panda Time Limit: 10000/4000 MS (Java/Others) Memory Limit: ...
- hdu 4046 Panda 树状数组
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4046 When I wrote down this letter, you may have been ...
- HdU 4046 Panda 段树
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4046 意甲冠军:到了bw组成的长度为n的字符串(n<=50000).有m次操作(m<=1000 ...
- hdu 4046 Panda [线段树]
Panda Time Limit: 10000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- HDU—4046 Panda (线段树)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4046 题意:给出一个字符串,统计这个字符串任意区间中"wbw"出现的次数. 规定两 ...
- HDU 4046 Panda(树状数组)
Panda Time Limit: 10000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- hdu 4046 2011北京赛区网络赛G 线段树 ***
还带这么做的,卧槽,15分钟就被A了的题,居然没搞出来 若某位是1,则前两个为wb,这位就是w #include<cstdio> #include<cstring> #defi ...
- hdu 4046 树状数组
#include<stdio.h> #include<string.h> #define N 51000 char s[N]; int a[N],n; int number( ...
- HDU 6007 Mr. Panda and Crystal (背包+spfa)
题意:你生活在一个魔法大陆上,你有n 魔力, 这个大陆上有m 种魔法水晶,还有n 种合成水晶的方式,每种水晶价格告诉你,并且告诉你哪些水晶你能直接造出来,哪些你必须合成才能造出来,问你n魔力最多能卖多 ...
随机推荐
- C#操作Excel数据增删改查(转)
C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文件,并添加两张工作表. 工作表1: UserInfo表,字段:UserId.UserName.Age.Address.CreateT ...
- (三)主控板生级uboot与内核
一.升级uboot 把我的电脑增加一个192.168.1.3的ip,方便升级boot. 1.连接串口,连接网口到GE1; 2.登陆电脑后到D:\MTG3000MAIN\first目录打开tftp32 ...
- Mybatis 级联查询 (一对多 )
后台系统中 涉及到添加试卷 问题 答案的一个模块的.我需要通过试卷 查询出所有的试题,以及试题的答案.这个主要要使用到Mybatis的级联查询. 通过试卷 查询出与该试卷相关的试题(一对多),查询出试 ...
- EI中国
这里可以看到EI收录的所有的中国期刊:http://lib.sytu.edu.cn/files/zwwxx/2009-EI-china.htm
- linux笔记:linux帮助命令,man,help,whatis,apropos
命令名称:man功能:获得帮助信息命令所在路径:/usr/bin/man用法:man 命令或配置文件其他:会调用less来查看该命令或配置文件的帮助信息. 命令名称:whatis功能:获得命令的简短介 ...
- 数据库函数--nvl、coalesce、decode比较
SQL中 nvl().coalesce().decode()这三个函数nvl(bonus,0) 2个参数 if bonus is null return 0 else return bonus,ora ...
- Java GC系列(2):Java垃圾回收是如何工作的?
本文由 ImportNew - 伍翀 翻译自 javapapers. 目录 垃圾回收介绍 垃圾回收是如何工作的? 垃圾回收的类别 垃圾回收监视和分析 本教程是为了理解基本的Java垃圾回收以及它是如何 ...
- uva--1339 - Ancient Cipher(模拟水体系列)
1339 - Ancient Cipher Ancient Roman empire had a strong government system with various departments, ...
- java基础学习之 消息对话款
package Dome; import java.awt.event.*; import java.awt.*; import javax.swing.*; public class WindowM ...
- 对石家庄铁道大学网站的UI分析
学校网站的首页面的色调用的比较好看,用深蓝色体现了严谨治学的风范.然后就是网站的首页有 1,学校概况:学校简介 现任领导 历任领导 校史沿革 2,组织机构: 机构设置 院系设置 管理机构 直属单位 其 ...