// 三整除那道题 #include <iostream> #include <vector> #include <string> using namespace std; bool judge(string &str) { int res = 0; for(auto c : str) res += (c - '0'); return (res % 3 == 0); } int fun(const string &str) { if(str.empty()) return 0; int len = str.size(); vector<vector<int>> dp(len + 1, vector<int>(len + 1, 0)); for(int i = 1; i <= len; ++i) { for(int j = 1; j <= len - i + 1; ++j) { for(int k = 1; k < i; ++k) { dp[j][j + i - 1] = max(dp[j][j + i - 1], dp[j][j + k - 1] + dp[j + k][j + i - 1]); } string tmp = str.substr(j - 1, i); if(judge(tmp)) dp[j][j + i - 1] = max(1, dp[j][j + i - 1]); } } return dp[1][len]; } int main() { string str; cin >> str; cout << fun(str) << endl; return 0; }
点赞 1

相关推荐

学java时间比较短不到三个月,基本的技术栈都过了一遍就是都不太深,有个小项目。是继续找实习还是沉淀准备秋招呢?找实习的话会花很多时间在八股,放弃的话又怕秋招简历太难看。有无大佬支招
今天java了吗:1.一定要找实习,实习不一定要去,但是找实习过程中的面试经验和心态经验才是最重要的 2.八股本来就是大头,甚至比项目重要 3.这个时间段也是面试比较多的阶段,可以抓住机会锻炼。面试才会发现自己的不足,感觉自己会了和能给面试官娓娓道来是两码事
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务