程式設計網格無水題 之 最短歧義串

2021-08-13 22:49:12 字數 1061 閱讀 4648

乙個小小的字串,乙個三歲小孩都能把它刪掉,但它卻可以累死所有的程式設計師……

就好比這道題,累死我了。

閒話結束,下面上題

考慮乙個歧義串會有什麼樣的結構

拿樣例為例,iskill ,它可以拆分成 i 和 skill,也可以拆成 is 和 kill

那麼不同的拆分方式是什麼意思呢?

就是is 可以嚴格包含i ,剩下字串s 可以被 skill 嚴格包含 ,而skill 剩下的字串  kill 呢又等於字典中原有的  kill

這樣就構造好了乙個歧義串。所以不同拆分的意思就是完美包含 

有同學說自己case8總是空輸出,怎麼回事呢?

比如說a被b完美包含,b截掉a剩下的字串啊,很可能巨長……沒有字典中的原串可以包含它,但它卻可以包含字典中的某些原串……

那就看它能包含字典中哪些原串嘍,再截短

顯而易見,退出條件就是這個剩下的字串和字典中某個原串相等(或者再走一步,剩下的字串為0,但不推薦這麼想,因為有違歧義的原則)。

敲黑板!!!這題感覺單詞不能重複用,所以一定要標記哪些串用過了,不標記100%tle (跟我念,te le,這單詞不念t l e)

#include#include#include#include#include#include#includeusing namespace std;

string dic[110];

bool used[110];

int n,ans;

string astr;

void dfs(string substr,int templ,string tans)

return;

}else if(dic[i].length()>substr.length()&&dic[i].find(substr,0)==0)else if(dic[i].length()>dic[i];

sort(dic,dic+n);

for(int i=1;i

2017網易內推程式設計題(網格問題)

二貨小易有乙個w h的網格盒子,網格的行編號為0 h 1,網格的列編號為0 w 1。每個格仔至多可以放一塊蛋糕,任意兩塊蛋糕的歐幾里得距離不能等於2。對於兩個格仔座標 x1,y1 x2,y2 的歐幾里得距離為 x1 x2 x1 x2 y1 y2 y1 y2 的算術平方根小易想知道最多可以放多少塊蛋糕...

bootstrap之網格布局

一.實現原理 網格布局是通過容器的大小,平均分為12份 可以修改 再調整內外邊距,和 布局有點類似但是也存在區別。實現步驟如下 1 資料行.row 必須包含在容器.container 中,以便賦予核實的對齊方式和內間距設定 class container class row div div 2 在行...

dp基礎之網格問題

及注釋如下 usr bin python def get case m,n m,n分別為網格的行列數 建立乙個列表 f i j 表示從左上開始到第i行第j列的點的路徑數 f 0 for x in range n for y in range m f 0 0 表示初始情況 f 0 0 1 for i ...