题目链接: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. node.js零基础详细教程(4):node.js事件机制、node异步IO操作

    第四章 建议学习时间3小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  2. asp.net core 教程(四)-项目结构

    Asp.Net Core-项目结构 Asp.Net Core-项目结构 案例 在这一章,我们将讨论 ASP.NET Core项目在文件系统上的组成方式以及不同的文件和目录都是如何协同工作的. 让我们打 ...

  3. 初识webpack——webpack四个基础概念

    前面的话 webpack是当下最热门的前端资源模块化管理和打包工具.它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源.当webpack处理应用程序时,它会递归地构建一个依赖关系图表 ...

  4. VR全景智慧城市常诚:信息技术点亮“智慧城市”

    亚太城市峰会暨市长论坛日前在澳大利亚昆士兰州首府布里斯班举行,"智慧城市"成为焦点议题.来自135个国家和地区的市长.副市长及代表们共同讨论如何利用高新科技解决城市发展中的问题,让 ...

  5. 二分图最小路径覆盖--poj2060 Taxi Cab Scheme

    Taxi Cab Scheme 时间限制: 1 Sec  内存限制: 64 MB 题目描述 Running a taxi station is not all that simple. Apart f ...

  6. flask简单web应用

    推荐一个学习python的网站,个人觉得在这里面收获挺大的,希望对后来学习flask的小伙伴们有帮助.http://www.pythondoc.com/ 用flask框架实现第一个web应用 首先需要 ...

  7. ASP.NET Core 源码学习之 Options[1]:Configure

    配置的本质就是字符串的键值对,但是对于面向对象语言来说,能使用强类型的配置是何等的爽哉! 目录 ASP.NET Core 配置系统 强类型的 Options Configure 方法 源码解析 ASP ...

  8. VS2017专业版和企业版激活密钥

    VS2017专业版和企业版激活密钥 Professional: KBJFW-NXHK6-W4WJM-CRMQB-G3CDH Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q ...

  9. Reids命令解析-RENAME

    有一天开发突然照过来问,维萨我这个Redis实例这么慢呢?为什么这么慢,于是连上实例SLOWLOG 一看,这些慢日志都是大部分是RENMAE操作导致的,可是为什么RENAME操作会慢呢?不就是改个名字 ...

  10. 查询sql表列名

    --查询sql 查询表列名Select Name FROM SysColumns Where id=Object_Id('Tab') --查询sql数据库表列名称select name from sy ...