hdu 6610 Game

news/2024/11/30 9:50:15/

 题意:带修改地维护区间异或和

思路:带修改莫队(注意分块大小为 0.66666n)

#include <bits/stdc++.h>
using namespace std;
typedef int lint;
typedef long long LL;
const lint maxn = 1000005;
lint a[maxn],pos[maxn],sum[maxn];
LL ans[maxn];
lint block;
struct query{lint l,r,k,id;query( lint ll = 0,lint rr = 0,lint kk = 0,lint idid = 0 ){l = ll; r = rr;k = kk;id = idid;}bool operator < ( const query & b )const{if( l/block == b.l/block ){if( r/block == b.r/block ){return k < b.k;}return r < b.r ;}return l < b.l;}
};
vector<query> ve;
LL cnt[maxn],ccnt;
void init(lint n){block = floor(pow(n,0.6666666));memset( cnt,0,sizeof(cnt) );ccnt = 0;
}
void update( lint v,lint f ){if( f == 1 ){ccnt += cnt[v];cnt[v]++;}else{cnt[v]--;ccnt -= cnt[v];}
}
void up( lint L,lint R,lint tim ){lint p = pos[tim];if( p >= L && p <= R ){cnt[ sum[p] ]--;ccnt -= cnt[ sum[p] ];swap( a[p],a[p+1] );sum[p] = sum[p-1]^a[p];ccnt += cnt[ sum[p] ];cnt[ sum[p] ]++;}else{swap( a[p],a[p+1] );sum[p] = sum[p-1]^a[p];}
}
void solve(){lint L = 0,R = -1,TIM = 0;for( lint i = 0;i < ve.size();i++ ){lint tim = ve[i].k;lint l = ve[i].l;lint r = ve[i].r;while( TIM > tim ) {up( L,R,TIM-- );}while( TIM < tim ){up( L,R,++TIM );}while( R < r ) update( sum[++R],1 );while( l < L ) update( sum[--L],1 );while( R > r ) update( sum[R--],-1 );while( l > L ) update( sum[L++],-1 );ans[ ve[i].id ] = (LL)(r - l)*(r-l+1)/2-ccnt;}
}
int main() {lint n,m;while( 2 == scanf("%d%d",&n,&m) ){init(n);ve.clear();lint  id = 0,tim = 0;for( lint i  = 1;i <= n;i++ ) {scanf("%d",&a[i]);sum[i] = sum[i-1]^a[i];}for( lint i = 1;i <= m;i++ ){lint op;scanf("%d",&op);if( op == 1 ){id++;lint l,r;scanf("%d%d",&l,&r);l--;//cout << id << endl;ve.push_back( query( l,r,tim,id ) );}else{lint p;scanf("%d",&p);tim++;pos[tim] = p;}}sort( ve.begin(),ve.end() );solve();for( lint i = 1;i <= id;i++ ){printf("%lld\n",ans[i]);}}return 0;
}

 


http://www.ppmy.cn/news/636542.html

相关文章

新品、实测、终端……MWC2023上海展,移远通信又为物联行业带来了哪些惊喜?

6月28日&#xff0c;MWC上海世界移动通信大会拉开帷幕&#xff0c;围绕“时不我待”主题&#xff0c;今年的展会包含5G变革、数字万物与“超越现实”三大主题方向&#xff0c;充分展示了以5G、大数据、AI等新一代信息技术赋能社会经济发展的重要成果。 作为物联网整体解决方案供…

nginx里使用openresty-lua-redis等

安装 version: "3" services:nginx_lua:image: openresty/openresty:alpine#image: openresty/openresty:latest #没有安装opm以下命令可以在Dockerfile编写, 前缀以RUN补充,使其创建新的镜像 或者在运行后,进容器后直接运行 安装opm curl -L -o /usr/local/bin/o…

爬虫入门指南:学习爬虫的基础知识和技巧

文章目录 爬虫基础知识什么是爬虫&#xff1f;爬虫的工作原理爬虫的应用领域 爬虫准备工作安装Python安装必要的库和工具 网页解析与XPath网页结构与标签CSS选择器与XPathXpath 语法XPath的基本表达式&#xff1a;XPath的谓语&#xff08;Predicate&#xff09;&#xff1a;XPa…

win10无限重启_让迷你掌上电脑更具生产力,GPD安装 Win10+Ubuntu双系统

作为一名电气工程师(偶尔也充当程序员的角色)&#xff0c;刚子一直想拥有一台小巧便携续航强的笔记本电脑&#xff0c;以应对经常出差调试的任务。市场上常见的笔记本电脑一般都是13吋以上的&#xff0c;背出去实在太沉重&#xff0c;轻薄本很多接口不全&#xff0c;又需要扩展…

[python][gradio]gr.State用法

gr.State是一个不可见的控件&#xff0c;目的是在后台存储一些变量方便访问和交互。 官方说明&#xff1a; 特殊的隐藏组件&#xff0c;用于存储同一用户运行演示时的会话状态。当用户刷新页面时&#xff0c;State 变量的值被清除。 实例&#xff1a; import gradio as grd…

linux lib目录找不到,linux中jpeglib库文件我安装了,但是我运行自己写的代码总是找不到这个库...

首先&#xff0c;找到你的VC6.0的安装路径(就是你安装到哪里了&#xff0c;不是你安装包setup.exe的路径)&#xff0c;假设按照默认路径安装的话&#xff0c;头文件和库文件的路径应该是这样子的&#xff1a; include files: C:\Program Files\Microsoft Visual Studio\VC98\IN…

安装gpd(点云库)相关

看这篇文章&#xff1a; 机器人6D抓取姿态检测(GPD)&#xff0d;Ubuntu 16.04 ROS Kinetic RGBD CPU版本的实现 https://blog.csdn.net/Eeko_x/article/details/104835154 记住一定不要装带有caffe框架的gpd&#xff0c;下载这个https://github.com/sharronliu/gpd/tree/…