CSP-S T1民间数据挂一个点
  • 板块学术版
  • 楼主_Z_Y_X_
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/10/21 21:38
  • 上次更新2023/11/2 12:07:19
查看原帖
CSP-S T1民间数据挂一个点
274935
_Z_Y_X_楼主2023/10/21 21:38

rt求问

// 100pts please

#include <bits/stdc++.h>
using namespace std;
int n,s[1000005],ans;
struct node{
	int a,b,c,d,e;
}now[10];
void solve(int a,int b,int c,int d,int e){
	for(int i=0;i<10;i++){
		if(i!=a){
			int qwq=i*10000+b*1000+c*100+d*10+e;
			s[qwq]++;
		}
	}
	for(int i=0;i<10;i++){
		if(i!=b){
			int qwq=a*10000+i*1000+c*100+d*10+e;
			s[qwq]++;
		}
	}
	for(int i=0;i<10;i++){
		if(i!=c){
			int qwq=a*10000+b*1000+i*100+d*10+e;
			s[qwq]++;
		}
	}
	for(int i=0;i<10;i++){
		if(i!=d){
			int qwq=a*10000+b*1000+c*100+i*10+e;
			s[qwq]++;
		}
	}
	for(int i=0;i<10;i++){
		if(i!=e){
			int qwq=a*10000+b*1000+c*100+d*10+i;
			s[qwq]++;
		}
	}
	for(int i=0;i<10;i++){
		for(int j=0;j<10;j++){
			if((i-j+10)%10==(a-b+10)%10){
				int qwq=i*10000+j*1000+c*100+d*10+e;
				s[qwq]++;
			}
		}
	}
	for(int i=0;i<10;i++){
		for(int j=0;j<10;j++){
			if((i-j+10)%10==(b-c+10)%10){
				int qwq=a*10000+i*1000+j*100+d*10+e;
				s[qwq]++;
			}
		}
	}
	for(int i=0;i<10;i++){
		for(int j=0;j<10;j++){
			if((i-j+10)%10==(c-d+10)%10){
				int qwq=a*10000+b*1000+i*100+j*10+e;
				s[qwq]++;
			}
		}
	}
	for(int i=0;i<10;i++){
		for(int j=0;j<10;j++){
			if((i-j+10)%10==(d-e+10)%10){
				int qwq=a*10000+b*1000+c*100+i*10+j;
				s[qwq]++;
			}
		}
	}
	return ;
}
int main(){
	//freopen("lock.in","r",stdin);
	//freopen("lock.out","w",stdout);
	cin >>n;
	for(int i=1;i<=n;i++){
		cin >>now[i].a>>now[i].b>>now[i].c>>now[i].d>>now[i].e;
		solve(now[i].a,now[i].b,now[i].c,now[i].d,now[i].e);
	}
	for(int i=0;i<=1000000;i++){
		if(s[i]==n) ans++;
	}
	cout <<ans;
	return 0;
}
2023/10/21 21:38
加载中...