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

终身免费网站建设广东新闻今日最新闻

终身免费网站建设,广东新闻今日最新闻,如何做网站后台管理,郑州小程序网站开发看没有题解,交一发。 题目传送门 思路 看到题面容易想到用线段树做,但是这道题要用一个形状为满三叉树的线段树,这样才方便统计答案。 首先来看节点的编号,从上到下,从左到右依次给树上的节点进行编号,…

看没有题解,交一发。

题目传送门

思路

看到题面容易想到用线段树做,但是这道题要用一个形状为满三叉树的线段树,这样才方便统计答案。

首先来看节点的编号,从上到下,从左到右依次给树上的节点进行编号,容易发现,设一个非叶子节点的编号为 x x x,则它的三个儿子节点的编号为 3 x − 1 , 3 x , 3 x + 1 3x-1,3x,3x+1 3x1,3x,3x+1,配一张图方便大家理解(图微丑,轻喷)。

所以在建树和修改时,就可以直接算出子节点的编号。

剩下的就和线段树差不多了,直接上代码。

代码

#include <bits/stdc++.h>
using namespace std;
const int N=2e6+6;//数组开大一点
int n,q;
bool t[N];
char s[N];
void build(int cur,int l,int r){//建树if(l==r){t[cur]=s[l]-'A';//0表示A,1表示Breturn;}int mid1=l+(r-l+1)/3-1,mid2=l+2*(r-l+1)/3-1;//将区间平均分成三部分build(cur*3-1,l,mid1);build(cur*3,mid1+1,mid2);build(cur*3+1,mid2+1,r);t[cur]=(t[cur*3-1]+t[cur*3]+t[cur*3+1]>1);//如果1的个数大于1,则B多,否则A多
}
void modify(int cur,int l,int r,int x){//单点修改if(l==r && l==x){t[cur]^=1;//修改return;}int mid1=l+(r-l+1)/3-1,mid2=l+2*(r-l+1)/3-1;if(x<=mid1)modify(cur*3-1,l,mid1,x);else if(x<=mid2)modify(cur*3,mid1+1,mid2,x);elsemodify(cur*3+1,mid2+1,r,x);t[cur]=(t[cur*3-1]+t[cur*3]+t[cur*3+1]>1);//重新统计答案
}
int main(){scanf("%d%d",&n,&q);scanf("%s",s+1);n=strlen(s+1);build(1,1,n);while(q--){int p;scanf("%d",&p);modify(1,1,n,p);printf("%c\n",t[1]+'A');//t[1]为最终的结果输出}return 0;
}
http://www.dtcms.com/wzjs/330676.html

相关文章:

  • 员工做违法网站国内最好的危机公关公司
  • 百度wap网站建设社群营销平台有哪些
  • 建设银行网站用360浏览器舆情监测分析系统
  • 网页设计达人及作品推荐seo待遇
  • 意识形态建设专题网站发布新闻
  • 如何建立平台网站上海野猪seo
  • 开工作室做网站怎样找资源广告竞价
  • 独立做网站需要学什么天津seo排名费用
  • 用别人身份证备案网站网络营销的重要性与意义
  • 安庆市城乡建设委员会网站花生壳免费域名注册
  • 十堰网络科技公司排名seo公司软件
  • 潍坊seo招聘seo免费优化
  • 工作管理app哈尔滨seo优化培训
  • 网站建设毕业设计摘要上海搜索关键词排名
  • 做网站和推广硝酸银试剂盒网站推广的概念
  • 人妖和美女做视频网站成功的品牌推广案例分析
  • 做公众号需要网站北京做的好的seo公司
  • 怎样切图做网站怎么找需要做推广的公司
  • 山西高端建设网站推文关键词生成器
  • 太原建站的模板世界新闻
  • 租电信网站服务器吗舆情网站直接打开怎么弄
  • 北京建站产品销售方案与营销策略
  • 国外建站系统免费创建网站的平台
  • 做网站负责人有法律风险吗百度seo网站优化
  • 手机上哪个网站网站优化外包公司
  • 天津市网站建设+网页制作短视频入口seo
  • 网站被入侵别人是怎么做跳转的品牌全案策划
  • 郑州网站建设公司哪家专业新站seo快速排名 排名
  • 怎么做自已的网站seo 公司
  • 怎么在本地搭建网站关注公众号一单一结兼职