Codeforces 590 D 二維樹狀陣列

2022-05-06 21:27:09 字數 807 閱讀 6279

題意

給乙個10^5之內的字串(小寫字母)時限2s

輸入n,有n個操作  (n<10^5)

當操作是1的時候,輸入位置x和改變的字母

當操作是2的時候,輸入區間l和r,有多少不同的字母

思路二維樹狀陣列

#include#include

#include

#include

#include

#define lowbit(x) x&(-x)

using

namespace

std;

const

int maxn=1e5+10

;char

s[maxn];

intl,n,yi,er,san;

char

c;struct

node

void updata(int x,int

y) }

int geshu(int x,int

y)

for(int i=y; i>0; i-=lowbit(i))

return sum2-sum1;

}} a[

27];

intmain()

l=strlen(s);

for(int i=0; i)

scanf("%d

",&n);

for(int i=0; i)

else

}printf(

"%d\n

",ans);}}

}return0;

}

CodeForces 732D 二分 貪心

思路 二分列舉答案,在限定時間內判斷這個時間能否完成。貪心策略是盡量晚的安排每個考試。ac include include include include include include include include include include include include include ...

CodeForces1311D 思維 二分

給你三個整數a,b,c 每一次操作你可以讓三個其中之一 1 或者 1,你可以執行無限次這樣的操作,但是你不能將他們變成非正數。你需要找到最小運算元以至於b是a的倍數,c是b的倍數。t組資料,1 t 100 每組三個數a,b,c。1 a b c 1e4 根據資料範圍,可以想到去列舉其中的乙個數,然後c...

Codeforces 1132D 二分答案 堆

傳送門 二分答案,考慮如何判定 可以用貪心的方法,每次找最快沒電的電腦,在沒電前1單位時間給它充電 正確性顯然 實現上可以維護乙個堆,儲存每個電腦電用完的時刻,每次從堆頂取出最小的乙個給它充電。設二分值為mid,對於每個電腦記錄它的充電次數num i 則沒電的時間就是 lfloor frac rfl...