Codeforces 1107E. Vasya and Binary String(DP) | 张慕晖的博客 | LUX ET VERITAS



Codeforces 1107E. Vasya and Binary String(DP) | 张慕晖的博客 | LUX ET VERITAS

给定一个长度为n的只包含0和1的字符串,将该串中连续i个相同字符消去将得到a[i]的收益,问消去整个字符串能得到的最大收益是多少?

分析

在不会做的三道题上鸽了好久,最后还是觉得DP最好写……


这个题解[soln1]特别简明扼要,大概抓住了问题的本质,不过我可能还没有完全理解它:

  • 每一个状态都可以用[start, end, prefix]表示,其中startend是字符串中的起始和结束index(不妨假设两端都是闭区间)(不是也行),prefix是字符串前面附加的和s[start]相等的字符的数量(包括s[start])(不包括大概也行)
  • 每一个状态都有两种递推方法:
    • 第一种是直接消去字符串前面附加的字符:dp[start, end, prefix] = a[prefix] + dp[start + 1, end, 1]
    • 第二种是在字符串其他位置找到一个和s[start]相同的字符,然后消去中间的字符,获得一个更大的前缀:dp[start, end, prefix] = max(dp[start+1, i-1, 1] + dp[i, end, prefix+1]) (start < i <= end, s[i] == s[start])


Read full article from Codeforces 1107E. Vasya and Binary String(DP) | 张慕晖的博客 | LUX ET VERITAS


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts