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

网站建设与维护实验报告五星级酒店网站建设方案

网站建设与维护实验报告,五星级酒店网站建设方案,西安专题门户响应式网站建设,ui设计个人作品集Problem - E - Codeforces 区间求和#xff0c;区间异或的操作跟线段树的区间求和、区间相见相似#xff0c;考虑用线段树。 发现数组初始值最多是1e6#xff0c;有不到25位#xff0c;可以知道异或最大值是这些位数全是1的情况。 发现可以对每一位进行运算就和。 我们开…Problem - E - Codeforces 区间求和区间异或的操作跟线段树的区间求和、区间相见相似考虑用线段树。 发现数组初始值最多是1e6有不到25位可以知道异或最大值是这些位数全是1的情况。 发现可以对每一位进行运算就和。 我们开23个线段树表示每一位的情况根据位运算求出每一位的贡献即可。 注意ans需要开LL且数组不能开大不能全用long long。 #include iostream #include vector #include string #include cstring #include set #include map #include queue #include ctime #include random #include sstream #include numeric #include stdio.h #include functional #include bitset #include algorithm using namespace std;// #define Multiple_groups_of_examples // #define int_to_long_long #define IOS std::cout.tie(0);std::cin.tie(0)-sync_with_stdio(false); // 开IOS需要保证只使用Cpp io流 * #define dbgnb(a) std::cout #a a \n; #define dbgtt cout !!!test!!! \n; #define rep(i,x,n) for(int i x; i n; i)#define all(x) (x).begin(),(x).end() #define pb push_back #define vf first #define vs secondtypedef long long LL; #ifdef int_to_long_long #define int long long #endif typedef pairint,int PII;const int INF 0x3f3f3f3f; const int N 2e5 21;// 异或 线段树板子 struct SegTree {static const int N 1e5 21;struct node {int l, r;LL sum,lz;}tr[N 2];// 左子树int w[N];inline int ls(int p) {return p1; }// 右子树inline int rs(int p) {return p1|1; }// 向上更新void pushup(int u) {tr[u].sum tr[ls(u)].sum tr[rs(u)].sum;}// 向下回溯时先进行更新void pushdown(int u) { // 懒标记该节点曾经被修改但其子节点尚未被更新。auto root tr[u], right tr[rs(u)], left tr[ls(u)];if(root.lz) {right.lz ^1; right.sum (right.r - right.l 1 - right.sum);left.lz ^ 1; left.sum (left.r - left.l 1 - left.sum);root.lz 0;}}// 建树void build(int u, int l, int r) {if(l r) tr[u] {l, r, w[r], 0};else {tr[u] {l,r}; // 容易忘int mid l r 1;build(ls(u), l, mid), build(rs(u), mid 1, r);pushup(u);}}// 修改void modify(int u, int l, int r, int d) {if(tr[u].l l tr[u].r r) {tr[u].lz ^ 1;tr[u].sum (tr[u].r - tr[u].l 1 - tr[u].sum);}else {pushdown(u);int mid tr[u].l tr[u].r 1;if(l mid) modify(ls(u), l ,r, d);if(r mid) modify(rs(u), l, r, d);pushup(u);}}// 查询LL query(int u, int l, int r) {if(tr[u].l l tr[u].r r) {return tr[u].sum;}pushdown(u);int mid tr[u].l tr[u].r 1;LL sum 0;if(l mid) sum query(ls(u), l, r);if(r mid ) sum query(rs(u), l, r);return sum;} }tree[23];void inpfile(); void solve() {int n; cinn;vectorint ad(n 1);for(int i 1; i n; i) cinad[i];for(int i 1; i n; i) {for(int j 0; j 22; j) {// ad[i] 的第j位是0还是1tree[j].w[i] (ad[i] j) 1;}}// 建树for(int i 0; i 22; i) tree[i].build(1,1,n);int q; cinq;while(q--) {int opt, x, y, v;cinoptxy;if(opt 1) {LL ans 0;// 求出每一位的贡献相加即为答案for(int i 0; i 22; i) ans (LL)tree[i].query(1,x,y) * (1 i);coutansendl;} else {cinv;for(int i 0; i 22; i) {// 每一位进行修改int t (v i) 1;if(!t) continue;tree[i].modify(1,x,y,1);}}} } #ifdef int_to_long_long signed main() #else int main() #endif{#ifdef Multiple_groups_of_examplesint T; cinT;while(T--)#endifsolve();return 0; } void inpfile() {#define mytest#ifdef mytestfreopen(ANSWER.txt, w,stdout);#endif }XOR on Segment - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) CF242E XOR on Segment 拆位线段树_牛客博客 (nowcoder.net)
http://www.hkea.cn/news/14509769/

相关文章:

  • 重庆化工建设信息网站金山网站建设费用
  • 百度网站建设如何网站建设好后怎么制作网页
  • 做百度网站费用多少vue 做网站 seo
  • 淮南市城乡建设档案馆网站美食网站建设的意义
  • 棋牌网站开发常熟做网站的公司
  • 免费设计海报的网站Wordpress国际收款
  • 网站建设兆金手指花总网站建设方案选公司
  • 苏州建网站的公司哪家公司好怎么查个人征信记录
  • 网站优化 流量怎么做自己网站的后台
  • wordpress 哪些网站如何做网络营销网站
  • 国外网站加速搜素引擎排名优化计费方式
  • 给网站增加功能怎么做良乡网站建设
  • 网站建设维护管理软件代理网页游戏多少钱
  • 大港天津网站建设查做空运磁检的网站
  • 学做网站php吗wordpress重建缩略图
  • 展示型装饰网站模板下载多城市分站站群cms
  • 黑龙江省建设集团有限公司网站自己做的网站能赚钱吗
  • 浙江众安建设集团有限公司网站长春财经学院是一本还是二本
  • 怎么修改网站首页logo网站优化中友情链接怎么做
  • 什么地方可以做网站wordpress 虚拟商品插件
  • 广州网站建设q.479185700棒wordpress 添加导航栏
  • 北京网站设计公司yy成都柚米科技15wordpress配置mysql
  • 网站建设开发综合实训报告泰安人才网最新招聘网
  • 做外单网站wordpress 动态插件
  • 网站项目总体设计模板公司品牌的塑造网站建设
  • 校园网门户网站建设不动户激活 e路护航安全组件
  • 免费搭建手机自助网站设计专业哪个学校好
  • 做影视网站关停自己做的网站项目面试
  • 华为商城的网站建设推荐网站建设服务话术
  • 舟山网站开发营销网站建设步骤