zoukankan      html  css  js  c++  java
  • USACO section1.1 Broken Necklace

    这道题理解了题目的含义就很简单了;

    如果题目改成每次只统计一端,遇到不同时开始统计另一端,并且只有相邻两次统计的(可以转化)为同一种颜色时,才能累加,难度会很高,可能要DP了;

    /*
    PROG: beads
    LANG: C++
    */
    # include <cstdio>
    # include <cstring>
    
    # define N 350 + 10
    
    int n;
    char s[N];
    
    int count(char *s, int k)
    {
        int ret = 0;
    
        int i = k;
        int j = (k-1+n) % n;
    
        char cur;
        while(ret < n && s[i] == 'w') {++ret; i = (i+1)%n;}
        cur = s[i];
        while (ret < n && (s[i]==cur || s[i]=='w')) {++ret; i = (i+1)%n;}
        while (ret < n && s[j] == 'w') {++ret; j = (j+n-1)%n;}
        cur = s[j];
        while (ret < n && (s[j]==cur || s[j]=='w')) {++ret; j = (j-1+n)%n;}
    
        return ret;
    }
    
    int main()
    {
        freopen("beads.in", "r", stdin);
        freopen("beads.out", "w", stdout);
    
        int max = 0;
        scanf("%d%s", &n, s);
        for (int i = 0; s[i]; ++i)
        {
            int cur = count(s, i);
            if (cur > max) max = cur;
        }
        printf("%d\n", max);
    
        fclose(stdin);
        fclose(stdout);
    
        return 0;
    }

    /**/

  • 相关阅读:
    【GoLand】分享项目到Github平台
    【Git】实用教程
    【Go】Mac系统下安装GoLand 及 环境配置
    CF 901C Bipartite Segments
    CF 811E Vladik and Entertaining Flags
    Luogu P6300 悔改
    Luogu P3943 星空
    CSP2020 | T4
    NOIP2017 | D2T3
    Luogu P6852 Mex
  • 原文地址:https://www.cnblogs.com/JMDWQ/p/2594501.html
Copyright © 2011-2022 走看看