牛客練習賽11 B 假的字串 tire 拓撲

2021-10-11 22:54:45 字數 1165 閱讀 8194

傳送門

如何判斷乙個單詞是否可能成為字典序的最小?

可以依次和其他單詞比較,如果字首相同,那麼當前字母的字典序一定是自己小

所以可以由自己的字母向另乙個字母連邊,最後看下是否有環就好了…

但是卻卡死在怎麼找字首相同的單詞這步…

這不是裸的tir

etire

tire

樹嗎?腦子又抽了害…

#include

using

namespace std;

const

int maxn =

2e5+10;

string s[maxn]

;int zi[maxn][27

],id,n,in[maxn]

,nice[maxn]

;vectorvec;

struct edged[maxn]

;int head[maxn]

,cnt=1;

void

add(

int u,

int v)

,head[u]

= cnt;

}void

insert

(string s)

nice[now]=1

;}bool

tuopu()

}return ans==26;

}bool

isok

(string s)

now = zi[now]

[x];

if( ilength()

-1&&nice[now]

)return

false;}

if(tuopu()

)return

true

;return

false;}

void

init()

intmain()

for(

int i=

1;i<=n;i++

) cout << vec.

size()

<< endl;

for(

int i=

0;isize()

;i++

) cout << vec[i]

<< endl;

}

牛客 假的字串

description 給定n個字串,互不相等,你可以任意指定字元之間的大小關係 即重定義字典序 求有多少個串可能成為字典序最小的串,並輸出它們 input 第一行乙個數表示n 之後n行每行乙個字串表示給定的字串 output 第一行輸出乙個數x表示可行的字串個數 之後輸出x行,每行輸出乙個可行的字...

牛客練習賽69 E 字串 雜湊

給出乙個長度為n排列p 規定乙個區間 l,r l r 是 fair 的,當且僅當區間中最小值等於 l 並且最大值等於 r 求 fair 區間的個數 我不會正解 首先把每乙個i值對映成 base i 遍歷一邊全排列 然後每次加上base a i 減去base i 求貢獻,如果 l,r 滿足條件,那麼這...

牛客練習賽36 A Rabbit的字串(模擬)

思路1 暴力列舉,題目讓操作的是選乙個位置k然後k位置後面的字串全部水平移動到前面,我們可以暴力列舉每乙個位置,將後面的移動到前面比如abcde bcdea,這個變化可以轉化成將a刪除後加到後面。這樣就好操作了。include using namespace std int main puts no...