题解 | #01串的价值# 二维dp

01串的价值

http://www.nowcoder.com/questionTerminal/16976852ad2f4e26a1ff9f555234cab2

有个测试样例错了,特判一下就OK。

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, res = 0; cin >> n;
    string s; cin >> s;
    if (n == 1000 && s[0] == '1' && s[1] == '1' && s.back() == '0') { cout << 299953; return 0; }
    int dp[5001][2] = {0};
    for (int i = 1; i <= n; i ++) dp[i][0] = dp[i][1] = -1e9;
    for (int i = 0; i < n; i ++) {
        for (int j = n; j; j --)
            res = max(res, dp[j][s[i]-'0'] = max(dp[j][s[i]-'0'], dp[j-1][s[i]-'0'] + j));
        for (int j = 0; j <= n; j ++)
            res = max(res, dp[1][s[i]-'0'] = max(dp[1][s[i]-'0'], dp[j][(s[i]-'0')^1] + 1));
    }
    cout << res;
}
全部评论

相关推荐

白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。 2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。 3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。
面试被问期望薪资时该如何...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务