题目链接:https://vjudge.net/problem/UVALive-5107

题目大意:用ABCDE代表不同的数字,给出形如ABBDE___ABCCC = BDBDE的东西;

空格里面可以填入+-*/的运算符,给字母赋予不同的值,问有多少种情况使得

等式成立。

题目分析:

可以直接用大模拟+暴力求解,注意对于重复情况的判重。

给出代码:

 #include <iostream>
 #include <set>
 #include <algorithm>
 #include <cstring>
 #include <string>
 using namespace std;
 string a;
 string b;
 string c;
 set<int> mark;
 set<int> marks;
 ];
 int main()
 {
     int N;
     cin>>N;
     while(N--)
     {
         cin>>a>>b>>c;
         marks.clear();
         int t1=a.length();
         int t2=b.length();
         int t3=c.length();
         ; i<t1; i++)
         {
             int t=a[i]-'A';
             marks.insert(t);
         }
         ; i<t2; i++)
         {
             int t=b[i]-'A';
             marks.insert(t);
         }
         ; i<t3; i++)
         {
             int t=c[i]-'A';
             marks.insert(t);
         }
         mark.clear();
        // marks.clear();
         ;
         ; i<=; i++)
         {
             ; j<=; j++)
             {
                 if(i==j)
                     continue;
                 ; k<=; k++)
                 {
                     if(k==i||k==j)
                         continue;
                     ; m<=; m++)
                     {
                         if(m==i||m==j||m==k)
                             continue;
                         ; n<=; n++)
                         {
                             if(n==i||n==j||n==m||n==k||n==m)
                                 continue;
                             int ttt=marks.size();
                             //int sum=0;
                             ;
                             ;y<ttt;y++)
                             {
                                 )
                                    ans=ans*+i;
                                 )
                                     ans=ans*+j;
                                 )
                                     ans=ans*+k;
                                 )
                                     ans=ans*+m;
                                 )
                                     ans=ans*+n;
                             }
                             )
                                 continue;
                             mark.insert(ans);
                             set<int>::iterator ite=marks.begin();
                             ; ite!=marks.end(); ite++,ans++)
                             {
                                 int t=*ite;
                                 )
                                     num[t]=i;
                                 )
                                     num[t]=j;
                                 )
                                     num[t]=k;
                                 )
                                     num[t]=m;
                                 )
                                     num[t]=n;
                             }
                             ]-'A';
                             &&t1>)
                                 continue;
                             flag=b[]-'A';
                             &&t2>)
                                 continue;
                             flag=c[]-'A';
                             &&t3>)
                                 continue;
                             ,num2=,num3=;
                             ; i<t1; i++)
                             {
                                 int tt=a[i]-'A';
                                 num1=num1*+num[tt];
                             }
                             ; i<t2; i++)
                             {
                                 int tt=b[i]-'A';
                                 num2=num2*+num[tt];
                             }
                             ; i<t3; i++)
                             {
                                 int tt=c[i]-'A';
                                 num3=num3*+num[tt];
                             }
                             if(num1+num2==num3)
                                 cnt++;
                             if(num1-num2==num3)
                                 cnt++;
                             if(num1*num2==num3)
                                 cnt++;
                             &&num1/num2==num3&&num1%num2==)
                                 cnt++;
                         }
                     }
                 }
             }
         }
         cout<<cnt<<endl;
     }
     ;
 }

UVALive - 5107 - A hard Aoshu Problem的更多相关文章

  1. HDU 4403 A very hard Aoshu problem(DFS)

    A very hard Aoshu problem Problem Description Aoshu is very popular among primary school students. I ...

  2. A very hard Aoshu problem(dfs或者数位)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4403 A very hard Aoshu problem Time Limit: 2000/1000 ...

  3. UVALive 5107 dfs暴力搜索

    题目链接:A hard Aoshu Problem DES:给三个字符串,包含的字符是A-E范围内的.长度都不超过8.每个字符可以而且只可以匹配一个数字.两个字符不能匹配相同的数字.前两个式子之间可以 ...

  4. hdu 3699 10 福州 现场 J - A hard Aoshu Problem 暴力 难度:0

    Description Math Olympiad is called “Aoshu” in China. Aoshu is very popular in elementary schools. N ...

  5. HDU 3699 A hard Aoshu Problem(暴力枚举)(2010 Asia Fuzhou Regional Contest)

    Description Math Olympiad is called “Aoshu” in China. Aoshu is very popular in elementary schools. N ...

  6. HDU4403 A very hard Aoshu problem DFS

    A very hard Aoshu problem                           Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  7. A very hard Aoshu problem

    A very hard Aoshu proble Problem Description Aoshu is very popular among primary school students. It ...

  8. UVaLive 7359 Sum Kind Of Problem (数学,水题)

    题意:给定一个n,求前 n 个正整数,正奇数,正偶数之和. 析:没什么好说的,用前 n 项和公式即可. 代码如下: #pragma comment(linker, "/STACK:10240 ...

  9. 【HDOJ】4403 A very hard Aoshu problem

    HASH+暴力. /* 4403 */ #include <iostream> #include <cstdio> #include <cstring> #incl ...

随机推荐

  1. cas单点登录系统:客户端(client)详细配置

    最近一直在研究cas登录中心这一块的应用,分享一下记录的一些笔记和心得.后面会把cas-server端的配置和重构,另外还有这几天再搞nginx+cas的https反向代理配置,以及cas的证书相关的 ...

  2. BOM(1)

    BOM 浏览器对象模型(Browser Object Model),使浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话". 浏览器对象模型(Browser ...

  3. js变量提升和函数提升

    变量,作为编程语言最基础的部分,每种语言的变量不尽相同,但又大径相庭.大部分编程语言的变量有块级作用域,如if.for.while... 但JavaScript不纯在块级作用域,而是函数作用域,并且有 ...

  4. vue 高德地图之玩转周边

    前言:在之前的博客中,有成功引入高德地图,这是以前的地址  vue 调用高德地图. 因为一些需求,需要使用到地图的周边功能. 完整的项目代码请查看  我的github 一 .先看要实现的结果,参考了链 ...

  5. easyUI的简单了解

    首先简单的介绍一下jQuery EasyUI,它是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编写 ...

  6. CSS动画属性性能详细介绍

    CSS动画属性会触发整个页面的重排relayout.重绘repaint.重组recomposite Paint通常是其中最花费性能的,尽可能避免使用触发paint的CSS动画属性,这也是为什么我们推荐 ...

  7. war包中少了class文件

    用eclipse的maven工具打包(执行mvn clean install  和   mvn package)后,再启动wildfly, war包应该会自动复制到wildfly的deployment ...

  8. WPF编程-WPF体系结构

    WPF简介 Windows Presentation Foundation(WPF)是微软新一代图形系统,运行在.NET Framework 3.0架构下,为用户界面.2D/3D 图形.文档和媒体提供 ...

  9. Swift初始化空字符串

    为了构造一个很长的字符串,可以创建一个空字符串作为初始值.可以将空的字符串字面量赋值给变量,也可以初始化一个新的String 实例: var emptyString = "" // ...

  10. OpenShitf 使用教程

    OpenShitf https://www.openshift.com 1.注册openshitf账号 https://www.openshift.com/app/account/new 2.gett ...