就是字串哈希求個數,因為記憶體限制很小,所以只能把所有的雜湊值存下來,然後排序,去重,就可以
不知為什麼,我的p選的是1e9+7,mod是1e9+9,就會wa,然後兩個換一下。p是1e9+9,mod是1e9+7,就過了,2333
原來字串雜湊也不難。。。。去年的時候,,,還是十分懵逼的小白。。。。什麼都看不懂。。。
**:
#include #include #include #include #include #include #include using namespace std;
#define maxn 105
#define p 1000000009
#define mod 1000000007
#define num 20000
char ch[maxn];
int cnt[num];
long long hashi[maxn];
int idx[260];
void init_idx()
int main()
sort(cnt, cnt + num);
printf("%d\n", unique(cnt, cnt + num) - cnt);
//while (1);
return 0;
}
luogu3709 大爺的字串題
題目鏈結 一天做到兩道這種題目描述如此神仙的題也是夠了。真鍛鍊語文能力。題目的意思其實就是,給你乙個序列,然後每次詢問乙個區間。使得盡量按照嚴格上公升的順序從這個區間內取數。如果當前取得數字小於等於前面的其中乙個,就讓rp 然後重新開始記錄。問rp最多可以是多少。思考一下可以發現,其實就是求區間內眾...
P3709 大爺的字串題
p3709 傳送門 lxl出的語文題 其實轉化一下就是求將當前區間最少拆分成多少個嚴格單調上公升序列 可不連續 再轉化一下就是求區間內的眾數個數 本來求眾數的套路是主席樹 二分 這樣在刪除時僅當 sum cnt dat pos 1 時才減少 cur include using namespace s...
P3709 大爺的字串題(50分)
在那遙遠的西南有一所學校 被和諧部分 然後去參加該省省選虐場 然後某蒟蒻不會做,所以也出了乙個字串題 給你乙個字串a,每次詢問一段區間的貢獻 貢獻定義 每次從這個區間中隨機拿出乙個字元x,然後把x從這個區間中刪除,你要維護乙個集合s 如果s為空,你rp減1 如果s中有乙個元素不小於x,則你rp減1,...