就不說題意了,畢竟中文的簡單題意,很顯然的線段樹,用 lazy陣列去維護一下區間被修改多少次,每次區間被修改,區間中1的個數就變成區間長度減去原來區間中1的個數,然後就能解決這道題了。
感覺洛谷評分有問題,這明明是道很簡單的題,為什麼這能是藍題。狀態太差了,我要刷題!!!
最後,**:
#includeusing namespace std;
string str;
const int maxn=2e5+100;
int ans;
int tree[maxn<<2];
int lazy[maxn<<2];
void push_up(int tp,int x)
void push_down(int tp,int x,int l,int mid,int r)
void build(int l,int r,int x)
int tp=x<<1;
int mid=l+r>>1;
build(l,mid,tp);
build(mid+1,r,tp+1);
push_up(tp,x);
}void update(int l,int r,int x,int l,int r)
int tp=x<<1;
int mid=l+r>>1;
if(lazy[x])
update(l,mid,tp,l,r);
update(mid+1,r,tp+1,l,r);
push_up(tp,x);
}void query(int l,int r,int x,int l,int r)
int tp=x<<1;
int mid=l+r>>1;
if(lazy[x])
query(l,mid,tp,l,r);
query(mid+1,r,tp+1,l,r);
push_up(tp,x);
}int main()
else
}return 0;
}
洛谷 P2574 XOR的藝術
剛剛學了,線段樹,一道線段樹入門題試試水 下面是題面 akn覺得第一題太水了,不屑於寫第一題,所以他又玩起了新的遊戲。在遊戲中,他發現,這個遊戲的傷害計算有乙個規律,規律如下 1 擁有乙個傷害串為長度為n的01串。2 給定乙個範圍 l,r 傷害為傷害串的這個範圍內中1的個數 3 會被隨機修改傷害串中...
XOR的藝術 洛谷P2574
題目描述 akn覺得第一題太水了,不屑於寫第一題,所以他又玩起了新的遊戲。在遊戲中,他發現,這個遊戲的傷害計算有乙個規律,規律如下 1 擁有乙個傷害串為長度為n的01串。2 給定乙個範圍 l,r 傷害為傷害串的這個範圍內中1的個數 3 會被隨機修改傷害串中的數值,修改的方法是把 l,r 中的所有數x...
題解 洛谷P1738 洛谷的資料夾
一 目錄概覽 二 題目大意 三 大致思路 四 實現 五 剖析 六 總結回顧 kkksc03想好了很多應該有的資料夾路徑名。問題是,需要是使這些資料夾都存在,需要新建幾個資料夾呢?資料夾路徑是什麼?例如 a b c,表示在根目錄下有a資料夾,在a資料夾裡有b資料夾,在b資料夾裡有c資料夾。其他路徑同理...