Description
给出一个式子,其中有一种数字全部被打了问号,问是否可以填入这个数字使得等式成立且式子合法,所谓合法指的是没有前置0,也不能有-0
Input
第一行一整数T表示用例组数,之后输入一个a op b = c形式的式子,其中op是+,-,*中的一种,a,b,c的长度不会超过6(1<=T<=100)
Output
对于每组用例,如果用一个在式子中未出现的数字替换掉问号之后式子成立则输出这个数字,否则输出-1
Sample Input
5
1+1=?
123*45?=5?088
-5?*-1=5?
19–45=5?
??*??=302?
Sample Output
2
6
0
-1
5
Solution
枚举0~9即可,注意两种不合法情况,即前置0和-0
Code

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include<ctime>
using namespace std;
typedef long long ll;
#define INF 0x3f3f3f3f
#define maxn 1111
int T;
char s[maxn],c[maxn];
int deal(int l,int r)
{int sign=1;if(c[l]=='-'){if(c[l+1]=='0')return INF;sign=-1,l++;} if(c[l]=='0'&&l<r)return INF;int ans=0; for(int i=l;i<=r;i++)ans=10*ans+c[i]-'0';return sign*ans;
}
int flag[11];
int main()
{scanf("%d",&T);while(T--){memset(flag,0,sizeof(flag));scanf("%s",s);int len=strlen(s),gg=-1;for(int i=0;i<len;i++)if(s[i]>='0'&&s[i]<='9')flag[s[i]-'0']=1;for(int k=0;k<10;k++){if(gg!=-1)break;if(flag[k])continue;for(int i=0;i<len;i++){c[i]=s[i];if(c[i]=='?')c[i]=k+'0';}int pos1,pos2,type=-1;for(int i=1;i<len;i++){if(type==-1){if(c[i]=='+')type=1,pos1=i;if(c[i]=='-')type=2,pos1=i;if(c[i]=='*')type=3,pos1=i;}if(c[i]=='=')pos2=i;}int x=deal(0,pos1-1),y=deal(pos1+1,pos2-1),z=deal(pos2+1,len-1);if(x==INF||y==INF||z==INF)continue;if(type==1&&x+y==z)gg=k;else if(type==2&&x-y==z)gg=k;else if(type==3&&1ll*x*y==1ll*z)gg=k;}printf("%d\n",gg);}return 0;
}

GYM 100827 A.Runes(水~)相关推荐

  1. GYM 101653 T.Runes(水~)

    Description 给出一个式子,其中有一种数字全部被打了问号,问是否可以填入这个数字使得等式成立且式子合法,所谓合法指的是没有前置0,也不能有-0 Input 第一行一整数T表示用例组数,之后输 ...

  2. Codeforces gym 100685 C. Cinderella 水题

    C. Cinderella Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100685/problem/ ...

  3. Gym - 102388G Snails(水题)

    题意:每天向前进a米,向后退b米,求多少天能到达n米. 题记:按照题目模拟即可. #include<bits/stdc++.h>using namespace std; const int ...

  4. GYM 100827 I.Salary Inequity(线段树)

    Description 一棵有向树,1是根,每个点有点权,两种操作: Q u:查询u节点为根节点的子树中权值最大值与最小值的差 R u x:给以u节点为根节点的子树所有点点权加上x Input 第一行 ...

  5. C# dotnet 使用 OpenXml 解析 PPT 元素的坐标和宽度高度

    在阅读本文之前,我期望你能了解基础的 PPT 解析内容,或看我的入门级博客.本文将告诉大家如何从 PPT 里面解析出通用元素的 x 和 y 的值,以及元素的宽度和高度的值 在开始之前请看 C# dot ...

  6. codeforces gym 100827A Runes

    acing-..还没有ac呢,写个中途报告 传送门: http://codeforces.com/gym/100827/attachments/download/3892/pacific-northw ...

  7. 梦之安魂曲 minisd_科技运动中妇女的安魂曲

    梦之安魂曲 minisd This article was inspired by a conversation with fellow Medium user @hollyjahangiri. Bi ...

  8. 警察规范执法案例_警察改革沉浸式技术可以改变执法方式

    警察规范执法案例 Whenever a cop car pulls up beside or behind me while driving, I get nervous. My mouth beco ...

  9. 更好的设计接口_设计可以而且必须做得更好

    更好的设计接口 We live in a world that becomes more dependent on technology every day. Tech gives us new wa ...

最新文章

  1. Matlab中计算程序运行时间的三种方法
  2. 每一个C#开发者必须知道的13件事情
  3. 使用 Intel HAXM 为 Android 模拟器加速,媲美真机(转)
  4. 【转载】BTEs业务交易事件初识
  5. oracle 三层嵌套查询,oracle 三层嵌套分页查询
  6. 爱情是一出未经排练的戏
  7. mysqli 扩展_MySQLi的优势
  8. fx 线程 弹窗_JFXPanel和FX Platform线程陷阱
  9. 安装Windows 2003 域控制器
  10. 《Unix网络编程(第3版)》代码编译的一些问题
  11. ROS入门 常用工具
  12. java 排序 内存_Java内存模型(二)——重排序
  13. centos7 运行 jar_CentOS7下部署开源网络流量回溯分析系统Moloch
  14. java 多版本管理工具_简介linux下的多版本管理工具—alternatives
  15. 此男因为什么被送进医院?
  16. Tapestry5单元测试
  17. iOS AVCapture前置摄像头不显示镜像翻转
  18. Android面试分析一:关于OKhttp详解(附带视频教程,flutter游戏全屏
  19. linux 查看显卡信息及显卡驱动信息
  20. Java控制台banner_Spring boot 之自定义 Banner

热门文章

  1. 网管软件禁止网购木马偷梁换柱
  2. 关于sizeof(arr)/sizeof(arr[0])解读(plus细节讲解增加)
  3. uva 11595 - Crossing Streets EXTREME(切割多边形)
  4. python神经网络编程chap01
  5. Modeling Relational Data with Graph Convolutional Networks(2017)
  6. Java 密码学相关知识
  7. 5G-SUPI-SUPC-IMSI
  8. C语言指针学习与使用
  9. 关闭危险端口445的简单方法
  10. 网桥是怎么分类的?具体有哪些分类?