最无语的一集
  • 板块学术版
  • 楼主Literally
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/10/23 16:49
  • 上次更新2023/11/2 11:42:55
查看原帖
最无语的一集
638141
Literally楼主2023/10/23 16:49

RT,为啥 S T1 60pts啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊我要3=了啊啊啊啊啊啊啊啊啊

#include <bits/stdc++.h>
using namespace std;
int n,temp=0,ans=0,cnt=0;
int nums[10][10];
int a[10];
bool check(int a[],int b[]){
	int sum=0;
	int same[10];
	for(int i=1;i<=5;i++){
		if(a[i]!=b[i]){
			same[sum+1]=i;
			sum++;
		}
	}
	if(sum==1) return 1;
	if(sum>=3) return 0;
	if(abs(same[2]-same[1])==1 && ( a[same[1]] - b[same[1]] ) == ( a[same[2]] - b[same[2]] ) ){
		return 1;
	}else{
		return 0;
	}
}
void dfs(int pos){
	if(pos==6){
		for(int i=1;i<=n;i++){
			if(!check(a,nums[i])){
				return;
			}
		}
		ans++;
		return;
	}
	for(int i=0;i<=9;i++){
		a[pos]=i;
		dfs(pos+1);
	}
}
int main(){
    freopen("lock.in","r",stdin);
    freopen("lock.out","w",stdout);
    ios::sync_with_stdio(0);
    cin>>n;
    for(int i=1;i<=n;i++){
		cin>>nums[i][1]>>nums[i][2]>>nums[i][3]>>nums[i][4]>>nums[i][5];
	}
	if(n==1){
		cout<<81;
		return 0;
	}
	dfs(1);
	cout<<ans;
    return 0;
}
2023/10/23 16:49
加载中...