关于月赛Div2 第二题
  • 板块学术版
  • 楼主张语诚ZYC
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/2/9 18:35
  • 上次更新2023/11/5 03:29:07
查看原帖
关于月赛Div2 第二题
314280
张语诚ZYC楼主2021/2/9 18:35

75pts,蒟蒻求助,求大佬排错。

#include<bits/stdc++.h>
using namespace std;
int n;
char col[2][100010];
inline int read_int(){
	int s=0,w=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-'){
			w=-1;
		} 
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		s=s*10+ch-'0';
		ch=getchar();
	}
	return s*w;
}
bool judge(int r,int nt,int mt,int wt,int h1,int h2,int wt2){
	if(r==1){
	}else if(r==2){
		if(nt==1 && mt==1 && wt==2 && wt2==1){
			return false;
		}
		if(nt==2 && wt==2 && wt2==2){
			return false;
		}
	}else if(r==3){
		if(mt==2){
			if(nt==1 && wt==1){
				return false;
			}
		}
		if(nt==2){
			return false;
		}
	}else if(r==4){
		return false;
	}
	return true;
}
int core(){
	int sum=0;
	for(int i=0;i<n;i++){
		if(col[0][i]=='1'){
			sum++;
		}
		if(col[1][i]=='1'){
			sum++;
		}
	}
	for(int i=0;i<n;i++){
		if(col[0][i]=='1' && col[0][i+1]=='1' && col[0][i+2]=='1' && col[1][i+1]=='1'){
			return 1;
		}
		if(col[1][i]=='1' && col[1][i+1]=='1' && col[1][i+2]=='1' && col[0][i+1]=='1'){
			return 1;
		}
		if(col[0][i]=='1' && col[0][i+1]=='1' && col[1][i]=='1' && col[1][i+1]=='1' && col[0][i+3]=='1' && col[0][i+4]=='1' && col[1][i+3]=='1' && col[1][i+4]=='1'){
			return 1;
		}
	}
	if(sum>n){
		return 1;
	}
	int r1=0,n1=0,m1=0,w1=0,h11=0,h12=0,w21=0;
	if(col[0][0]=='1'){
		r1++;
		n1++;
		h11++;
	}
	if(col[0][1]=='1'){
		r1++;
		m1++;
		h11++;
	}
	if(col[1][0]=='1'){
		r1++;
		n1++;
		h12++;
	}
	if(col[1][1]=='1'){
		r1++;
		m1++;
		h12++;
	}
	if(col[0][2]=='1'){
		w1++;
		h11++;
	}
	if(col[1][2]=='1'){
		w1++;
		h12++;
	}
	if(col[0][3]=='1'){
		w21++;
		h11++;
	}
	if(col[1][3]=='1'){
		w21++;
		h12++;
	}
	if(judge(r1,n1,m1,w1,h11,h12,w21)==false){
		return 1;
	}
	int r2=0,n2=0,m2=0,w2=0,h21=0,h22=0,w22;
	if(col[0][n-1]=='1'){
		r2++;
		n2++;
		h21++;
	}
	if(col[0][n-2]=='1'){
		r2++;
		m2++;
		h21++;
	}
	if(col[1][n-1]=='1'){
		r2++;
		n2++;
		h22++;
	}
	if(col[1][n-2]=='1'){
		r2++;
		m2++;
		h22++;
	}
	if(col[0][n-3]=='1'){
		w2++;
		h21++;
	}
	if(col[1][n-3]=='1'){
		w2++;
		h22++;
	}
	if(col[0][n-4]=='1'){
		w22++;
		h21++;
	}
	if(col[1][n-4]=='1'){
		w22++;
		h22++;
	}
	if(judge(r2,n2,m2,w2,h21,h22,w22)==false){
		return 1;
	}
	return 0;
}
int main(){
	int T=read_int();
	for(int i=0;i<T;i++){
		n=read_int();
		for(int j=0;j<2;j++){
			scanf("%s",col[j]);
		}
		if(core()==0){
			puts("RP");
		}else{
			puts("++");
		}
	}
	return 0;
} 
2021/2/9 18:35
加载中...