hdu 4288 2012成都網路賽

2021-06-09 13:52:28 字數 619 閱讀 4768

線段樹學的遠遠不夠啊,網路賽的時候一直不知道怎麼做,後來看了大神報告,才學了一下。

線段樹每個節點 記錄 sum[0...5],即位置mod 5 的5種結果的數對應的和。cnt記錄區間有多少個數。

更新的時候 只要把對應子區間的sum[i]加起來就可以了

#include#includeusing namespace std;

#define maxn 100010

#define lson u<<1

#define rson u<<1|1

typedef long long ll;

int dat[maxn],tmp[maxn];

char cmd[maxn][5];

struct nodet[maxn<<2];

void build(int u,int l,int r)

void pushup(int u)

void update(int u,int pos,int val,int op)

else

}int main(){

int n;

while(scanf("%d",&n)==1){

int num=0;

for(int i=0;i

11年成都網路賽

今天把去年成都的網路賽做了一下,去年是一題不會哇,現在也挺吃力,還有幾題不會,有空再來看 attack 樹狀陣列,這題樹狀陣列節點n記錄的是wall n 和wall n 1 被炮擊的差 include include include includeusing namespace std define...

11年成都網路賽

今天把去年成都的網路賽做了一下,去年是一題不會哇,現在也挺吃力,還有幾題不會,有空再來看 attack 樹狀陣列,這題樹狀陣列節點n記錄的是wall n 和wall n 1 被炮擊的差 include include include includeusing namespace std define...

hdu4111 成都現場賽A題

題意 有n堆石子,每堆石子有乙個數目,現有兩個人博弈,每個人每次可以進行兩個操作中的乙個 1 從某堆拿掉乙個石子 若某堆石子為0了,那麼這堆就不存在了 2 合併兩堆石子 沒有操作的就輸。問是哪個贏 思想 如果每堆石子數都大於1,那麼最後結果肯定相當於所有的堆合併成一堆後,然後再乙個乙個拿掉的結果。因...