description
給你乙個字串,每次給乙個詢問,問這個區間內有多少個子串經過重新排序後可以變成乙個回文串。
sample input
6 6zzqzzq
1 62 4
3 42 3
4 51 1
sample output164
2231
考慮莫隊,因為字元只有26個考慮把他壓成二進位制。
那麼你就可以列舉每個位不一樣,統計答案。
然後其實狀態數是有限的,於是你預處理一下即可。。。
#include
#include
#include
#include
using
namespace std;
intread()
while
(ch >=
'0'&& ch <=
'9') s = s *
10+ ch -
'0', ch =
getchar()
;return s * f;
}struct hh s[
61000];
struct node q[
61000];
int m;
int sl[
61000
], sr[
61000];
int sum, ans[
61000
], s[
61000
], oo[
61000
], hg[
61000][
27];char ss[
61000];
bool
cmp(node a, node b)
bool
cmp1
(hh a, hh b)
void
jiar
(int x)
void
jianr
(int x)
void
jial
(int x)
void
jianl
(int x)
intmain()
s[n +1]
.x =
0; s[n +1]
.id =0;
sort
(s +
1, s + n +
2, cmp1)
;int tp =0;
for(
int i =
1; i <= n +
1; i++
)for
(int i =
0; i <= n; i++)if
(s[ans]
.x == yy) hg[i]
[++hg[i][0
]]= s[s[ans]
.id];}
}for
(int i =
1; i <= m; i++
)sort
(q +
1, q + m +
1, cmp)
;int ll =
1, rr =
0; sum =0;
for(
int i =
1; i <= m; i++
)for
(int i =
1; i <= m; i++
)printf
("%d\n"
, ans[i]);
return0;
}
4866 Ynoi2017 由乃的商場之旅
4866 ynoi2017 由乃的商場之旅 time limit 20 sec memory limit 164 mb submit 192 solved 47 submit status discuss description 第一行兩個數n,m 之後一行乙個長為n的字串,代表每個人的編號 之後m...
Ynoi2017 舌尖上的由乃
維護區間加和區間第k小。n 100000 分塊,設塊大小為k相信大家都會o n k log 2 n 的查詢和o k 的修改。什麼你不會o k 的修改?歸併啊歸併啊。那麼平衡規劃一下k n logn 總複雜度o nn l ogn include include include define fo i,...
BZOJ4810 Ynoi2017 由乃的玉公尺田
對每個區間維護一下這個區間每個數有沒有,用bitset壓一下,這個用莫隊跑出來,然後就能判加減合不合法了 乘的話根號列舉一下就行了 include include include include include include include include include include incl...