日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[BZOJ3998][TJOI2015]弦论

發(fā)布時(shí)間:2025/5/22 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [BZOJ3998][TJOI2015]弦论 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

[BZOJ3998][TJOI2015]弦論

試題描述

對(duì)于一個(gè)給定長(zhǎng)度為N的字符串,求它的第K小子串是什么。

輸入

第一行是一個(gè)僅由小寫英文字母構(gòu)成的字符串S

第二行為兩個(gè)整數(shù)T和K,T為0則表示不同位置的相同子串算作一個(gè)。T=1則表示不同位置的相同子串算作多個(gè)。K的意義如題所述

輸出

輸出僅一行,為一個(gè)數(shù)字串,為第K小的子串。如果子串?dāng)?shù)目不足K個(gè),則輸出-1

輸入示例

aabc 0 3

輸出示例

aab

數(shù)據(jù)規(guī)模及約定

N<=5*10^5

T<2

K<=10^9

題解

對(duì)于 T = 0 的情況,就是這道題;對(duì)于 T = 1 的情況就是把每個(gè)節(jié)點(diǎn)的權(quán)值由 1 變成 right 集合的大小。

#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cctype> #include <algorithm> using namespace std;int read() {int x = 0, f = 1; char c = getchar();while(!isdigit(c)){ if(c == '-') f = -1; c = getchar(); }while(isdigit(c)){ x = x * 10 + c - '0'; c = getchar(); }return x * f; }#define maxn 1000010 #define maxa 26char S[maxn]; int len, T, K;int rt, last, ToT, to[maxn][maxa], par[maxn], Max[maxn], val[maxn], f[maxn]; void extend(int x) {int p = last, np = ++ToT; Max[np] = Max[p] + 1; val[np] = 1; last = np;while(p && !to[p][x]) to[p][x] = np, p = par[p];if(!p){ par[np] = rt; return ; }int q = to[p][x];if(Max[q] == Max[p] + 1){ par[np] = q; return ; }int nq = ++ToT; Max[nq] = Max[p] + 1; if(!T) val[nq] = 1;memcpy(to[nq], to[q], sizeof(to[q]));par[nq] = par[q];par[q] = par[np] = nq;while(p && to[p][x] == q) to[p][x] = nq, p = par[p];return ; }int sa[maxn], Ws[maxn];int main() {scanf("%s", S); T = read(); K = read();len = strlen(S);rt = last = ToT = 1;for(int i = 0; i < len; i++) extend(S[i] - 'a');for(int i = 1; i <= ToT; i++) Ws[len-Max[i]]++;for(int i = 1; i <= len; i++) Ws[i] += Ws[i-1];for(int i = ToT; i; i--) sa[Ws[len-Max[i]]--] = i;if(T)for(int i = 1; i <= ToT; i++) {int u = sa[i];if(par[u] != rt) val[par[u]] += val[u];}for(int i = 1; i <= ToT; i++) {int u = sa[i];f[u] = val[u];for(int c = 0; c < maxa; c++) f[u] += f[to[u][c]];}if(K > f[1]) return puts("-1"), 0;int p = rt;while(K > 0) {for(int c = 0; c < maxa; c++) if(K > f[to[p][c]])K -= f[to[p][c]];else {putchar(c + 'a');K -= val[p = to[p][c]];break;}}putchar('\n');return 0; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/xiao-ju-ruo-xjr/p/6554200.html

總結(jié)

以上是生活随笔為你收集整理的[BZOJ3998][TJOI2015]弦论的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产老熟妇精品观看 | 亚洲欧洲中文 | 亚洲色图 一区二区 | 丰满岳乱妇国产精品一区 | 老司机深夜福利视频 | 91精品国产综合久久久久久 | 欧美精品videos另类日本 | 草逼视频网| 国产又黄又爽 | 清纯粉嫩极品夜夜嗨av | 婷婷6月天| 韩日视频在线 | 亚洲aⅴ在线观看 | 亚洲色图五月天 | 成人欧美一区二区三区黑人一 | 成人羞羞免费 | 午夜小视频在线观看 | 欧美一级视频免费观看 | 女人被男人躁得好爽免费视频 | 三级自拍 | 在线精品免费视频 | 天天射天天色天天干 | 亚洲视频天堂 | 高清av网| 欧美三级黄| 女女调教被c哭捆绑喷水百合 | 深爱五月激情五月 | 国产美女无遮挡永久免费 | 国产中文字幕一区二区三区 | 精品久久久99 | 免费吸乳羞羞网站视频 | 亚洲第一国产 | 午夜污| 男女午夜激情 | 亚洲aⅴ | 久久艹艹| 特级西西人体444www高清大胆 | 久久九九爱 | 在线观看欧美国产 | 免费在线观看黄色网址 | 久久久久亚洲精品中文字幕 | 一区两区小视频 | 国产亚洲制服欧洲高清一区 | 欧美性生活xxx | 91美女在线 | 成年男女免费视频网站 | 国精产品一区二区三区 | 最新国产露脸在线观看 | a毛毛片 | 电影91久久久 | 国产视频一二三四区 | 亚洲AV无码精品久久一区二区 | 久久精品美女 | 成人一区二区在线观看 | 黄色小视频免费网站 | 毛片av网站 | 爽爽影院在线免费观看 | av天天草| 国产精品自拍在线观看 | 欧美一区二区免费电影 | 影音av资源| wwwjizzzcom | 国产美女精品在线 | 国产精品国产三级国产aⅴ下载 | 一区二区三区日韩精品 | 九九久久国产精品 | 欧美日韩国产在线播放 | 免费在线看黄网址 | 粉嫩久久99精品久久久久久夜 | 国产第一福利 | 欧洲亚洲另类 | 亚洲色图图 | 人人搞人人插 | 亚洲精品国产福利 | 亚洲成a人片在线 | 大又大又粗又硬又爽少妇毛片 | 欧美狂猛xxxxx乱大交3 | 欧美日韩精品一二三区 | 日韩欧美亚洲精品 | 日日干日日爽 | 午夜黄色录像 | 一区二区三区免费 | 久久手机免费视频 | 日本男人天堂网 | 国产精品网站视频 | 爱爱15p| 国产ts系列| 精品中文字幕一区二区 | 中文字幕在线观看日韩 | 国产日韩免费 | 欧美资源| 日本一级三级三级三级 | 日韩欧美亚洲一区二区三区 | 国产中文字幕第一页 | av小片 | 午夜影院日本 | 国产中文字幕乱人伦在线观看 | 亚洲国产一区二区三区 | 一区二区中文字幕 |