• Codeforces1307C. Cow and Message


    读题,我们知道选1个、选2个的时候是没有冲突的,大于2个的时候就有限制,那么我们观察是否可以把大于2个的情况都转换一下,可以发现,如果有一个串的长度大于2,且出现的次数大于2,那么,组成这个串里必定有一个长度为2的串,出现的次数大于2,那我们就可以把所有大于2的长度转换为长度为2的,这样题目转换成长度为1与长度为2的最大值,复杂度就是O(26*|s|),一般字符串dp都要考虑26个字母

    #include<bits/stdc++.h>
    using namespace std;
    #define lowbit(x) ((x)&(-x))
    typedef long long LL;
    
    LL dp1[26], dp2[26][26];
    
    void run_case() {
        string str;
        cin >> str;
        for(int i = 0; i < str.size(); ++i) {
            int now = str[i] - 'a';
            for(int j = 0; j < 26; ++j)
                dp2[j][now] += dp1[j];
            dp1[now]++;
        }
        LL ans = 1;
        for(int i = 0; i < 26; ++i) ans = max(ans, dp1[i]);
        for(int i = 0; i < 26; ++i)
            for(int j = 0; j < 26; ++j)
                ans = max(ans, dp2[i][j]);
        cout << ans;
    }
     
    int main() {
        ios::sync_with_stdio(false), cin.tie(0);
        //cout.setf(ios_base::showpoint);cout.precision(10);
        //int t; cin >> t;
        //while(t--)
        run_case();
        cout.flush();
        return 0;
    }
    View Code
  • 相关阅读:
    iBATIS.net配置说明篇
    深入理解asp.net里的HttpModule机制
    iBATIS.net开发的第一个web实例
    javascript对iframe的互操作浅析
    sql的临时表使用小结
    bootstrap的BaseCSS 20120328
    bootstrap2.02 notice
    我个人的ASPNET与php与nodeJS比较
    64汉诺塔问题
    jQuery使用感
  • 原文地址:https://www.cnblogs.com/GRedComeT/p/12328939.html
Copyright © 2020-2023  润新知