退役er求调T1
  • 板块学术版
  • 楼主rex_qwq
  • 当前回复12
  • 已保存回复12
  • 发布时间2023/10/21 21:44
  • 上次更新2023/11/2 12:07:00
查看原帖
退役er求调T1
91737
rex_qwq楼主2023/10/21 21:44

S组

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
const int N=100;
int a[N][100];
int ans=0;
vector<int>ee;
vector<int>e[89];
int tot=0;
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=5;j++)
			cin>>a[i][j];
	for(int j=1;j<=5;j++)
		ee.push_back(a[1][j]);
	for(int i=1;i<=5;i++){
		for(int j=1;j<=9;j++){
			ee[i-1]++,ee[i-1]%=10;
			e[++tot]=ee;
		}
		ee[i-1]=a[1][i];
	}
	for(int i=1;i<=4;i++){
		for(int j=1;j<=9;j++){
			ee[i-1]++,ee[i-1]%=10;
			ee[i]++,ee[i]%=10;
			e[++tot]=ee;
		}
		ee[i-1]=a[1][i],ee[i]=a[1][i+1];
	}
	for(int i=2;i<=n;i++){
		for(int j=1;j<=tot;j++){
			int cnt=0,pos=0,nxt=0;
			for(int k=1;k<=5;k++){
				if(e[j][k-1]!=a[i][k]){
					cnt++;
					if(cnt==1)
						pos=k;
					else
						nxt=k;
				}
			}
			if(cnt==1||(cnt==2&&nxt==pos+1&&e[j][pos-1]-e[j][pos]==a[i][pos]-a[i][pos+1]))
				continue;
			swap(e[j],e[tot]);tot--;j--;
		}
	}
	cout<<tot;
	return 0;
}

60

2023/10/21 21:44
加载中...