傳送門
如何判斷乙個單詞是否可能成為字典序的最小?
可以依次和其他單詞比較,如果字首相同,那麼當前字母的字典序一定是自己小
所以可以由自己的字母向另乙個字母連邊,最後看下是否有環就好了…
但是卻卡死在怎麼找字首相同的單詞這步…
這不是裸的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...