題意:兩人各有一只由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;
}