社区讨论

MnZn求调S T1

题目总版参与者 3已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
8 条
当前快照
1 份
快照标识符
@lo246q9o
此快照首次捕获于
2023/10/23 07:43
2 年前
此快照最后确认于
2023/10/23 08:23
2 年前
查看原帖
Rt. xtl&云斗ac 洛谷wa on #4
CPP
#include<bits/stdc++.h>
#define N 20
using namespace std;
void read(int& x){
	int f=1;char c=getchar();x=0;
	while(!(c>='0'&&c<='9')){
		if(c=='-')f=-f;
		c=getchar();
	}
	while((c>='0'&&c<='9')){
		x=x*10+c-'0';
		c=getchar();
	}x*=f;
}
int n,a[N],zt[100010],tmp,ans;
void malrc1(int z,int T){
	int tmpz=(z/T)*T+z%(T/10);
	for(int i=0;i<=9;i++,tmpz+=T/10)
		if(tmpz!=z)
			zt[tmpz]++;
}
void malrc2(int z,int T1,int T2){
	if(z%T2/(T2/10)==9)
		z-=T2;
	if(z%T1/(T1/10)==9)
		z-=T1;
	z+=T1/10,z+=T2/10;int dottle=0;//uoj 缺头 
	for(int i=1;i<=9;i++,z+=T1/10,z+=T2/10){
		zt[z]++;
		if(z%T2/(T2/10)==9)
			dottle+=T2;
		if(z%T1/(T1/10)==9)
			dottle+=T1;
		z-=dottle;dottle=0;
	}
}
void malfnd1(int z){
	malrc1(z,10);
	malrc1(z,100);
	malrc1(z,1000);
	malrc1(z,10000);
	malrc1(z,100000);
}
void malfnd2(int z){
	for(int i=10;i<100000;i*=10)
		malrc2(z,i,i*10);
}
int main(){
	read(n);
	for(int i=1;i<=n;i++){
		read(tmp);a[i]=a[i]*10+tmp;
		read(tmp);a[i]=a[i]*10+tmp;
		read(tmp);a[i]=a[i]*10+tmp;
		read(tmp);a[i]=a[i]*10+tmp;
		read(tmp);a[i]=a[i]*10+tmp;
	}
	for(int i=1;i<=n;i++){
		malfnd1(a[i]);
		malfnd2(a[i]);
	}
	for(int i=1;i<=n;i++)
		if(zt[a[i]]==n)
			zt[a[i]]=0;
	for(int i=0;i<100000;i++){
		ans+=(zt[i]==n);
//		if(zt[i]==n)cerr<<i<<' ';
	}
	printf("%d\n",ans);
	return 0;
}

回复

8 条回复,欢迎继续交流。

正在加载回复...