傳送門
trie樹。
首先建立trie樹,如果是名字,打標記+1,如果是筆名,打標記-1
然後做貪心爆搜,如果當前節點標記之和與兒子節點標記之和不同,則貪心選擇min乘上depth,答案一定是最優的。
資料有一組要深搜80萬層,要加特判。
#include
#include
#include
#include
#include
#include
#define n 800005
using
namespace
std;
int c[n][26],tag[n],dep[n],n,len,ans,cnt;
char s[n];
void dfs(int x)
for (int i=0;i<26;i++)
if (c[x][i])
}int main()
tag[x]++;
}for (int i=1;i<=n;i++)
if (tag[x]>0) ans+=dep[x];
tag[x]--;
}dfs(0);
printf("%d",ans);
}
51nod 1526 分配筆名(字典樹 貪心)
題意 班裡有n個同學。老師為他們選了n個筆名。現在要把這些筆名分配給每乙個同學,每乙個同學分配到乙個筆名,每乙個筆名必須分配給某個同學。現在定義筆名和真名之間的相關度是他們之間的最長公共字首。設筆名為a,真名為b,則他們之間的相關度為lcp a,b 那麼我們就可以得到匹配的質量是每乙個同學筆名和真名...
51Nod1799 二分答案
lyk最近在研究二分答案類的問題。對於乙個有n個互不相同的數且從小到大的正整數數列a 其中最大值不超過n 若要找乙個在a中出現過的數字m,乙個正確的二分程式是這樣子的 l 1 r n mid l r 2 while l r 最終a r 一定等於m。但是這個和諧的程式被熊孩子打亂了。熊孩子在一開始就將...
51nod 3035 劃分平面
題目 用n條直線,劃分平面,最多能夠劃分為多少塊?例如 1條可以劃分為2塊 2條可以劃分為4塊 3條可以劃分為7塊 輸入共一行 1個數n 1 n 10 9 輸出輸出共1行,對應劃分的數量 mod 10 9 7 資料範圍 對於20 的資料,1 n 10 對於44 的資料,1 n 20000 對於100...