USACO之Prime Cryptarithm

来源:互联网 发布:ps是什么软件 编辑:程序博客网 时间:2024/06/06 02:18

刚开始我对这道题有误解想着要用到所有的整数,原来不需要,只是用到它所提供的数就行了。没有动dfs。

/*    ID:m1519591    PROG: crypt1    LANG:C++*/#include<iostream>#include<fstream>using namespace std;//ifstream cin("crypt1.in");//ofstream cout("crypt1.out");int hash[10]={0};bool check(int n){    int flag=0;    while(n)    {        if(!hash[n%10])        return false;        n/=10;    }    return true;}int main(){    int n,x,count=0;    int mil1=0,mil2=0,sum=0;    cin>>n;    for(int i=0;i<=n-1;i++)    {        cin>>x;        hash[x]=1;    }    for(int i=100;i<=999;i++)    {        if(!check(i))        continue;        for(int j=10;j<=99;j++)        {            if(!check(j))            continue;            sum=i*j;            if(sum<1000||sum>9999)            continue;            if(!check(sum))            continue;            mil1=i*(j%10);            if(mil1<100||mil1>999)            continue;            if(!check(mil1))            continue;            mil2=i*(j/10);            if(mil2<100||mil2>999)            continue;            if(!check(mil2))            continue;            count++;        }    }    cout<<count<<endl;    return 0;}