codeforces 327 A Ciel and Dancing

简介: 给你一串只有0和1的数字,然后对某一区间的数翻转1次(0变1 1变0),只翻转一次而且不能不翻转,然后让你计算最多可能出现多少个1。 这里要注意很多细节 比如全为1,要求必须翻转,这时候我们只要翻转一个1就可以了,对于其他情况,我们只要计算区间里面如果0多于1,将其翻转后计算1的总数,然后取最大值。

给你一串只有0和1的数字,然后对某一区间的数翻转1次(0变1 1变0),只翻转一次而且不能不翻转,然后让你计算最多可能出现多少个1。


   这里要注意很多细节 比如全为1,要求必须翻转,这时候我们只要翻转一个1就可以了,对于其他情况,我们只要计算区间里面如果0多于1,将其翻转后计算1的总数,然后取最大值。

//cf 191 A
//2013-07-04-22.13
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int a[105];
int cnt[105];
int main()
{
    int n;
    while (scanf("%d", &n) != EOF)
    {
        int sum = 0;
        memset(cnt, 0, sizeof(cnt));
        for (int i = 1; i <= n; i++)
        {
            scanf("%d", &a[i]);
            if (a[i] == 0)
            {
                cnt[i] = cnt[i-1] + 1;
            }
            else
            {
                cnt[i] = cnt[i-1];
                sum++;
            }
        }
        if (sum == n)
        {
            printf("%d\n", sum - 1);
            continue;
        }
        if (sum == n-1)
        {
            printf("%d\n", n);
            continue;
        }
        int ans = sum + 1;
        for (int i = 2; i <= n; i++)
        {
            for (int j = 1; j < i; j++)
            {
                if ((cnt[i] - cnt[j-1]) > ((i-j+1) - (cnt[i] - cnt[j-1])))
                    ans = max (ans, sum - ((i-j+1) - (cnt[i] - cnt[j-1])) + (cnt[i] - cnt[j-1]));
            }
        }
        printf("%d\n", ans);
    }
    return 0;
}
目录
相关文章
|
Cloud Native Serverless 数据中心
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
437 10
|
机器学习/深度学习 传感器 大数据
大数据如何化解城市交通拥堵的难题?
大数据如何化解城市交通拥堵的难题?
412 5
|
Python Windows
Python安装第三方库太慢?配置好这个速度飞起
Python安装第三方库太慢?配置好这个速度飞起
885 1
|
安全 Linux Shell
linux查看/修改各种资源限制ulimit
在Linux资源管理中,适当的使用 `ulimit`,结合系统配置文件的修改,可以更好地控制和优化系统资源,提高系统的稳定性和效率。对于系统管理员而言,精通这些知识是十分必要的,可以有效地防止因资源滥用导致的各种问题。
1732 5
|
小程序 JavaScript Java
人事|人事管理系统|基于Springboot的人事管理系统设计与实现(源码+数据库+文档)
人事|人事管理系统|基于Springboot的人事管理系统设计与实现(源码+数据库+文档)
682 1
STM32CubeMX 按键控制LED
STM32CubeMX 按键控制LED
550 0
|
机器学习/深度学习 自然语言处理 并行计算
【深度学习】Attention的原理、分类及实现
文章详细介绍了注意力机制(Attention)的原理、不同类型的分类以及如何在Keras中实现Attention。文章涵盖了Attention的基本概念、计算区域、所用信息、结构层次等方面,并提供了实现示例。
2421 0
|
弹性计算 安全 Linux
阿里云服务器搭建宝塔Linux面板流程(新手教程)
阿里云服务器搭建宝塔Linux面板流程(新手教程)阿里云服务器网以CentOS操作系统为例,安装宝塔Linux面板,先远程连接到云服务器,然后执行宝塔面板安装命令,系统会自动安装宝塔面板,安装完成后会返回面板地址、账号和密码,然后在安全组开通宝塔面板端口号
9306 2
阿里云服务器搭建宝塔Linux面板流程(新手教程)
|
自然语言处理 算法 数据可视化
基于 sklearn 的鸢尾花分类
基于 sklearn 的鸢尾花分类
447 0
基于 sklearn 的鸢尾花分类

热门文章

最新文章