HDU 3699 A hard Aoshu Problem (暴力搜索)[通俗易懂]

HDU 3699 A hard Aoshu Problem (暴力搜索)

大家好,又见面了,我是全栈君。

题意:题意:给你3个字符串s1,s2,s3;要求对三个字符串中的字符赋值(同样的字符串进行同样的数字替换),


替换后的三个数进行四则运算要满足左边等于右边。求有几种解法。

Sample Input
   
   
2 A A A BCD BCD B

 


Sample Output
   
   
5 72

eg:ABBDE   ABCCC   BDBDE ;令 A = 1, B = 2, C = 0, D = 4, E = 5

12245 + 12000 = 24245;


注意没有前导零!



#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<string>
#include<queue>
#include<map>
#include<math.h>
#include<algorithm>
#include<iostream>
using namespace std;
const int kind = 26;
const int maxn = 250*1000; //注意RE,单词长度*单词个数
const int M = 5100000;
int vis[10],flag[10],l,ans;
char s1[10],s2[10],s3[10],s[10];
map<char,int>mp,dl;
void Cal()
{
	int a=0,b=0,c=0;
	for(int i=0;i<strlen(s1);i++)
		a=a*10+mp[s1[i]];
	for(int i=0;i<strlen(s2);i++)
		b=b*10+mp[s2[i]];
	for(int i=0;i<strlen(s3);i++)
		c=c*10+mp[s3[i]];
	if(a+b==c) ans++;
	if(a-b==c) ans++;
	if(a*b==c) ans++;
	if(b&&a==b*c) ans++;
}
void dfs(int num)
{
	if(num>=l) 
	{
		Cal();
		return;
	}
	for(int i=0;i<10;i++)
	{
		if(i==0&&dl[s[num]]) continue;
		if(!flag[i])
		{
			flag[i]=1;
			mp[s[num]]=i;
			dfs(num+1);
			flag[i]=0;
		}
	}
}
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		memset(vis,0,sizeof(vis));
		mp.clear();dl.clear();
		ans=0;
		scanf("%s%s%s",s1,s2,s3);
		if(strlen(s1)>1) dl[s1[0]]=1;
		if(strlen(s2)>1) dl[s2[0]]=1;
		if(strlen(s3)>1) dl[s3[0]]=1;
		int i,k,j;
		l=0;
		for(i=0;i<strlen(s1);i++)
		{
			if(vis[s1[i]-'A']) continue;
			vis[s1[i]-'A']++;
			s[l++]=s1[i];
		}
		for(i=0;i<strlen(s2);i++)
		{
			if(vis[s2[i]-'A']) continue;
			vis[s2[i]-'A']++;
			s[l++]=s2[i];
		}
		for(i=0;i<strlen(s3);i++)
		{
			if(vis[s3[i]-'A']) continue;
			vis[s3[i]-'A']++;
			s[l++]=s3[i];
		}
		dfs(0);
		printf("%d\n",ans);
	}
	return 0;
}
/*
2
A A A
BCD BCD B
*/


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116457.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 电脑登陆出现此工作站和主域间的信任关系失败[通俗易懂]

    电脑登陆出现此工作站和主域间的信任关系失败[通俗易懂]问题如下:具体操作步骤可参考https://jingyan.baidu.com/article/37bce2be193fd51003f3a259.htm

    2022年10月18日
  • 接口和api_api接口入门

    接口和api_api接口入门API集成服务有助于提高开发人员的开发性能并节省大量时间。

  • php构建webservice,php webservice实例(简单易懂)「建议收藏」

    php构建webservice,php webservice实例(简单易懂)「建议收藏」phpwebservice实例(简单易懂)首先大家要简单了解了何谓webservice,接下来就做两个非常简单的例子,webservice还是逃不开server端与client端。我测试的环境为:apache2.2.11php5.2.10做这个测试之前,要确认你的php配置文件中已经将soap扩展打开,即extension=php_soap.dll;OK现在我们来体验webservice//…

  • pycharm没有setting_pycharm怎么配置python环境变量

    pycharm没有setting_pycharm怎么配置python环境变量问题:pycharm无法加载pip3安装包报错:pythonpackingtoolsnotfound.installpackingtools通过卸载重装pip3都没有用解决方法:更新一下setuptools就好啦sudopip3installsetuptools–upgradesudopipinstallsetuptools–upgrade…

  • 04 _ 可扩展架构案例(一):电商平台架构是如何演变的?[通俗易懂]

    04 _ 可扩展架构案例(一):电商平台架构是如何演变的?[通俗易懂]本章,我就针对最近十几年电商平台的架构变化过程,来具体说明下,为了支持业务的快速发展,架构是如何一步步演进的。从2003年淘宝上线开始,国内电商平台经历了高速的发展,在这个过程中,系统遇到了很多的挑战,比如说:如何针对当前的业务现状,选择合适的架构呢?如何在业务发展过程中,升级改造架构,并保证系统的平滑过渡呢?接下来,我会结合自己的工作实践,和你一起探讨架构的演变历程,你可以从中了解到各种架构的优劣点和适用性,然后在实际工作中选择合适的架构。这里,我总结了国内电商平台架构发展的大致过程,你可以结合图片

  • 系统环境变量与用户环境变量区别_windows7建立用户变量

    系统环境变量与用户环境变量区别_windows7建立用户变量区别:  环境变量分为系统环境变量和用户环境变量。环境变量是指系统环境变量,对所有用户起作用,而用户环境变量只对当前用户起作用。  例如你要用opencv,那么你把opencv的bin目录加入到path变量下面,那么它就是系统环境变量,所用用户登陆,在命令行输入opencv都会有opencv的帮助信息出来。而如果你在某个用户的变量下面新建一个变量,那么它就只对这个用户有用,当你以其他用户登陆时这

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号