Bzoj3998 弦論

物理題目傳送門

求第k大的子串?SAM模板題啊

CLJ的論文都講了怎么做啊,把自動機看成一個后綴Trie求出size讓后像多叉平衡樹那樣亂搞就好了~

比前兩個哈希的題好多了~ (順便,hdu高亮好好看啊)

#pragma GCC opitmize("O3")
#pragma G++ opitmize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 1000010
using namespace std;
char c[N];
int s[N][26],mx[N],sz[N],f[N];
int n,m,T,k,cnt=1,lst=1,v[N],r[N],w[N];
inline int extend(int c){int p=lst,np=lst=++cnt,q,nq;mx[np]=mx[p]+1; sz[np]=1;for(;p&&!s[p][c];p=f[p]) s[p][c]=np;if(!p) return f[np]=1;q=s[p][c];if(mx[q]==mx[p]+1) f[np]=q;else{nq=++cnt;mx[nq]=mx[p]+1;f[nq]=f[q]; f[q]=f[np]=nq;memcpy(s[nq],s[q],26<<2);for(;p&&s[p][c]==q;p=f[p]) s[p][c]=nq;}
}
inline void dfs(int x){if(k<=sz[x]) return; else k-=sz[x];for(int j=0;j<26;++j)if(k>w[s[x][j]])k-=w[s[x][j]];else { putchar(j+'a'); dfs(s[x][j]); break; }
}
int main(){scanf("%s%d%d",c+1,&T,&k); n=strlen(c+1);for(int i=1;i<=n;++i) extend(c[i]-'a');for(int i=1;i<=cnt;++i) ++v[mx[i]];for(int i=1;i<=n;++i) v[i]+=v[i-1];for(int i=cnt;i;--i) r[v[mx[i]]--]=i;if(T) for(int i=cnt;i;--i) sz[f[r[i]]]+=sz[r[i]];else  for(int i=cnt;i;--i) sz[i]=1; sz[1]=*sz=0; memcpy(w,sz,sizeof w);for(int i=cnt;i;--i) for(int j=0;j<26;++j) w[r[i]]+=w[s[r[i]][j]];if(k>w[1]) puts("-1"); else dfs(1);
}

轉載于:https://www.cnblogs.com/Extended-Ash/p/9477181.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370384.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370384.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370384.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java需要先安裝jdk_謝謝知乎。Java初學者首先下載 JDK 開發環境,然后再下 eclipse 對嗎?那 tomcat是什么?還需要安裝嗎?...

程序獵人Till All are One!何馬、FAN 等人贊同這個問題&#xff0c;作為有些Java經驗的人&#xff0c;都會覺得太初級。而且&#xff0c;我認為可能很多真正的高手不屑于跑來回答這種問題。本來我也不打算回答的&#xff0c;但最近剛好憑興趣在學Node.JS&#xff0c;順便學習加…

JavaEE重新審視設計模式:裝飾器

去年的這個時候&#xff0c;我寫了一系列有關JavaEE實現設計模式的博客文章。 大約一年后&#xff0c;我意識到我錯過了我最喜歡的圖案裝飾器。 裝飾器模式基本上是通過裝飾其他對象來擴展對象功能的方法&#xff0c;這些對象可以包裝目標對象并為其添加自身的行為。 如果您從…

課時105.邊框屬性下(掌握)

2.3連寫&#xff08;分別設置四條邊的邊框&#xff09; border-width:上 右 下 左; border-style:上 右 下 左; border-color:上 右 下 左; 注意點&#xff1a; 1.這三個屬性的取值是按順時針來賦值的 也就是按照上右下左來賦值&#xff0c;而不是按照日常生活…

怎么用pycharm更新python_利用PyCharm操作Github(倉庫新建、更新,代碼回滾)

Github是目前世界上最流行的代碼存儲和分享平臺&#xff0c;而PyCharm是Python圈中最流行的IDE&#xff0c;它很好地支持了Git操作。本文將會介紹如何利用PyCharm來連接Github&#xff0c;同時演示Github上的倉庫新建、更新&#xff0c;以及代碼回滾。在這之前&#xff0c;需要…

新mac 下第一次 安裝 mongodb 步驟

新入手mac&#xff0c;安裝mongo步驟記錄&#xff1a;不建議使用網上的brew安裝方法&#xff0c;因為試了半天沒有成功&#xff0c;應該是新版本限制比較多&#xff01; 從mongodb官網下載mac版本mongo&#xff1a; 1.訪問MongoDB官方下載地址 http://www.mongodb.org/download…

201621123065《JAVA程序設計》第11周學習總結

1. 本周學習總結 2. 書面作業 1. 源代碼閱讀&#xff1a;多線程程序BounceThread 1.1 BallRunnable類有什么用&#xff1f;為什么代碼中需要調用Thread.sleep進行休眠&#xff1f; BallRunnable類實現Runnable接口&#xff0c;支持多線程&#xff1b;調用Thread.sleep進行休眠則…

vue使用v-for循環,動態修改element-ui的el-switch

在使用element-ui的el-switch中&#xff0c;因為要用v-for循環&#xff0c;一直沒有成功&#xff0c;后來仔細查看文檔&#xff0c;發現可以這樣寫 <el-switch v-for"(item, key) in list" v-model"item.is" :key"key" :active-value"…

