当前位置:网站首页>Flipping Game(枚举)
Flipping Game(枚举)
2022-07-07 16:53:00 【全栈程序员站长】
大家好,又见面了,我是全栈君。
Flipping Game
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Iahub got bored, so he invented a game to be played on paper.
He writes n integers a1, a2, …, an. Each of those integers can be either 0 or 1. He’s allowed to do exactly one move: he chooses two indices i and j (1 ≤ i ≤ j ≤ n) and flips all values ak for which their positions are in range [i, j] (that is i ≤ k ≤ j). Flip the value of x means to apply operation x = 1 – x.
The goal of the game is that after exactly one move to obtain the maximum number of ones. Write a program to solve the little game of Iahub.
Input
The first line of the input contains an integer n (1 ≤ n ≤ 100). In the second line of the input there are n integers: a1, a2, …, an. It is guaranteed that each of those n values is either 0 or 1.
Output
Print an integer — the maximal number of 1s that can be obtained after exactly one move.
Sample test(s)
Input
5
1 0 0 1 0Output
4Input
4
1 0 0 1Output
4Note
In the first case, flip the segment from 2 to 5 (i = 2, j = 5). That flip changes the sequence, it becomes: [1 1 1 0 1]. So, it contains four ones. There is no way to make the whole sequence equal to [1 1 1 1 1].
In the second case, flipping only the second and the third element (i = 2, j = 3) will turn all numbers into 1.
题意:有n张牌,仅仅有0和1,问在[i,j]范围内翻转一次使1的数量最多。
输出1最多的牌的数量
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int n,i,j,k,t;
int a[110];
int sum[2];
int cnt=0;
while(~scanf("%d",&n))
{
cnt=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]==1)
cnt++;//记录開始时1的牌数
}
t=cnt;
if(cnt==n)
{
printf("%d\n",n-1);//假设全是1的话 你得翻一张牌 所以剩下的最大数为总数-1
}
else
{
for(i=0; i<n; i++)
for(j=i; j<n; j++)
{
memset(sum,0,sizeof(sum));
for(k=i; k<=j; k++)
sum[a[k]]++;
if(sum[0]>sum[1])
{
if(cnt<t+sum[0]-sum[1])
{
cnt=t+sum[0]-sum[1];
}
}
}
printf("%d\n",cnt);
}
}
return 0;
}发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116604.html原文链接:https://javaforall.cn
边栏推荐
猜你喜欢

Realize payment function in applet

Classification of regression tests

Industry case | digital operation base helps the transformation of life insurance industry

小程序中实现付款功能
![[software test] from the direct employment of the boss of the enterprise version, looking at the resume, there is a reason why you are not covered](/img/73/cbbe82fd6bdfa8177f5bfcf683010d.jpg)
[software test] from the direct employment of the boss of the enterprise version, looking at the resume, there is a reason why you are not covered

Disk storage chain B-tree and b+ tree

idea彻底卸载安装及配置笔记

抢占周杰伦

3. About cookies

I feel cheated. Wechat tests the function of "size number" internally, and two wechat can be registered with the same mobile number
随机推荐
Kirk borne's selection of learning resources this week [click the title to download directly]
socket編程之常用api介紹與socket、select、poll、epoll高並發服務器模型代碼實現
Continuous test (CT) practical experience sharing
线程池的拒绝策略
嵌入式面试题(算法部分)
6. About JWT
[demo] circular queue and conditional lock realize the communication between goroutines
持续测试(CT)实战经验分享
idea彻底卸载安装及配置笔记
【demo】循环队列及条件锁实现goroutine间的通信
PIP related commands
回归问题的评价指标和重要知识点总结
链式二叉树的基本操作(C语言实现)
Tsinghua, Cambridge and UIC jointly launched the first Chinese fact verification data set: evidence-based, covering many fields such as medical society
DeSci:去中心化科学是Web3.0的新趋势?
AntiSamy:防 XSS 攻击的一种解决方案使用教程
Antisamy: a solution against XSS attack tutorial
PTA 1102 教超冠军卷
Hutool - lightweight DB operation solution
Reinforcement learning - learning notes 8 | Q-learning