usaco Prime Cryptarithm

/*
ID: modengd1
PROG: crypt1
LANG: C++
*/
#include <iostream>
#include <stdio.h>
#include <memory.h>
using namespace std;
int input[10],N;
bool tag[10000];
int counter()
{

    int ans=0;
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
        {
            for(int k=0;k<N;k++)
            {
                for(int h=0;h<N;h++)
                {
                    int temp1=input[i]*100+input[j]*10+input[k];
                    int temp2=temp1*input[h];
                    if(temp2>999)
                        continue;
                    if(tag[temp2])
                    for(int m=0;m<N;m++)
                    {
                        int temp5=temp1*input[m];
                        if(temp5>999)
                            continue;
                        if(tag[temp5])
                        {
                            if((temp2*10+temp5)>9999)
                                continue;
                            if(tag[temp2*10+temp5])
                            {
                                ans++;
                            }
                        }
                    }
                }
            }
        }
    }
    return ans;
}
int main()
{
    freopen("crypt1.in","r",stdin);
    freopen("crypt1.out","w",stdout);
    memset(tag,false,sizeof(tag));
    scanf("%d",&N);
    for(int i=0;i<N;i++)
    {
        scanf("%d",&input[i]);
    }
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
        {
            for(int k=0;k<N;k++)
            {
                int temp3=input[i]*100+input[j]*10+input[k];
                tag[temp3]=true;
                for(int m=0;m<N;m++)
                {
                    int temp4=temp3*10+input[m];
                    tag[temp4]=true;
                }
            }
        }
    }
    cout<<counter()<<endl;
    return 0;
}

  

时间: 2024-10-15 02:19:34

usaco Prime Cryptarithm的相关文章

洛谷P1211 [USACO1.3]牛式 Prime Cryptarithm

P1211 [USACO1.3]牛式 Prime Cryptarithm 187通过 234提交 题目提供者该用户不存在 标签USACO 难度普及- 提交  讨论  题解 最新讨论 题面错误 题目描述 下面是一个乘法竖式,如果用我们给定的那n个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式. *** x     ** ---------- *** *** ---------- **** (请复制到记事本) 数字只能取代*,当然第一位不能为0,况且给定的数字里不包括0. 注意一下在美国的学

l洛谷——P1211 [USACO1.3]牛式 Prime Cryptarithm

P1211 [USACO1.3]牛式 Prime Cryptarithm 题目描述 下面是一个乘法竖式,如果用我们给定的那n个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式. *** x ** ---------- *** *** ---------- **** (请复制到记事本) 数字只能取代*,当然第一位不能为0,况且给定的数字里不包括0. 注意一下在美国的学校中教的“部分乘积”,第一部分乘积是第二个数的个位和第一个数的积,第二部分乘积是第二个数的十位和第一个数的乘积. 写一个程序找

1.3.3 Prime Cryptarithm

The following cryptarithm is a multiplication problem that can be solved by substituting digits from a specified set of N digits into the positions marked with *. If the set of prime digits {2,3,5,7} is selected, the cryptarithm is called a PRIME CRY

USACO Section1.3 Prime Cryptarithm 解题报告

crypt1解题报告 —— icedream61 博客园(转载请注明出处)------------------------------------------------------------------------------------------------------------------------------------------------[题目] 用给出的N个数字,替换以下竖式,能生成多少个正确的竖式? * * * x * * ------- * * * * * * ---

USACO 1.3 Prime Cryptarithm (枚举)

描述 下面是一个乘法竖式,如果用我们给定的那n个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式. *** x ** ---------- *** *** ---------- **** 数字只能取代*,当然第一位不能为0,况且给定的数字里不包括0. 注意一下在美国的学校中教的"部分乘积",第一部分乘积是第二个数的个位和第一个数的积,第二部分乘积是第二个数的十位和第一个数的乘积. 写一个程序找出所有的牛式. [编辑]格式 PROGRAM NAME: crypt1 INPUT FO

【USACO题库】1.3.4 Prime Cryptarithm牛式

好久没有发题解了,今天发一个很久很久之前写过得题吧 题目其实莫名的难 但是理解后,原来就是一只纸老虎 题目加工中~~~~(缩短题目) 加工完成:已知数字1-9组成集合的一个子集,求满足题意乘法步骤的情况有多少,注意乘数.被乘数.结果都不能超出位数,且每个数字都在题目给出的子集中. 其实就是上面这样. 其实一波暴力即可 循环1-9位数,进行计算,可以就可以,不可以就跳过,但是要注意是个,十,百....的起点,如百的起点是100: 大水题 上代码吧 #include<iostream> #incl

USACO Prime Palindromes 构造回文数

这道题目一点也不卡素数的判断 就是朴素的sqrt(n) 也不卡 所以~放心的用吧. 构造回文的时候看了HINT 其中是这么写的: Generate palindromes by combining digits properly. You might need more than one of the loops like below. /* generate five digit palindrome: */ for (d1 = 1; d1 <= 9; d1+=2) { /* only odd

Prime Cryptarithm

链接 分析:对于三位数我们限定为[100,999],两位数我们限定为[10,99],然后我们依次判断是否满足乘法式且各个数位是否在数列中,若都满足+1 1 /* 2 PROB:crypt1 3 ID:wanghan 4 LANG:C++ 5 */ 6 #include "iostream" 7 #include "cstdio" 8 #include "cstring" 9 #include "string" 10 #incl

usaco Prime Palindromes

给定两个边界,求输出所有这个边界以内,既是素数又是回文的数字: 一开始用的素数筛,爆内存了. 改为生成回文后检测是否为素数,在如何递归生成回文上卡了很久.一直纠结于边界情况的处理. /* ID: modengd1 PROG: pprime LANG: C++ */ #include <iostream> #include <stdio.h> #include <string.h> #include <memory.h> #include <math.h