Gym - 101972A Multiplication Dilemma(模拟)
题目链接:点击查看
题目大意:我们规定特殊数字是除了最高位之外其他位置全是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(模拟)相关推荐
- Uva 442 - Matrix Chain Multiplication(模拟)
题目链接 https://cn.vjudge.net/problem/UVA-442 [题意] 输入n个矩阵的维度和一些矩阵链乘表达式,输出乘法次数.如果乘法无法执行,输出error.假定A是m×n矩 ...
- 2018青岛ICPC ZOJ 4061: Magic Multiplication(模拟)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4061 题意: 定义一种新型运算符: 也就是说Gao(23, 45 ...
- GYM MaratonIME plays Chess 模拟
题目链接 GYM101744D 题解 题意 给出一个棋盘,上面分布着许多棋子,判断能否用自己的任意一个棋子在一步之内吃到指定的对面的棋子. 思路 模拟! 还是有很多可以回味的地方滴. 输入方面 可以看 ...
- 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 ...
- Competitive Programming 3题解
题目一览: Competitive Programming 3: The New Lower Bound of Programming Contests(1) Competitive Programm ...
- 2019组队赛第二场(ACM International Collegiate Programming Contest, Arabella Collegiate 解题报告 Apare_xzc
2019组队赛第二场(ACM International Collegiate Programming Contest, Arabella Collegiate 解题报告 by xzc,zx,lj 先 ...
- AOAPC I: Beginning Algorithm Contests 题解
AOAPC I: Beginning Algorithm Contests 题解 AOAPC I: Beginning Algorithm Contests (Rujia Liu) - Virtual ...
- ICPC程序设计题解书籍系列之五:吴永辉:《数据结构编程实验》(第2版)
第1章 简单计算 UVALive2362 POJ1004 HDU1064 ZOJ1048 Financial Management[数学+水题] - 海岛Blog - CSDN博客 POJ1552 H ...
- ICPC程序设计题解书籍系列之一:刘汝佳:《算法竞赛入门经典》(第2版)
题是书中的题,部分解法参照了书中的解法,不少解法都做了简化和改进. 做程序,就要努力做到自己的程序是最好的! 第3章 数组和字符串(例题) POJ1488 UVA272 UVALive5381 TEX ...
最新文章
- altium designer PCB把板子翻过来看
- 数学在机器学习中的重要性[by Dahua Lin]
- 一文了解OOM及解决方案
- docker使用镜像报错:standard_init_linux.go:211: exec user process caused “exec format error“
- 手写 单隐藏层神经网络_反向传播(Matlab实现)
- 掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等)...
- TCP/IP 协议栈 -- 编写UDP客户端注意细节
- python中property干什么用的?
- 使用socket方式连接Nginx优化php-fpm性能
- 一键解决“请卸载所有32位office程序,然后重试安装64位office”
- 金橙子打标卡EZCAD软件各种延时说明
- 计算机版的微信的功能是什么,计算机上的微信有没有收藏功能?电脑端如何打开微信收藏?...
- SpringSecurity实战(八)-通用第三方登陆-自定义认证配置实现
- 如何利用花生壳动态域名解析服务搭建http服务。
- session是什么
- 最全哈夫曼树哈夫曼编码讲解,兄弟你值得拥有
- 关于nvidia-smi和nvcc -V显示的cuda版本不一致的问题
- 慕课Java第三季学习及笔记整理
- 编译Nginx服务部署静态网站
- kafka的isr机制