Croc Champ 2013 - Round 2 (Div. 2 Edition)--C 字符串处理
题意:两人各有一只由0,1组成的字符串,两人轮着从各自的串中先出一个数,取完后,看谁取到的1最多.
[cpp]
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cctype>
#include<iomanip>
using namespace std;
const int maxn=100000;
int main(){
int n; cin>>n;
string s,f; cin>>s>>f;
int x=0,y=0,z=0;
for(int i=0;i<2*n;++i){
if(s[i]=='1'&&f[i]=='0')x++;///上面1下面0
if(s[i]=='0'&&f[i]=='1')y++;///上面0下面1
if(s[i]=='1'&&f[i]=='1')z++;///上下都是0
}
if(z%2){///1对1的组数为奇数时
if(x+2==y||x+1==y)puts("Draw");///例11100000 和 111000
/// 10011110 100111 这俩种情况
else if(x+2<y)puts("Second");
else if(x+2>y)puts("First");
}
else {
if(x+1==y||x==y)puts("Draw");///例:110000 1100
/// 001110 和 0011 两种情况
else if(x+1>y)puts("First");
else if(x+1<y)puts("Second");
}
return 0;
}
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cctype>
#include<iomanip>
using namespace std;
const int maxn=100000;
int main(){
int n; cin>>n;
string s,f; cin>>s>>f;
int x=0,y=0,z=0;
for(int i=0;i<2*n;++i){
if(s[i]=='1'&&f[i]=='0')x++;///上面1下面0
if(s[i]=='0'&&f[i]=='1')y++;///上面0下面1
if(s[i]=='1'&&f[i]=='1')z++;///上下都是0
}
if(z%2){///1对1的组数为奇数时
if(x+2==y||x+1==y)puts("Draw");///例11100000 和 111000
/// 10011110 100111 这俩种情况
else if(x+2<y)puts("Second");
else if(x+2>y)puts("First");
}
else {
if(x+1==y||x==y)puts("Draw");///例:110000 1100
/// 001110 和 0011 两种情况
else if(x+1>y)puts("First");
else if(x+1<y)puts("Second");
}
return 0;
}
补充:软件开发 , C++ ,