英雄会 高校俱乐部 题解(均分01)
2014-02-23 22:29
260 查看
题目:
给定一个字符串,长度不超过100,其中只包含字符0和1,并且字符0和1出现得次数都是偶数。你可以把字符串任意切分,把切分后得字符串任意分给两个人,让两个人得到的0的总个数相等,得到的1的总个数也相等。 例如,输入串是010111,我们可以把串切位01, 011,和1, 把第1段和第3段放在一起分给一个人,第二段分给另外一个人,这样每个人都得到了1个0和两个1。我们要做的是让切分的次数尽可能少。 输入是这样一个字符串,输出是最少的切分次数,保证输入合法。题目一定有解,因为我们最差情况时,把字符串切分(n - 1)次形成n个长度为1的串。
分析:
[b] [/b]一开始看这题目觉得很困难,但是这题目就是一道水题。
思路就是:看中间一刀能不能平分,不然的话,可以考虑成一个圆环(头尾可以接起来嘛!),总是能找到一条半径平分。(这时就是2刀搞掂。)
代码:
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
class Test {
public:
static int howmany (string s)
{
int i,n1=0,n0=0,len=s.length();
for(i=len-1;i>len/2;i--)
if(s[i]-'0'==1){
n1++;
}else{
n0++;
}
for(i=0;i<len/2;i++){
if(s[i]-'0'==1){
n1--;
}else{
n0--;
}
}
if(n1==0&&n0==0){
return 1;
}
return 2;
}
};
//start 提示:自动阅卷起始唯一标识,请勿删除或增加。
int main()
{
cout<<Test::howmany("100010")<<endl;
}
//end //提示:自动阅卷结束唯一标识,请勿删除或增加。
给定一个字符串,长度不超过100,其中只包含字符0和1,并且字符0和1出现得次数都是偶数。你可以把字符串任意切分,把切分后得字符串任意分给两个人,让两个人得到的0的总个数相等,得到的1的总个数也相等。 例如,输入串是010111,我们可以把串切位01, 011,和1, 把第1段和第3段放在一起分给一个人,第二段分给另外一个人,这样每个人都得到了1个0和两个1。我们要做的是让切分的次数尽可能少。 输入是这样一个字符串,输出是最少的切分次数,保证输入合法。题目一定有解,因为我们最差情况时,把字符串切分(n - 1)次形成n个长度为1的串。
分析:
[b] [/b]一开始看这题目觉得很困难,但是这题目就是一道水题。
思路就是:看中间一刀能不能平分,不然的话,可以考虑成一个圆环(头尾可以接起来嘛!),总是能找到一条半径平分。(这时就是2刀搞掂。)
代码:
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
class Test {
public:
static int howmany (string s)
{
int i,n1=0,n0=0,len=s.length();
for(i=len-1;i>len/2;i--)
if(s[i]-'0'==1){
n1++;
}else{
n0++;
}
for(i=0;i<len/2;i++){
if(s[i]-'0'==1){
n1--;
}else{
n0--;
}
}
if(n1==0&&n0==0){
return 1;
}
return 2;
}
};
//start 提示:自动阅卷起始唯一标识,请勿删除或增加。
int main()
{
cout<<Test::howmany("100010")<<endl;
}
//end //提示:自动阅卷结束唯一标识,请勿删除或增加。
相关文章推荐
- POJ1979 Red and Black 题解
- HDU 1203 I NEED A OFFER! 题解
- UVA 401 Palindromes 题解
- UVA 10010 - Where's Waldorf? 题解
- 杭电试题分类题解
- hdoj1017--A Mathematical Curiosity
- 一道高校俱乐部的题,当时没有写好,从新写了下
- UESTC 第五届ACM趣味程序设计竞赛第一场(热身赛,非原创题) 解题报告
- UESTC 第五届ACM趣味程序设计竞赛第四场(正式赛) 解题报告
- 2013年底csdn英雄会线下编程决赛纪实
- 杨氏矩阵查找
- LeetCode题解汇总(C++ Java Python,含题目翻译)
- 微软必应·英雄会第三届在线编程大赛:几个bing?
- 一中 2.20 哈希专题 题解
- vijos1010题解
- vijos1022题解
- vijos1034题解
- vijos1037题解
- vijos1051题解
- vijos1057题解