A. Flipping Game
2013-07-06 23:12
113 查看
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
output
input
output
Note
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.
解题说明:这道题判断如何选择区间进行01变换让数列中的1个数最多,可以用暴力做法来做,每选择一个区间求出一个值,最后找到一个最大值。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include<set>
#include <algorithm>
using namespace std;
int main()
{
int n,a[100],i,j,k,c=0,max=0,b[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
for(k=0;k<n;k++)
{
b[k]=a[k];
}
for(k=i;k<=j;k++)
{
b[k]=1-b[k];
}
c=0;
for(k=0;k<n;k++)
{
if(b[k]==1)
{
c++;
}
}
if(c>max)
{
max=c;
}
}
}
printf("%d",max);
return 0;
}
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 0
output
4
input
41 0 0 1
output
4
Note
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.
解题说明:这道题判断如何选择区间进行01变换让数列中的1个数最多,可以用暴力做法来做,每选择一个区间求出一个值,最后找到一个最大值。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include<set>
#include <algorithm>
using namespace std;
int main()
{
int n,a[100],i,j,k,c=0,max=0,b[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
for(k=0;k<n;k++)
{
b[k]=a[k];
}
for(k=i;k<=j;k++)
{
b[k]=1-b[k];
}
c=0;
for(k=0;k<n;k++)
{
if(b[k]==1)
{
c++;
}
}
if(c>max)
{
max=c;
}
}
}
printf("%d",max);
return 0;
}
相关文章推荐
- Codeforces Round #191 (Div. 2)---A. Flipping Game
- Codeforces - 327A - Flipping Game
- Codeforces 327A Flipping Game(区间DP,暴力枚举)
- Codeforces 327A-Flipping Game(暴力枚举)
- Code Forces 327A - Flipping Game 贪心 暴力
- codeforces A. Flipping Game 解题报告
- codeforces水题100道 第二十题 Codeforces Round #191 (Div. 2) A. Flipping Game (brute force)
- CF:A. Flipping Game
- Codeforces Flipping game 动态规划基础
- [CodeForces327A]Flipping Game[dp][暴力]
- CF 237A Flipping Game 简单的统计就过了。。
- CF 327 A Flipping Game
- (CodeForces - 327A)Flipping Game
- Codeforces Round #191 (Div. 2) A. Flipping Game(简单)
- codeforces Flipping Game 题解
- Codeforces #191(Div.2)-A. Flipping Game
- Codeforces 327A-Flipping Game(暴力枚举)
- CodeForces-327A Flipping Game
- Codeforces Round #191 (Div. 2)-A. Flipping Game
- Codeforces Round #191 (Div. 2)---A. Flipping Game