洛谷P1211 [USACO1.3]牛式 Prime Cryptarithm
作者:互联网
题目描述 https://www.luogu.org/problemnew/show/P1211
暴力 数组范围开大点
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,ca,cb,c[10],a[10005],b[1005],ans;
bool fl[10],fa[10005];
bool jud(int x,int y)
{
if(x*y>=1e4) return 0;
int y1=y%10,y2=y/10;//个位 十位
if(!fa[x*y1]||!fa[x*y2]) return 0;
int z=x*y;
while(z!=0)
{
if(!fl[z%10]) return 0;
z/=10;
}
return 1;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&c[i]);
fl[c[i]]=1;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
a[++ca]=c[i]*100+c[j]*10+c[k],fa[a[ca]]=1;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
b[++cb]=c[i]*10+c[j];
for(int i=1;i<=ca;i++)
for(int j=1;j<=cb;j++)
if(jud(a[i],b[j])) ans++;
printf("%d",ans);
return 0;
}
标签:Cryptarithm,USACO1.3,洛谷,10,int,fa,P1211,return,include 来源: https://blog.csdn.net/qq_42920122/article/details/88778511