P5057 [CQOI2006]简单题

 

链接:P5057 [CQOI2006]简单题


其实这道题是树状数组的模板题


看一下题意,如果用树状数组,我们很容易想到差分数组。但是一般的差分数组是不行的


因为只有零和一,所以对于每一次操作,实就是让它在0和1中循环。而且,很容易得到,对于一个点进行了奇数次操作,他就会被改变,而偶数次操作就不变,知道了这点,我们就可以用树状数组去维护了


 

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 int t[1000001];
 5 int f;
 6 int n,m;
 7 int x;int y;
 8 int lowbit(int x){
 9     return x & -x;
10 }
11 int sum(int x){
12     int ans=0;
13     while(x){
14         ans+=t[x];
15         x-=lowbit(x);
16     }
17     return ans;
18 }
19 void add(int k,int x){
20     while(k<=n){
21         t[k]+=x;
22         k+=lowbit(k);
23     }
24     return ;
25 }
26 int main(){
27     cin>>n>>m;
28     for(int i=1;i<=m;++i){
29         cin>>f;
30         if(f==1){
31             cin>>x>>y;
32             add(x,1);
33             add(y+1,-1);
34         }
35         else
36         {
37             cin>>y;
38             cout<<sum(y)%2<<endl;
39             }    
40     }
41     return 0;
42 }

Ac

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