前端加按鈕將圖片另存為_Windows 10系統如何將自己的照片制作成文件夾圖標

我們大家都在電腦上建有很多文件夾&#xff0c;有時候查找自己需要的資料文件夾時不太容易&#xff0c;很浪費時間。如果將自己的照片作為常用文件夾的圖標&#xff0c;看起來醒目查找時也更為方便些。下面就介紹具體的操作教程。一、將照片格式轉換為圖標文件格式在電腦上將圖…

codeforces 125 A-E 補題

A Measuring Lengths in Baden 進制轉換 水題 #include<bits/stdc.h> using namespace std;int main() {int n;scanf("%d",&n);int an/36;n-a*36;int b(n)/3;if((n%3)>2)b;while(b>12)b-12,a1;printf("%d %d\n",a,b);return 0; }B Simple …

在JAXB解組期間應用名稱空間

對于某些XML模式來說&#xff0c;它是一組嚴格的規則&#xff0c;用于規定XML文檔的結構方式。 但是對于其他人來說&#xff0c;通常的準則是指出XML的外觀。 這意味著有時出于某些原因人們希望接受不符合XML模式的輸入。 在此示例中&#xff0c;我將演示如何利用SAX XMLFilter…

java怎么把文件寫入到usb里_如何創建PowerShell腳本以將文件復制到USB閃存驅動器?...

此代碼最后準備使用可移動驅動器(例如插入的USB驅動器)&#xff1a;$drives [System.IO.DriveInfo]::GetDrives()$r $drives | Where-Object { $_.DriveType -eq Removable -and $_.IsReady }if ($r) {return ($r)[-1]}throw "No removable drives found."這種方式…

利用css transition屬性實現一個帶動畫顯隱的微信小程序部件

我們先來看效果圖 像這樣的一個帶過渡效果的小部件在我們實際開發中的應用幾率還是比較大的&#xff0c;但是在開發微信小程序的過程中可能有的小伙伴發現transition這個屬性它不好使&#xff08;下面說明&#xff09;所以我們這個時候會考慮去使用微信官方提供的wx.createAnim…

c語言學生管理系統鏈表(dev vs2012下可以運行)

struct student { char name[10]; char sex[5]; long int num;//學號 int xuhao; int age; float score[3]; float averange; char DJ;//存放等級哦 struct student *next;};//定義結構體變量保存 名字 性別 年齡 成績] 結構體聲明int n;//存放學生人數int man;//存放統計的男生…

python 東哥 with open_python 連接redis cluster

#!/usr/bin/env python# encoding: utf-8#author: 東哥加油!#file: clear_pool.py#time: 2018/8/28 17:06from rediscluster import StrictRedisClusterimport datetimeimport sysdef redis_cluster():redis_nodes [{host:192.168.15.6,port:6379},{host:192.168.15.7,port:63…

go gcc

http://www.cnblogs.com/zkweb/p/7880099.html轉載于:https://www.cnblogs.com/thrillerz/p/7958446.html

抽象工廠設計模式解釋

抽象工廠設計模式是工廠設計模式的另一種形式。 這種模式可以被視為“超級工廠”或“工廠工廠”。 抽象工廠設計模式&#xff08;屬于“四人幫”的一部分&#xff09;屬于“創新設計模式”類別&#xff0c;它提供了一種封裝一組具有公共鏈接的工廠的方法&#xff0c;而無需突出…

app賬號退不出去_最新!多交的稅可以退,同學,你今天退稅了嗎?

4.3 號 更新。1、有知友留言&#xff0c;已經收到退稅了。2、部分地區陸續開放申報了&#xff0c;建議大家不要著急。3、大家耐心一點&#xff0c;該是你的就是你的&#xff0c;退稅這個事多退少補&#xff0c;建議大家在白天上班時間去APP上看看&#xff0c;畢竟相關公務人員也…

【BZOJ2004】[Hnoi2010]Bus 公交線路 狀壓+矩陣乘法

【BZOJ2004】[Hnoi2010]Bus 公交線路 Description 小Z所在的城市有N個公交車站&#xff0c;排列在一條長(N-1)km的直線上&#xff0c;從左到右依次編號為1到N&#xff0c;相鄰公交車站間的距離均為1km。 作為公交車線路的規劃者&#xff0c;小Z調查了市民的需求&#xff0c;決定…

課時77.序選擇器(掌握)

CSS3中新增的選擇器最具代表性的就是序選擇器。 1.同級別的第幾個 1. :first-child 選中同級別中的第一個標簽 注意點&#xff1a;不區分類型 但是我們這里有一個注意點&#xff0c;如果我們在第一個p之前加一個h1&#xff0c;則第一個p就不變紅了&#xff0c;因為我們…

Gulp——文件壓縮和文件指紋

先看下文件指紋添加成功發布后的“成果”。 首先介紹下gulp的文件壓縮&#xff08;壓縮css和js&#xff09; &#xff08;下面介紹的代碼移步這里&#xff09; 我的文件目錄如下&#xff1a; &#xff08;標紅部分是生成的處理后的文件&#xff09; 如何使用gulp&#xff0c;請…