zoukankan      html  css  js  c++  java
  • POJ 3276 枚举+差分?

    题意:
    这里写图片描述
    这里写图片描述

    思路:
    先枚举一下k
    贪心:如果当前是B那么就翻 差分一下序列 mod2 就OK了

    //By SiriusRen
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int n,s[5555],reck,reans=0x3fffffff,vis[5555];
    char jy[30]; 
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%s",jy);
            if(jy[0]=='B')s[i]=1;
        }
        for(int i=1;i<=n;i++){
            int temp=0,t=0;
            memset(vis,0,sizeof(vis));
            for(int j=1;j<=n;j++){
                temp+=vis[j];
                if((s[j]+temp)&1){
                    if(j>n-i+1)goto st;
                    t++;temp++;
                    vis[i+j]=-1;
                }
            }
            if(t<reans)reans=t,reck=i;
            st:;
        }
        printf("%d %d
    ",reck,reans);
    }

    这里写图片描述

  • 相关阅读:
    STL常用容器☞String容器
    初识STL
    函数模板
    多态
    运算符重载
    友元
    对象的初始化和清理
    C++内存分区模型
    传值和传地址
    const的使用
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/6532263.html
Copyright © 2011-2022 走看看