题目链接:点击查看

题目大意:我们规定特殊数字是除了最高位之外其他位置全是0的数,现在给出一个乘法表达式,请将这个式子拆分为只由特殊数字组成的乘法式子

题目分析:简单模拟题,我们需要先知道该怎么模拟才行,既然题目明确说了,我们需要拆分成只由特殊数字所组成的式子,这里直接举个简单的例子应该就没问题了:

12345 * 54321

=(10000+2000+300+40+5)*(50000+4000+300+20+1)

我们可以发现,每个数字都可以拆分成上述形式,也就是许多个特殊数字之和的形式,将两个因子都拆分成这个形式,然后去掉括号,就是我们要求的答案了,注意一下答案的正负性,稍微判断一下就好了

还有一个需要注意的地方就是,虽然题目中说了数字最大只有1e9,但是我们用字符串更方便处理,详细的见代码吧,简单模拟

#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cstring>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
#include<sstream>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e5+100;int f[10];int pa[15],pb[15];int main()
{
//  freopen("input.txt","r",stdin);f[0]=1;for(int i=1;i<10;i++)f[i]=f[i-1]*10;int w;cin>>w;while(w--){string a,b;cin>>a>>b;int lena=a.size();int lenb=b.size();a=" "+a;b=" "+b;int opa=a[1]=='-'?-1:1;int opb=b[1]=='-'?-1:1;int cnta=0,cntb=0;for(int i=opa==1?1:2;i<=lena;i++)if(a[i]-'0')pa[++cnta]=i;for(int i=opb==1?1:2;i<=lenb;i++)if(b[i]-'0')pb[++cntb]=i;int ff=opa*opb;for(int i=1;i<=cnta;i++)for(int j=1;j<=cntb;j++){if(i==1&&j==1){if(ff==1)printf("%d x %d",(a[pa[i]]-'0')*f[lena-pa[i]],(b[pb[j]]-'0')*f[lenb-pb[j]]);elseprintf("-%d x %d",(a[pa[i]]-'0')*f[lena-pa[i]],(b[pb[j]]-'0')*f[lenb-pb[j]]);}elseprintf(" %c %d x %d",ff==1?'+':'-',(a[pa[i]]-'0')*f[lena-pa[i]],(b[pb[j]]-'0')*f[lenb-pb[j]]);}printf("\n");}return 0;
}

Gym - 101972A Multiplication Dilemma(模拟)相关推荐

  1. Uva 442 - Matrix Chain Multiplication(模拟)

    题目链接 https://cn.vjudge.net/problem/UVA-442 [题意] 输入n个矩阵的维度和一些矩阵链乘表达式,输出乘法次数.如果乘法无法执行,输出error.假定A是m×n矩 ...

  2. 2018青岛ICPC ZOJ 4061: Magic Multiplication(模拟)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4061 题意: 定义一种新型运算符: 也就是说Gao(23, 45 ...

  3. GYM MaratonIME plays Chess 模拟

    题目链接 GYM101744D 题解 题意 给出一个棋盘,上面分布着许多棋子,判断能否用自己的任意一个棋子在一步之内吃到指定的对面的棋子. 思路 模拟! 还是有很多可以回味的地方滴. 输入方面 可以看 ...

  4. A - Multiplication Dilemma (思维)( 2018 ACM ICPC Arabella Collegiate Programming Contest)

    滴答滴答---题目链接 Multiplication operation is not always easy! For example, it is hard to calculate 27 × 2 ...

  5. Competitive Programming 3题解

    题目一览: Competitive Programming 3: The New Lower Bound of Programming Contests(1) Competitive Programm ...

  6. 2019组队赛第二场(ACM International Collegiate Programming Contest, Arabella Collegiate 解题报告 Apare_xzc

    2019组队赛第二场(ACM International Collegiate Programming Contest, Arabella Collegiate 解题报告 by xzc,zx,lj 先 ...

  7. AOAPC I: Beginning Algorithm Contests 题解

    AOAPC I: Beginning Algorithm Contests 题解 AOAPC I: Beginning Algorithm Contests (Rujia Liu) - Virtual ...

  8. ICPC程序设计题解书籍系列之五:吴永辉:《数据结构编程实验》(第2版)

    第1章 简单计算 UVALive2362 POJ1004 HDU1064 ZOJ1048 Financial Management[数学+水题] - 海岛Blog - CSDN博客 POJ1552 H ...

  9. ICPC程序设计题解书籍系列之一:刘汝佳:《算法竞赛入门经典》(第2版)

    题是书中的题,部分解法参照了书中的解法,不少解法都做了简化和改进. 做程序,就要努力做到自己的程序是最好的! 第3章 数组和字符串(例题) POJ1488 UVA272 UVALive5381 TEX ...

最新文章

  1. altium designer PCB把板子翻过来看
  2. 数学在机器学习中的重要性[by Dahua Lin]
  3. 一文了解OOM及解决方案
  4. docker使用镜像报错:standard_init_linux.go:211: exec user process caused “exec format error“
  5. 手写 单隐藏层神经网络_反向传播(Matlab实现)
  6. 掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等)...
  7. TCP/IP 协议栈 -- 编写UDP客户端注意细节
  8. python中property干什么用的?
  9. 使用socket方式连接Nginx优化php-fpm性能
  10. 一键解决“请卸载所有32位office程序,然后重试安装64位office”
  11. 金橙子打标卡EZCAD软件各种延时说明
  12. 计算机版的微信的功能是什么,计算机上的微信有没有收藏功能?电脑端如何打开微信收藏?...
  13. SpringSecurity实战(八)-通用第三方登陆-自定义认证配置实现
  14. 如何利用花生壳动态域名解析服务搭建http服务。
  15. session是什么
  16. 最全哈夫曼树哈夫曼编码讲解,兄弟你值得拥有
  17. 关于nvidia-smi和nvcc -V显示的cuda版本不一致的问题
  18. 慕课Java第三季学习及笔记整理
  19. 编译Nginx服务部署静态网站
  20. kafka的isr机制

热门文章

  1. Nacos与Eureka的区别有哪些?
  2. AQS.doReleaseShared
  3. Redis中的客户端Sharding
  4. 添加tomcat7插件设置jdk编译版本
  5. 商品详情及规格参数的渲染
  6. tomcat_动态java项目的目录结构
  7. 代理模式coding-静态代理
  8. Dubbo + Zookeeper入门初探
  9. 元素的选中问题 元素选中的问题 切换复选框选中 全选和全不选
  10. Active Directory 定义了五种操作主机角色