poj2886 線段樹單點更新)

2021-07-23 03:24:38 字數 770 閱讀 2982

/*到1號節點的距離為s的點,則該點的相對節點1的編號為(s+n)%n+1,另外此題要打表求某個數的因子個數

反素數就是 對 x來說約束個數 g(x),如果 對於 i#includeusing namespace std;

const int maxn=500002;

//反素數及因子個數打表

int ap[40] =;

int num[40]=;

char s[maxn][15];

int val[maxn];

int tree[maxn<<2]; //維護區間人數

void pushup(int p)

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

int mid=(l+r)/2;

build(p<<1,l,mid);

build(p<<1|1,mid+1,r);

pushup(p);

}int update(int p,int l,int r,int k)

int mid=(l+r)/2;

int ret;

if(k<=tree[p<<1]) ret= update(p<<1,l,mid,k);

else ret= update(p<<1|1,mid+1,r,k-tree[p<<1]);

pushup(p);

return ret;

}int main()

cout<}

return 0;

}

poj 2886 線段樹 單點更新

題意 n個小孩圍成一圈,玩約瑟夫環,每個小孩有一張卡片上面是數字a,正數代表右手邊第a個小孩出隊,負數表示左手邊,遊戲從第k個小孩開始,遊戲直到所有小孩出隊為止,第p個出隊小孩得到f p 分數,f p 為p的因子數 題解 這裡引入反素數的概念不清楚可以看 每次詢問只要從第乙個出隊的執行到當前給出的n...

poj2886 線段樹單點修改 反素數(喵?)

n個熊孩子每個人有個數字a i 首先k號熊孩子出圈,然後第k a i 個熊孩子出圈,乙個環,可以繞很多圈,如果a i 為正則順時針數,反之逆時針,相當於乙個變體的約瑟夫遊戲,第i個出圈的熊孩子,有f i 的得分,f i 為i的因子個數 分為兩個部分 線段樹模擬約瑟夫遊戲 尋找1到n範圍內因數數量最多...

poj2886 約瑟夫環,樹狀陣列

n個人圍成圈,每個人手上有乙個數字,最開始k跳出圈,如果k手上的數num是正數,則向左num個人出圈,負數就向右,直到所有人都出圈,得分最高的是第 1 n中因子數最多的數 次跳出的人 首先處理1 n中因子最多的數,有個名詞叫反素數,不管他這裡直接打表 include include include ...