ac通道
題面很簡單,直接分析問題吧
先考慮怎麼處理資料,對於每乙個整數 n ,可以用乙個對映關係儲存它的對應位置,即map[ n ] = i;表示 n 是第 i 個數,然後考慮對於操作1,刪除乙個數字,只需要找到它在的對應位置,然後讓這個位置後面的每乙個值都減一即可,很容易可以想到差分,但是中間會後詢問操作,因此我們還需要維護乙個字首和,用字首和陣列會超時,可以考慮用樹狀陣列維護字首和,每次刪除的時候,讓原來的增加值的操作變成減一,對於每乙個數字,它的相對位置(對映關係照映出來的數字)的字首和就是它現在的位置
#include using namespace std;
const int n = 1e5 + 10;
int n, m, a[n], b[n];
mapmp;
int lowbit(int x)
void add(int x, int d)
}int query(int x)
return res;
}int main()
for (int i = 1; i <= m; i++)
else
} return 0;
}
小明的煩惱 找字串
problem description 小明是個很優秀的同學,他除了特別公正外,他也很細心,當然老師肯定也知道,這不,老師又有事情找他幫忙了,老師每週都會給他乙個字串a,然後問小明 a字串的迴圈移位產生的所有字串中,字典序最小的是哪個 於是小明屁顛屁顛的乙個乙個比對,但是長久下來,小明實在是受不了了...
hunnu 小明的煩惱 找字串
小明的煩惱 找字串 time limit 1000ms,special time limit 2500ms,memory limit 32768kb total submit users 108,accepted users 68 problem 11544 no special judgement...
zzulioj2328 小P的字母子串 map
題目描述 小p最近在研究字元編碼,給出一串由0 1組成的字串,從中任意進行擷取,如果擷取的字串對應乙個英文本母的ascii值,小p就把這個0 1串叫字母子串,問給定的字串最多能截取出多少個字母子串。輸入測試資料有多組,每組一行由0 1組成的字串,每行長度不超過10000。輸出對於每組輸入,在一行中輸...