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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

zcmu1157: 新年彩灯Ⅱ(二维树状数组)

發(fā)布時(shí)間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zcmu1157: 新年彩灯Ⅱ(二维树状数组) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1157: 新年彩燈Ⅱ

Time Limit:?1 Sec??Memory Limit:?128 MB
Submit:?56??Solved:?17
[Submit][Status][Web Board]

Description

新年將至,YY準(zhǔn)備掛一片彩燈,形狀呈矩形,已知彩燈剛掛完的彩燈共有N*N盞(第一排編號為(1,1),(1,2),(1,3),……,第二排編號為(2,1),(2,2),(2,3)……第N排編號為(N,1),(N,2)……(N,N)),并且都是滅的。彩燈的閃爍由一段程序控制。

?

每一秒鐘程序會(huì)生成四個(gè)正整數(shù)a1,b1,a2,b2(1<=a1,b1,a2,b2<=N),然后將編號(x,y)滿足x在a1與a2之間,y在b1與b2之間的燈狀態(tài)改變一次,即如果燈(x,y)是滅的,那么經(jīng)過一次改變,燈(x,y)會(huì)亮,如果燈(x,y)是亮的,經(jīng)過一次改變,燈(x,y)會(huì)滅。

當(dāng)YY看著自己掛的彩燈不斷閃爍的時(shí)候,問題來了,YY想知道任意時(shí)刻某盞燈的狀態(tài)。

?

Input

多組測試數(shù)據(jù),每一組第一行是一個(gè)整數(shù)N(1<=N<=1000)和一個(gè)整數(shù)M(1<=M<=3000)。

然后是M行數(shù)據(jù),包括以下兩種形式:

?????????1 a1 b1 a2 b2?表示將編號(x,y)滿足x在a1與a2之間,y在b1與b2之間的燈狀態(tài)改變一次。

?????????0 x y?表示YY想知道此刻編號(x,y)的燈狀態(tài)。

Output

對于每組測試數(shù)據(jù)首先輸出“Case #:”('#'表示case序數(shù))

對于每次YY想知道結(jié)果的時(shí)候,輸出燈的狀態(tài),如果是亮的輸出”1”,否則輸出”0”;

Sample Input

3 5

1 1 1 2 2

1 2 2 3 3

0 1 1

0 2 2

0 3 3

2 3

0 1 1

1 1 1 2 2

0 1 1

Sample Output

Case 1:

1

0

1

Case 2:

0

1

二維樹狀數(shù)組單點(diǎn)查詢

#include<bits/stdc++.h> using namespace std;#define e exp(1) #define pi acos(-1) #define mod 1000000007 #define inf 0x3f3f3f3f #define ll long long #define ull unsigned long long #define mem(a,b) memset(a,b,sizeof(a)) int gcd(int a,int b){return b?gcd(b,a%b):a;}const int maxn=1010; int n,m,q; int c[maxn][maxn];int lowbit(int x) {return x&-x; } void add(int x,int y,int v) {int yy=y;while(x<=n){y=yy;while(y<=n){c[x][y]+=v;y+=lowbit(y);}x+=lowbit(x);} }int getsum(int x,int y) {int sum=0;int yy=y;while(x>0){y=yy;while(y>0){sum+=c[x][y];y-=lowbit(y);}x-=lowbit(x);}return sum; } int main() {int cas=1;while(~scanf("%d%d",&n,&m)){mem(c,0);printf("Case %d:\n",cas++);while(m--){int q;scanf("%d",&q);if(q==1){int x1,y1,x2,y2;scanf("%d%d%d%d",&x1,&y1,&x2,&y2);if(x1>x2){int t=x1;x1=x2;x2=t;}if(y1>y2){int t=y1;y1=y2;y2=t;}add(x1,y1,1);add(x1,y2+1,-1);add(x2+1,y1,-1);add(x2+1,y2+1,1);}else{int x,y;scanf("%d%d",&x,&y);printf("%d\n",getsum(x,y)&1);}}}return 0; }

?

總結(jié)

以上是生活随笔為你收集整理的zcmu1157: 新年彩灯Ⅱ(二维树状数组)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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