题目链接: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. 用Backtrack进行渗透测试评估

    Web应用程序的分析在渗透测试和漏洞评估中发挥了重要的作用.确定Web应用程序的正确信息(例如使用的插件,CMS类型等)都可以帮助测试者使用准确的漏洞来测试,能够降低整个渗透测试漏洞评估所花费的时间. ...

  2. 用php+mysql+ajax实现淘宝客服或阿里旺旺聊天功能 之 前台页面

    首先来看一下我已经实现的效果图: 消费者页面:(本篇随笔) (1)会显示店主的头像 (2)当前用户发送信息显示在右侧,接受的信息,显示在左侧 店主或客服页面:(下一篇随笔) (1)在左侧有一个列表 , ...

  3. webpack 插件拾趣 (1) —— webpack-dev-server

    结束了一季的忙碌,我这封笔已久的博客也终究该从春困的咒印中复苏,想来写些实用易读的作为开篇,自然是最好不过. 新开个 webpack 插件/工具介绍的文章系列,约莫每周更新一篇篇幅适中的文章聊以共勉, ...

  4. nodejs 字符串全排列 和 去重

    以前写了个java版的 现在写个nodejs 版的 var list = sort('CCAV');var noRepeat = {};for(var i in list){ noRepeat[lis ...

  5. js中的事件,内置对象,正则表达式

    [JS中的事件分类] 1.鼠标事件: click/dbclick/mouseover/mouseout/mousemove/mousedown/mouseup 2.键盘事件: keydown: 键盘按 ...

  6. Vue.js 介绍入门

    Vue.js 的目标 是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.Vue.js 是一个用于创建 Web 交互界面的库.它让你通过简单而灵活的 API 创建由数据驱动的 UI 组件. ...

  7. Spring MVC 项目搭建 -6- spring security 使用自定义Filter实现验证扩展资源验证,使用数据库进行配置

    Spring MVC 项目搭建 -6- spring security使用自定义Filter实现验证扩展url验证,使用数据库进行配置 实现的主要流程 1.创建一个Filter 继承 Abstract ...

  8. ajax提交到后台是中文乱码

    运行程序时遇到用ajax的url中传递数据,后台用request.getParamet()时出现中文乱码 $.ajax({ type: "POST", url: g_sBasePa ...

  9. 以芯片直读方式得到的全盘镜像解析及ext4日志区域解析

    之前在centos中分析了/dev/sda1下的结构,但当对象是一块以芯片直读方式作出来的全盘镜像呢? 这次以安卓手机的全盘镜像为对象,尝试按照ext4文件系统结构手动解析,加强对ext4文件系统.E ...

  10. FileMethods

    }else { System.out.println("不能写入此文件"); } System.out.println("此文件最后修改时间是2000年1月1日后的&qu ...