题目链接: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. Eclipse汉化后如何还原为EN英文(实用技巧) --转

    自从那天脑袋短路后,下了个汉化包将Eclipse给汉化了,用的我真TMD的不习惯,一直想还原为EN文,试了好多办法,删文件,汉化包,改eclipse.ini文件中的"-nl zh" ...

  2. Java虚拟机14:Java对象大小、对象内存布局及锁状态变化

    一个对象占多少字节? 关于对象的大小,对于C/C++来说,都是有sizeof函数可以直接获取的,但是Java似乎没有这样的方法.不过还好,在JDK1.5之后引入了Instrumentation类,这个 ...

  3. Linux sort -g 的困惑

    sort命令是帮我们依据不同的数据类型进行排序,排序的效率很高,因此也是很常用的命令. sort参考及说明:https://www.gnu.org/software/coreutils/manual/ ...

  4. [原创]Floodlight+ovs的基本使用

    一.配置好openflow交换机 配置好交换机的管理地址,可先用串口登,使管理口地址与controller地址在同一个网络中. 在交换机上配置controller地址: 如: 先用命令新建一个brid ...

  5. python 文件操作(pickle)

    >>> with open('text.txt','wb') as data:pickle.dump(['a','b',2],data) 保存到文件 >>> wit ...

  6. solr5.5索引mysql数据(新手总结)

    一 solr5.5环境部署到Eclipse(luna版) solr部署参见:http://blog.csdn.net/csmnjk/article/details/64121765 二 Ik分词器设置 ...

  7. Visual Studio 2017 for Mac 体验之Android.Form

    微软官方说明: Visual Studio 2017 for Mac Last Update: 2017/6/16 我们非常荣幸地宣布 Visual Studio 2017 for Mac 现已推出. ...

  8. iOS 转场动画探究(一)

    什么是转场动画: 转场动画说的直接点就是你常见的界面跳转的时候看到的动画效果,我们比较常见的就是控制器之间的Push和Pop,还有Present和Dismiss的时候设置一下系统给我们的modalTr ...

  9. jmeter3.2版本完美实现Load Test报表

    今天下载了最新版的apache tomcat jmeter 3.2,需要jdk1.8以上的版本. 用非GUI模式运行压力测试后,出现的报表太完美了. 将jmx脚本放在就jmeter_home下的Scr ...

  10. eclipse 导入git库 Android工程

    1. 导入git库 1.1 从git库 clone 代码 在file->import中选中Git 目录下的Projects from Git 点击Next 选择 URL 点击Next 输入URL ...