题目链接

Time Limit: 1000MS

Memory Limit: 65536KB

Problem Description

今天玄黄从学长手里接过了三串字符串,美其名曰是ACM集训队流传下来的东西,学长说这是集训队最珍贵的宝物,把其中两个字符串里的字母换一换,神奇的事情就会发生。果不其然,玄黄更换了其中两个字符串里的字母后,第三个字符串也发生了改变。机智的小绿看到了,“这种玩具我也会做,不就是一个乘法计算器吗”,说完,不屑地走开了。愚钝的玄黄还没有参透其中的奥秘,小绿说是乘法计算器,可是玄黄并没有看到数字啊?

Input

输入数据有多组,到EOF结束。

对于每组数据,输入三个字符串,字符串里保证只有“a,b,c,d,e”五种字母,每个字符串代表一个正数,数字位数和字符串长度相同,前两个字符串长度不超过2,最后一个字符串长度不超过4。

Output

对于每组数据,输出5行,分别代表每个字符代表的数字(0<=a,b,c,d,e<=9),每种数字只能由一种字符表示,数据保证有解且只有唯一解,并且0不会出现在字符串的首位,如果其中有字符没有在输入中出现,则该行输出“-1”。每两组数据之间有一个空行。详情见示例输出。

Example Input

aa
aa
aba
aa
aa
bbcc

Example Output

a : 1
b : 2
c : -1
d : -1
e : -1a : 8
b : 7
c : 4
d : -1
e : -1

Hint

第一组示例:11*11=121

Author

玄黄
思路:示例比题目更好懂,第一组是11*11=121,第二组是88*88=7744,暴力枚举a,b,c,d,e所有可能出现的情况,将满足条件的解筛选出来,总共只需要找10^5种可能性,需要注意的就是两个字母不能表示同一个字符,还有,因为所有数字都是正数,所以a*a=a只有1*1=1满足条件,直接贴一个暴力代码
#include <stdio.h>
#include <string.h>
int f(char a[],int num[])
{int s=0,i;if(num[a[0]]==0)return 0;for(i=0; a[i]; i++){if(num[a[i]]==-1)return 0;s=10*s+num[a[i]];}return s;
}
int main()
{char a[10],b[10],c[10];int num[200],book[20],i,j,k,l,m;int flag;int x,y,z;while(~scanf("%s%s%s",a,b,c)){flag=0;memset(num,-1,sizeof(num));memset(book,0,sizeof(book));for(i=0; a[i]; i++)num[a[i]]=0;for(i=0; b[i]; i++)num[b[i]]=0;for(i=0; c[i]; i++)num[c[i]]=0;for(i=0; i<=9; i++){if(num['a']!=-1){num['a']=i;book[i]=1;}for(j=0; j<=9; j++){if(book[j])continue;if(num['b']!=-1){num['b']=j;book[j]=1;}for(k=0; k<=9; k++){if(book[k])continue;if(num['c']!=-1){num['c']=k;book[k]=1;}for(l=0; l<=9; l++){if(book[l])continue;if(num['d']!=-1){num['d']=l;book[l]=1;}for(m=0; m<=9; m++){if(book[m])continue;if(num['e']!=-1){num['e']=m;book[m]=1;}x=f(a,num);y=f(b,num);z=f(c,num);if(x*y==z&&z!=0){flag=1;break;}book[m]=0;}if(flag)break;book[l]=0;}if(flag)break;book[k]=0;}if(flag)break;book[j]=0;}if(flag)break;book[i]=0;}printf("a : %d\n",num['a']);printf("b : %d\n",num['b']);printf("c : %d\n",num['c']);printf("d : %d\n",num['d']);printf("e : %d\n\n",num['e']);}return 0;
}

