给你一个字符串 是[number][op][number]=[number]的形式, 其中op可以为+- *

数字其中有些‘?’问你能不能用0~9中的数字替代‘?’使等式成立

如果可能的话输出最小的 否则输出-1

字符串中已经出现的字符不能使用 不能有前导0和-0

乘法可能会爆int 所以要开long long

要注意几组极端的的样例

?*?=?   输出0  0*0=0 +-也是一样

?*?=?? 输出-1  不能有前导0

-?*?=? 输出-1  不过数据中没有-0的情况 不考虑也可以AC

感觉自己的代码能力还是不强  模拟题想的慢实现的慢而且写的不是很简单

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<queue>
#include<map>
#include<algorithm>
#include<iostream>
#define ll long long
#define ull unsigned long long
const int N=1e9+7;
const int M=1e3+5;
using namespace std;int e,g,f[15],i,j;
int flag1,flag2,flag3,l1,l2,l3,ans;
ll q1,q2,q3;
char a[M],b[M],c[M],d[M],fh;void init()   //初始化
{memset(f,0,sizeof(f));flag1=1,flag2=1,flag3=1,l1=0,l2=0,l3=0;ans=-1;
}void solve_f()  //表达式中已经出现的数字不能使用
{e=strlen(a);for(i=0; i<e; i++){if(a[i]>='0'&&a[i]<='9'){g=a[i]-'0';f[g]=1;}}
}void solve_bcd()  //把输入的字符串拆成b c d和+-*
{for(i=0; i<e; i++){if(flag2){if((a[i]>='0'&&a[i]<='9')||(a[i]=='?')) flag1=0;if(!flag1){if(a[i]=='-'||a[i]=='+'||a[i]=='*'){fh=a[i];flag2=0;continue;}}b[l1++]=a[i];}else{if(flag3){if(a[i]=='='){flag3=0;continue;}c[l2++]=a[i];}else{d[l3++]=a[i];}}}
}void solve_ans()
{for(i=0; i<=9; i++){if(f[i]) continue;       //表达式中已经出现的数字则直接continueq1=0,q2=0,q3=0;if(i==0)  //如果出现前导0和-0 continue{if(b[0]=='?'&&l1>1) continue;if(c[0]=='?'&&l2>1) continue;if(d[0]=='?'&&l3>1) continue;if(b[0]=='-'&&b[1]=='?') continue;if(c[0]=='-'&&c[1]=='?') continue;if(d[0]=='-'&&d[1]=='?') continue;}for(j=0; j<l1; j++)  //求第一个数{if(b[j]=='-') continue;if(b[j]>='0'&&b[j]<='9'){g=b[j]-'0';q1=q1*10+g;}if(b[j]=='?') q1=q1*10+i;}if(b[0]=='-') q1=-q1;for(j=0; j<l2; j++) //求第二个数{if(c[j]=='-') continue;if(c[j]>='0'&&c[j]<='9'){g=c[j]-'0';q2=q2*10+g;}if(c[j]=='?') q2=q2*10+i;}if(c[0]=='-') q2=-q2;for(j=0; j<l3; j++) //求第三个数{if(d[j]=='-') continue;if(d[j]>='0'&&d[j]<='9'){g=d[j]-'0';q3=q3*10+g;}if(d[j]=='?') q3=q3*10+i;}if(d[0]=='-') q3=-q3;if(fh=='+'&&q1+q2==q3)      ans=i;if(fh=='-'&&q1-q2==q3)      ans=i;if(fh=='*'&&q1*q2==q3)      ans=i;if(ans!=-1) break;}printf("%d\n",ans);
}int main()
{int T;scanf("%d",&T);while(T--){scanf("%s",a);init();solve_f();solve_bcd();solve_ans();}return 0;
}

Gym 101653T Runes (模拟)相关推荐

  1. Gym - 101653T Runes [模拟]

    题意:给你一个字符串,由[number1][op][number2]=[number3]组成,number中不能含有前导零,也不能有-0,其中有'?'表示一种0~9的字符,且不包含已存在字符,问能否有 ...

  2. codeforces gym 100827A Runes

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

  3. Codeforces Gym 100286I iSharp 模拟

    原题地址:http://codeforces.com/gym/100286/attachments/download/2013/20082009-acmicpc-northeastern-europe ...

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

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

  5. python box2d 教程_适合初学者的强化学习教程(1): python使用gym实践和注意事项

    作者:知乎@Ai酱 安装步骤和报错问题 安装 pip install gym 报错 AttributeError: module 'gym.envs.box2d' has no attribute ' ...

  6. 适合初学者的强化学习教程(1): python使用gym实践和注意事项

    作者:知乎@Ai酱 安装步骤和报错问题 安装 pip install gym 报错 AttributeError: module 'gym.envs.box2d' has no attribute ' ...

  7. [Neerc2016]Mole Tunnels (模拟费用流)

    题目链接:http://codeforces.com/gym/101190 SOLUTION: 模拟费用流 这题看完之后很容易想到费用流,但是n太大了不能直接跑. 我们考虑模拟这个费用流的增广过程,每 ...

  8. 亚马逊一口气发布了9款机器学习产品

    AI前线导读: 今天,在拉斯维加斯举行的AWS re:invent进行到第三个日程,大会上,AWS CEO Andy Jassy在主题演讲上一口气做了二十个新发布,其中包括9款机器学习产品! 更多干货 ...

  9. 机器学习框架Ray——Actor模型

    1. Actors Ray中的远程函数被认为是功能性强和副作用低的框架. 仅限于远程函数的情况下,可以为我们提供分布式函数编程,这对于许多使用情况非常有用,但在实践中会受到一些限制. Ray通过act ...

最新文章

  1. su su - sudo
  2. 力扣209-长度最小的子数组(Java,双指针解法)
  3. 解释HTTP中Get和Post。它们有什么区别,哪个使用时更加安全?
  4. 大学计算机ppt学校题材实验报告,PPT实验报告模板2篇
  5. (三)CDA 数据分析师Level1考试新版大纲解析(自己整理)PART 3 数据库应用
  6. MATLAB线性规划整数变量,Matlab 整数线性规划问题模型代码
  7. HTML+CSS知识点总结(一)
  8. java 只保留字母_java编程问题,急急急!输入一个字符串,如果字符串中存在字母a的次数大于1,则只保留第一个a,...
  9. Ubuntu常用命令汇总
  10. 服务器怎么在线播放flv视频,服务器无法播放flv文件
  11. redis为什么这么快
  12. android 2k屏分辨率是多少,5.5英寸2K分辨率2.5D屏幕
  13. 【Redis】分布式限流与Redis实现限流的四种方式(Redis专栏启动)
  14. 贵州计算机教师资格证报名条件,贵州教师资格证报名条件
  15. 逻辑推理之赵钱孙李周
  16. 1109 擅长C – PAT乙级真题
  17. 强烈推荐 GitHub 上值得前端学习的开源实战项目
  18. 旋风解析磁力php,梦见旋风磁力好不好?
  19. 服务器维护中启动不了怎么办,服务器不能正常启动了怎么办
  20. 计算机控制系统硬件组成实验报告,计算机硬件的组装实验报告

热门文章

  1. C++单链表学生管理系统(有登录界面)
  2. 解决AutoCAD软件打开CASS软件成图字体显示成问号的问题
  3. 把软件装进U盘,真正做到即插即用
  4. Vue 3.0终于来了!官方凌晨开源代码,导读一波
  5. 巨强大的免费LOGO在线制作工具
  6. 你连HTTPS 原理都不懂,还给我讲“中间人攻击”
  7. wpf研究之道-grid控件
  8. python做学生管理系统数据库模型_数据库建模:学生信息系统搭建实验
  9. jmeter压力测试并发
  10. x265代码解读博客合集