USACO1.3 牛式 Prime Cryptarithm
来源:互联网 发布:杭州地税网络申报流程 编辑:程序博客网 时间:2024/05/18 17:54
牛式
题目描述
下面是一个乘法竖式,如果用我们给定的那n个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式。
*** x ** ---------- *** *** ---------- ****
(请复制到记事本)
数字只能取代*,当然第一位不能为0,况且给定的数字里不包括0。
注意一下在美国的学校中教的“部分乘积”,第一部分乘积是第二个数的个位和第一个数的积,第二部分乘积是第二个数的十位和第一个数的乘积.
写一个程序找出所有的牛式。
分析:暴力搜索5个数字组成两个因数,把它们的部分乘积转换为字符串后判断位数和数字是否在输入的集合里。
代码
var
f,a,b:array[1..9] of longint;
i,n,ans:longint;
function check:boolean;
var
i,j:longint;
s1,s2,s3:string;
begin
check:=true;
str((b[1]*100+b[2]*10+b[3])*b[5],s1);
str((b[1]*100+b[2]*10+b[3])*b[4],s2);
str((b[1]*100+b[2]*10+b[3])*(b[4]*10+b[5]),s3);
if (length(s1)<>3) or (length(s2)<>3) or (length(s3)<>4) then exit(false);
for i:=1 to 3 do
if (f[ord(s1[i])-48]<>1) or (f[ord(s2[i])-48]<>1) or (f[ord(s3[i])-48]<>1)
then exit(false);
if f[ord(s3[4])-48]<>1 then exit(false);
end;
procedure dfs(dep:longint);
var
i:longint;
begin
if dep>5 then
begin
if check then inc(ans);
exit;
end;
for i:=1 to n do
begin
b[dep]:=a[i];
dfs(dep+1);
end;
end;
begin
readln(n);
for i:= 1 to n do
begin
read(a[i]);
f[a[i]]:=1;
end;
dfs(1);
writeln(ans);
end.
- [USACO1.3]牛式 Prime Cryptarithm
- 【USACO1.3】牛式 Prime Cryptarithm
- USACO1.3 牛式 Prime Cryptarithm
- USACO1.3牛式 Prime Cryptarithm
- P1211 [USACO1.3]牛式 Prime Cryptarithm
- USACO1.3.4 Prime Cryptarithm(牛式)
- 【洛谷1211 [USACO1.3]牛式 Prime Cryptarithm】【枚举】
- 【模拟】洛谷 P1211 [USACO1.3]牛式 Prime Cryptarithm
- 这压缩,太强了![USACO1.3]牛式 Prime Cryptarithm
- USACO1.3.3 Prime Cryptarithm (crypt1)
- USACO1.3.3 Prime Cryptarithm (crypt1)
- Prime Cryptarithm牛式
- USACO 1.3. Prime Cryptarithm 牛式
- USACO 1.3.3 Prime Cryptarithm
- USACO Section1.3 Prime Cryptarithm
- USACO-Section1.3 Prime Cryptarithm
- USACO-Section1.3 Prime Cryptarithm
- Prime Cryptarithm
- Leetcode-500. Keyboard Row
- CAboutDlg,CDrawApp,CDrawDoc,CDrawView,CMainFrame
- POJ2503 Babelfish (map)
- IntelliJ IDEA 2016.3
- gulp源码解析(二)—— vinyl-fs_1
- USACO1.3 牛式 Prime Cryptarithm
- cocospods出现“Generating Pods project Abort trap: 6”
- [H5]HTML表单和PHP环境搭建
- 创建自己的OpenCV库
- Leetcode-508. Most Frequent Subtree Sum
- C#视频—运算符
- 文件查看器(C语言)
- 代码积累--用循环做一个bilingling的五角星
- 反射获取类名