日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

bzoj1230[Usaco2008 Nov]lites 开关灯*

發(fā)布時(shí)間:2024/4/13 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bzoj1230[Usaco2008 Nov]lites 开关灯* 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

bzoj1230[Usaco2008 Nov]lites 開(kāi)關(guān)燈

題意:

一個(gè)01序列,初始全部元素為0,兩種操作:l到r全部元素取反、詢(xún)問(wèn)l到r1的個(gè)數(shù)。序列長(zhǎng)度≤100000,詢(xún)問(wèn)個(gè)數(shù)≤100000。

題解:

線段樹(shù)維護(hù)區(qū)間和,區(qū)間修改就讓區(qū)間和變?yōu)閰^(qū)間長(zhǎng)度減原區(qū)間和。

代碼:

1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <queue> 5 #define inc(i,j,k) for(int i=j;i<=k;i++) 6 #define maxn 400010 7 using namespace std; 8 9 inline int read(){ 10 char ch=getchar(); int f=1,x=0; 11 while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=getchar();} 12 while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar(); 13 return f*x; 14 } 15 int sm[maxn],n,m,lr[maxn]; bool tg[maxn]; 16 void update(int x){sm[x]=sm[x<<1]+sm[x<<1|1];} 17 void pushdown(int x){ 18 if(tg[x]){ 19 if(lr[x<<1])sm[x<<1]=lr[x<<1]-sm[x<<1],tg[x<<1]^=1; 20 if(lr[x<<1|1])sm[x<<1|1]=lr[x<<1|1]-sm[x<<1|1],tg[x<<1|1]^=1; 21 tg[x]^=1; 22 } 23 } 24 void build(int x,int l,int r){ 25 lr[x]=r-l+1; if(l==r)return; int mid=(l+r)>>1; build(x<<1,l,mid); build(x<<1|1,mid+1,r); 26 } 27 void modify(int x,int l,int r,int ql,int qr){ 28 pushdown(x); if(ql<=l&&r<=qr){tg[x]^=1; sm[x]=lr[x]-sm[x]; return;} int mid=(l+r)>>1; 29 if(ql<=mid)modify(x<<1,l,mid,ql,qr); if(mid<qr)modify(x<<1|1,mid+1,r,ql,qr); update(x); 30 } 31 int query(int x,int l,int r,int ql,int qr){ 32 pushdown(x); if(ql<=l&&r<=qr)return sm[x]; int mid=(l+r)>>1,q=0; 33 if(ql<=mid)q+=query(x<<1,l,mid,ql,qr); if(mid<qr)q+=query(x<<1|1,mid+1,r,ql,qr); return q; 34 } 35 int main(){ 36 n=read(); m=read(); build(1,1,n); 37 inc(i,1,m){ 38 int opt=read(),l=read(),r=read(); if(!opt)modify(1,1,n,l,r);else printf("%d\n",query(1,1,n,l,r)); 39 } 40 return 0; 41 }

?

20160917

轉(zhuǎn)載于:https://www.cnblogs.com/YuanZiming/p/5882829.html

超強(qiáng)干貨來(lái)襲 云風(fēng)專(zhuān)訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的bzoj1230[Usaco2008 Nov]lites 开关灯*的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。