HihoCoder 1640 : 命名的煩惱(預處理)(好題)
描述
程序員常常需要給變量命名、給函數命名、給項目命名、給團隊命名…… 好的名字可以大大提高程序員的主觀能動性,所以很多程序員在起名時都會陷入糾結和煩惱。
小Hi希望給新的項目起個拉風的名字。他希望這個名字可以包含N個關鍵字,並且總長度最短。例如包含關鍵字abcd、cdab和dabc的最短字符串是cdabcd。
給定N個關鍵字,請你幫小Hi找到最短的包含所有關鍵字的字符串。輸出這個字符串的長度。
輸入
第一行包含一個整數N。(1 <= N <= 15)
以下N行每行包含一個只包含小寫字母的字符串。字符串長度不超過100。
輸出
輸出最短的長度。
樣例輸入
3 abcd cdab dabc
樣例輸出
6
思路:DP,我們假設已經合並成字符串S,若把str加到末尾,不知道對齊哪一位最優,假設str長度為len,可能對其位數<len,也可能>=len,即覆蓋掉前面一個str’。
所以,需要我們預處理包含關系的字符串,刪去被包含的字符串,那麽就可以DP了。
具體的,dp[2^15][15]表示使用的哪些字符串,最後一個串是哪個,當然,前提是刪去了被包含的字符串。
HihoCoder 1640 : 命名的煩惱(預處理)(好題)
相關推薦
bzoj 1003 物流運輸 (預處理最短路+區間dp)
題意:給一個圖,讓你跑n次最短路,第i次最短路有若干點是不能使用的,並且更改一次路線就又需要加k的額外花費,問跑完n次以後最小花費。 思路:切入點在於某個時間段內花費是不變的,更改路線要加花費,自然想到dp。所以想到把n次最短路分割成多個區間最短路的和,對於每種最短路,我們
BZOJ 2243 染色(樹鏈剖分好題)
white one status ros 感覺 tex inf div syn 2243: [SDOI2011]染色 Time Limit: 20 Sec Memory Limit: 512 MB Submit: 7971 Solved: 2990 [Su
HDU oj 1055(Color a Tree 貪心好題)
Color a Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1872&
CodeForces 482C Game with Strings (概率+狀壓DP 好題)* 第四百篇博文紀念
#include<bits/stdc++.h> using namespace std; #define debug puts("YES"); #define rep(x,y,z) for(int (x)=(y);(x)<(z);(x)++) #def
Supermarket(並查集,好題)
Supermarket Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 11154 Accepted: 4910 Description A supermarket has a set Prod of products on
HihoCoder 1640 : 命名的煩惱(預處理)(好題)
最短 很多 一位 提高 表示 合並 新的 最優 位數 描述 程序員常常需要給變量命名、給函數命名、給項目命名、給團隊命名…… 好的名字可以大大提高程序員的主觀能動性,所以很多程序員在起名時都會陷入糾結和煩惱。 小Hi希望給新的項目起個拉風
Codeforces Round #435 (Div. 2) E. Mahmoud and Ehab and the function(預處理+二分)
class [1] can 行處理 long 個數 分享 amp abs 題目鏈接:點我點我 題意:公式:,給出n個數,從a[1]到a[n],和m個數(b數組),然後從b數組裏挑出連續的n個數(也就m-n+1中選擇),按公式計算,使得f最小, 還有q次對a數組的操作(某
Codeforces 946D Timetable(預處理+分組背包)
鏈接 pre AI 分組背包 std inf time pro can 題目鏈接:http://codeforces.com/problemset/problem/946/D 題目大意:有n個字符串,代表n天的課表,1表示這個時間要上課,0表示不要上課,一天在學校時間為第
【CodeForces - 632B】Alice, Bob, Two Teams (預處理,思維,字首和字尾和)
題幹: Alice and Bob are playing a game. The game involves splitting up game pieces into two teams. There are n pieces, and the i-th p
mongodb中文文字資料(新聞評論)預處理程式碼(python+java)
中文文字資料預處理 Mongodb資料匯出到txt文件 將檔案按行寫入陣列 文字批量修改(加字尾等) Mongodb資料匯出到txt文件 #python # coding=utf-8 from pymongo
【CodeForces - 271B 】Prime Matrix (素數,預處理打表,思維)
題幹: You've got an n × m matrix. The matrix consists of integers. In one move, you can apply a single transformation to the matrix: choos
C語言(預處理)
- 預處理 在程式編譯之前進行的處理,所有的編譯預處理命令以#開頭。分為巨集定義、檔案包含、條件編譯。 1. 巨集 巨集定義的作用是某段程式碼的別名,以#define開頭,結尾不用分號。 eg:#define PI 3.14//巨集名一般用大寫字母 在編譯預處理時,只是
【洛谷】 P1019 單詞接龍-(預處理+dfs)
題目描述 單詞接龍是一個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定一個開頭的字母,要求出以這個字母開頭的最長的“龍”(每個單詞都最多在“龍”中出現兩次),在兩個單詞相連時,其重合部分合為一部分,例如 beastbeast和astonishastonish,如果接成
What a Ridiculous Election(預處理bfs)
In country Light Tower, a presidential election is going on. There are two candidates, Mr. X1 and Mr. X2, and both of them are not like go
常用的影象資料預處理技術(based on TensorFlow)
資料作為深度學習的基礎,其對模型效能的重要重要性不言而喻。在本文,我們將梳理下常用的影象資料處理技術,至於具體的程式設計工具,選擇 Python + TensorFlow: Tip: 如果你使用 tf.data 來組織你的影象資料輸入管道,那麼恭喜您,直接在
C++ Opencv——影象處理(預處理+矩形物體分割)
影象預處理分割目標 // ROI提取 Mat Image_ROI(Mat frame) { Mat gray, bw, img, bkup; /*目標提取——預處理——Mat ROI*/ /*預處理很重要——直接找到目標*/ //預處理很重要——直接找到目標 // 灰度化
codeforces 946 D Timetable(預處理+分組揹包)
思路:先預處理出每天去掉x節課能少去學校的時間,然後就變成了n組每組挑一個,容量大小為K的分組揹包了。#include <cstdio> #include <cstdlib> #
特徵工程預處理大全(更新)
快速檢視整體資訊1. .info()是DataFrame才可用的API,快捷檢視多種資訊:總行數和列數、每列元素型別和non-NaN的個數,總記憶體。DataFrame.info(verbose=None, memory_usage=True, null_counts=True)verbose:True or
【codeforces 946D】Timetable(預處理+分組揹包)
=-=以前揹包沒學好。。。居然是第一次做分組揹包的題,咳咳 不過這題比較厲害的是它的預處理。。。心態崩了,為什麼有的時候一個回車會往下走這麼多行想刪回車,一下子就刪了一段,還不知道在哪撤回
codeforces 946d D. Timetable(預處理+ 分組揹包)
D. Timetabletime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputIvan is a student at Berland State Univer