小图灵70 luogu60 help
查看原帖
小图灵70 luogu60 help
228625
steveyang137楼主2023/10/22 11:33

如题


#include<iostream>
using namespace std;

struct num {
	int a,b,c,d,e;
};
int n;
int a[5];
num ans[100];
int k=0;
bool yes[100];

// int trans(int b,int c,int d,int e,int f) return b*10000+c*1000+d*100+e*10+f;
void init();
void solve();

int main() {
	freopen("lock.in","r",stdin);
	freopen("lock.out","w",stdout);
	
	cin>>n;
	cin>>a[0]>>a[1]>>a[2]>>a[3]>>a[4];
	init();
//	for(int i=0;i<k;i++) {
//		cout<<ans[i].a<<ans[i].b<<ans[i].c<<ans[i].d<<ans[i].e<<endl;
//	}
	
	for(int i=1;i<n;i++) {
		cin>>a[0]>>a[1]>>a[2]>>a[3]>>a[4];
		solve();
	}
	int cnt=0;
	for(int i=0;i<k;i++) if(yes[i]) cnt++;
	cout<<cnt<<endl;
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}

void solve() {
	bool flag;
	for(int i=0;i<k;i++) {
		if(!yes[i]) continue;
		if(ans[i].a==a[0]&&ans[i].b==a[1]&&ans[i].c==a[2]&&ans[i].d==a[3]&&ans[i].e==a[4]) {
			yes[i]=false;
			continue;
		}
		flag=true;
		if(ans[i].b==a[1]&&ans[i].c==a[2]&&ans[i].d==a[3]&&ans[i].e==a[4]) flag=false;  // 0
		if(ans[i].a==a[0]&&ans[i].c==a[2]&&ans[i].d==a[3]&&ans[i].e==a[4]) flag=false;  // 1
		if(ans[i].a==a[0]&&ans[i].b==a[1]&&ans[i].d==a[3]&&ans[i].e==a[4]) flag=false;  // 2
		if(ans[i].a==a[0]&&ans[i].b==a[1]&&ans[i].c==a[2]&&ans[i].e==a[4]) flag=false;  // 3
		if(ans[i].a==a[0]&&ans[i].b==a[1]&&ans[i].c==a[2]&&ans[i].d==a[3]) flag=false;  // 4
		
		if(ans[i].c==a[2]&&ans[i].d==a[3]&&ans[i].e==a[4] && ans[i].a-a[0]==ans[i].b-a[1]) flag=false;  // 0 1
		if(ans[i].a==a[0]&&ans[i].d==a[3]&&ans[i].e==a[4] && ans[i].b-a[1]==ans[i].c-a[2]) flag=false;  // 1 2
		if(ans[i].a==a[0]&&ans[i].b==a[1]&&ans[i].e==a[4] && ans[i].c-a[2]==ans[i].d-a[3]) flag=false;  // 2 3
		if(ans[i].a==a[0]&&ans[i].b==a[1]&&ans[i].c==a[2] && ans[i].d-a[3]==ans[i].e-a[4]) flag=false;  // 3 4
		if(flag) yes[i]=false;
	}
	return;
}

void init() {
	for(int i=1;i<=9;i++) {
		yes[k]=true;
		ans[k].a=(a[0]+i)%10;
		ans[k].b=a[1];
		ans[k].c=a[2];
		ans[k].d=a[3];
		ans[k++].e=a[4];
		
		yes[k]=true;
		ans[k].a=a[0];
		ans[k].b=(a[1]+i)%10;
		ans[k].c=a[2];
		ans[k].d=a[3];
		ans[k++].e=a[4];
		
		yes[k]=true;
		ans[k].a=a[0];
		ans[k].b=a[1];
		ans[k].c=(a[2]+i)%10;
		ans[k].d=a[3];
		ans[k++].e=a[4];
		
		yes[k]=true;
		ans[k].a=a[0];
		ans[k].b=a[1];
		ans[k].c=a[2];
		ans[k].d=(a[3]+i)%10;
		ans[k++].e=a[4];
		
		yes[k]=true;
		ans[k].a=a[0];
		ans[k].b=a[1];
		ans[k].c=a[2];
		ans[k].d=a[3];
		ans[k++].e=(a[4]+i)%10;
		
		
		yes[k]=true;
		ans[k].a=(a[0]+i)%10;
		ans[k].b=(a[1]+i)%10;
		ans[k].c=a[2];
		ans[k].d=a[3];
		ans[k++].e=a[4];
		
		yes[k]=true;
		ans[k].a=a[0];
		ans[k].b=(a[1]+i)%10;
		ans[k].c=(a[2]+i)%10;
		ans[k].d=a[3];
		ans[k++].e=a[4];
		
		yes[k]=true;
		ans[k].a=a[0];
		ans[k].b=a[1];
		ans[k].c=(a[2]+i)%10;
		ans[k].d=(a[3]+i)%10;
		ans[k++].e=a[4];
		
		yes[k]=true;
		ans[k].a=a[0];
		ans[k].b=a[1];
		ans[k].c=a[2];
		ans[k].d=(a[3]+i)%10;
		ans[k++].e=(a[4]+i)%10;
	}
	return;
}


第一题没AC是不是即使在TJ也没法玩了(

2023/10/22 11:33
加载中...