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

企业网站制作模板百度总部地址

企业网站制作模板,百度总部地址,那个网站的详情做的好,wordpress模版开发教程考察异或运算以及前缀和 题意大概:给你一个长度为n的a数组,一个长度为n的01字符串,会询问q次 当x的值为1 给出 l r 将 l r 区间中的0 改变为1,1改变为0 。当x的值为2是 若随后的数为0 则输出当前字符串中 是0 的a数组中的数异或 …

 考察异或运算以及前缀和

题意大概:给你一个长度为n的a数组,一个长度为n的01字符串,会询问q次 当x的值为1 给出 l r 将 l r 区间中的0 改变为1,1改变为0 。当x的值为2是 若随后的数为0 则输出当前字符串中 是0 的a数组中的数异或 并输出结果 是1 则输出a数组的下标对应的数异或 多组输入

输入样例 

5

5

1 2 3 4 5

01000

7

2 0

2 1

1 2 4

2 0

2 1

1 1 3

2 1

6

12 12 14 14 5 5

001001

3

2 1

1 2 4

2 1

4

7 7 7 777

1111

3

2 0

1 2 3

2 0

2

1000000000 996179179

11

1

2 1

5

1 42 20 47 7

00011

5

1 3 4

1 1 1

1 3 4

1 2 4

2 0

 

输出样例 

3 2 6 7 7 
11 7 
0 0 
16430827 
47 

思路: 用pre[]数组先求出a[]数组异或的前缀和 用num1求出当前字符串是0 对应a[]数组的异或值 num2求出当前字符产是1 对应a[]数组的异或值,当x=2 是 直接输出num1或num2(看所求是什么就求什么)当x=1时 就求出 l~r之间的数pre[r]^per[l-1]的异或值y 然后 更新num1^=y,num2^=y。(因为相同的数异或为0,0与任何数异或都是不改变原来的数)

例如 

5

1   2   3   4   5

1   3   0    4   1  当前异或的前缀和

0   1   0    0    0

若 l=2 r=4

则 y=pre[1]^pre[4]=a1^a1^a2^a3^a4   a1与a1异或为0 抵消了 故可以这样求出 l~r之间的异或值

此时 S变为  0       0  1  1   0

num1原来为  a1^a3^a4^a5 现在应为 a1^a2^a5

num1=num1^y=a1^a3^a4^a5^a2^a3^a4=a1^a2^a5 相当于抵消了 原来出现过 在出现一遍抵消了 没有出现的没有抵消 就相当与1变成0 0变成1  

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
typedef long long ll;
const int N=5e5+10;
int a[N];
int pre[N];
vector<int>v;
int main()
{int t;cin>>t;while(t--){v.clear();int n;cin>>n;memset(a,0,sizeof a);memset(pre,0,sizeof pre);int num1=0,num2=0;for(int i=1;i<=n;i++) cin>>a[i];string s1,s;cin>>s1;s=" "+s1;for(int i=1;i<=n;i++){if(i==1) pre[i]=a[i];else pre[i]=pre[i-1]^a[i];if(s[i]=='0') num1^=a[i];else if(s[i]=='1') num2^=a[i];}int q;cin>>q;while(q--){int x;cin>>x;if(x==2){int num;cin>>num;if(num==0) v.push_back(num1);else v.push_back(num2);}else{int l,r;cin>>l>>r;int num=pre[r]^pre[l-1];num1^=num;num2^=num;}}for(int i=0;i<v.size();i++) cout<<v[i]<<" ";cout<<endl;}return 0;
}

 

http://www.yidumall.com/news/79598.html

相关文章:

  • 正邦设计好进吗班级优化大师免费下载电脑版
  • 专业的网站开发公司超级软文
  • 潍坊网站建设哪家好企业网站托管
  • 做餐饮店铺哪个网站抓关键词的方法10条
  • 工行网站如何做理财风险评估整合营销推广
  • 八上电脑课做网站需要什么软件企业管理
  • 超低价的郑州网站建设百度品牌广告是什么
  • 汉邦未来网站开发外贸营销
  • 余杭区建设局网站国外比较开放的社交软件
  • 泰安一级的企业建站公司seo软件推广
  • 南宁企业网站seo系统优化软件十大排名
  • 固阳网站建设搜索排名影响因素
  • 中国商标买卖网站bing搜索引擎国内版
  • 建外贸企业网站在线crm网站
  • 平顶山营销型网站建设电商推广和网络推广的区别
  • 成都市建网站公司上海优化网站方法
  • 医疗网站设计网站百度关键词快速排名
  • 做行业网站能赚钱吗做seo必须有网站吗
  • 给网站整一个客服 怎么做淘宝自动推广软件
  • 深圳网站建设及优化网站收录怎么做
  • 网站开发网上教学营销策划咨询
  • wordpress 简书厦门seo关键词优化
  • 自助企业建站模版seo优化公司哪家好
  • 网站开发课程介绍360搜索引擎推广
  • 简约wordpress免费主题武汉谷歌seo
  • 家用网络建网站免费网站流量
  • 永兴房产网站竞价排名点击
  • 杭州观建设计网站百度提交网址入口
  • 响站怎么建设网站想要网站推广页
  • 网站建设功能模块价格网页设计主要做什么