第七届山东理工大学ACM趣味编程循环赛 Round#1 sdut4109 玄黄的字符串相关推荐

  1. 第九届山东理工大学ACM网络编程擂台赛 正式赛 sdut4075GCD - ldq的黑心啤酒厂

    题目链接 ldq's brewery Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description LDQ ...

  2. F 阎小罗的Minimax (第十届山东理工大学ACM网络编程擂台赛 正式赛 )

    题解:by Mercury_Lc 阎小罗的矩阵给的n和m都不超过300,枚举一下所有情况就可以了,用前缀和来储存.数组a[x][y]代表前x行前y列的和是多少,那么枚举每一种切割的方式就可以.注意一下 ...

  3. 第七届ACM趣味编程循环赛 Round #1 - ldq 的遗产题解

    题意是给你一定数目的1,2,5分的硬币,让你找出不能被这些硬币表示的最小价值. 标准解法是母函数,这个我算法分享讲堂中讲过, 具体可以看我另一篇博客 生成函数入门 #include <stdio ...

  4. 第九届山东理工大学ACM网络编程擂台赛 热身赛 sdut4087 ldq's Sons

    题目链接 Time Limit: 1000MS Memory Limit: 65536KB Problem Description Xuanhuang: Wow, three cute boys. A ...

  5. 第九届山东理工大学ACM网络编程擂台赛 正式赛 sdut4074博弈 - ldq的吃瓜比赛

    题目链接 ldq的吃瓜比赛 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description ldq 和 他的 ...

  6. 山东理工大学ACM平台题答案关于C语言 2098 识别浮点常量问题

    识别浮点常量问题 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 编译器在对程序进行编译之前,首先要进行语法分析.通常,程序被分解 ...

  7. 山东理工大学ACM平台题答案 2561 九九乘法表

    九九乘法表 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 九九乘法表是数学学习的基础,今天我们就来看看乘法表的相关问题.< ...

  8. 山东理工大学ACM平台题答案 数列有序! 1244

    数列有序! Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述                    有n(n<=100)个整数 ...

  9. 山东理工大学ACM平台题答案 2561 九九乘法表

    这次是对的,刚才少点东西,我接受批评指正 欢迎继续浏览 九九乘法表 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 九九乘法表是数 ...

  10. 山东理工大学ACM平台题答案关于C语言 2101 正方形面积

    正方形面积 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 根据读入的正方形的边长(边长为正整数),输出其正方形的面积. 输入 输 ...

最新文章

  1. InnoDB memcached插件部署
  2. capcreatecapturewindowa 说明_家长不批改作业,还需要写情况说明?
  3. python调用c++动态库_Python调用C/C++动态链接库的方法
  4. was中java目录_was8.5选择安装选项,安装应用程序的目录填写自定义目录,应用部署成功后访问不了页面?...
  5. 怎么让图片手机上排列_荣耀手机系列档次怎么排列?
  6. mysql和oracle的通用存储,MySQL与Oracle在使用上的一些区别
  7. ASP.NET MVC 3发布报错(ASP.NET MVC 3在没有安装环境的服务器上运行)的解决方案
  8. 基于CSE的微服务工程实践-多微服务框架演进
  9. 携程实时计算平台架构与实践丨DataPipeline
  10. 关于apache httpd.conf脚本的理解
  11. 俄黑客入侵100多万部安卓手机 盗取500多万卢布
  12. 林瑞c语言代码规范,林瑞庆
  13. java web简单项目实例_简单粗暴,详细得不要不要的 JavaWeb快速入门实例(1)
  14. iphone7刷入linux,iPhone7怎么进入DFU模式 iPhone7刷机步骤【详解】
  15. nodejs中解决发出响应数据正常但是浏览器没有正确显示的问题
  16. nn.CrossEntropyLoss的ignore_index标签(CE loss)
  17. java监控屏幕_java实现人工智能化屏幕监控窗口
  18. 黑马程序员--第一阶段5.JavaAPI--第13天
  19. html动画翻书特效,css3 做一个类似于翻书特效的3D动画
  20. 财务管理 viewthread.php,厦大2017mpacc:一些个人经验和感想

热门文章

  1. 腾讯云服务器芯片,腾讯云星星海重磅发布首款自研GPU服务器 占据业界几宗“最”...
  2. javascript回调函数有什么用
  3. python制作日历_利用Python自动化生成明星定制日历!
  4. Rust:FFI 编程中的 CStr 和 CString
  5. iOS第三方支付集成-支付宝支付
  6. 华为P9移动定制版刷为联通移动双4G版本
  7. kettle读txt文件并处理
  8. 关于awk 中如何使用 if条件判断句
  9. 【STM32f401学习之路-00】搭建工程环境
  10. 计算机相关的俚语,现代俄语计算机俚语的构成方式.pdf