题目大意:叫你求A × B。

解题思路:高精度。你可千万别小看这道题,这是2017年7月27日的信息。

不过也不要怕,根据twd2的题解里写的,用普通的高精度加上一些小小的修改是可以过的。

那么直接上代码吧。

C++ Code:

#include<cstdio>
#include<cstring>
#include<cctype>
using namespace std;
char s[5005];
long long num1[701],num2[701],num3[1700];
int main(){
int n;
scanf("%d",&n);
while(n--){
memset(num1,0,sizeof(num1));
memset(num2,0,sizeof(num2));
int len=0;
char c=getchar();
while(!isdigit(c))c=getchar();
while(isdigit(c)){
s[++len]=c;
c=getchar();
}
int w=1,l1=1,l2=1;
for(int i=len;i;i--){
if(w==100000000){
w=1;l1++;
}
num1[l1]+=w*(s[i]-'0');
w*=10;
}
len=0;
while(!isdigit(c))c=getchar();
while(isdigit(c)){
s[++len]=c;
c=getchar();
}
w=1;
for(int i=len;i;i--){
if(w==100000000){
w=1;l2++;
}
num2[l2]+=w*(s[i]-'0');
w*=10;
}
memset(num3,0,sizeof(num3));
int l3=l1+l2+4;
for(int i=1;i<=l1;i++)
for(int j=1;j<=l2;j++)num3[i+j-1]+=num1[i]*num2[j];
for(int i=1;i<=l1+l2+3;i++)
if(num3[i]>=100000000){
num3[i+1]+=num3[i]/100000000;
num3[i]%=100000000;
}
while(num3[l3]==0&&l3>1)l3--;
printf("%lld",num3[l3]);
for(int i=l3-1;i;i--)printf("%08lld",num3[i]);
puts("");
}
return 0;
}

这是时间使用情况:

我觉得时间用的并不是很多,就把乘法和除法、取模放在一块,结果居然被我卡过去了!!

C++ Code:

#include<cstdio>
#include<cstring>
#include<cctype>
using namespace std;
char s[5005];
long long num1[701],num2[701],num3[1700];
int main(){
int n;
scanf("%d",&n);
while(n--){
memset(num1,0,sizeof(num1));
memset(num2,0,sizeof(num2));
int len=0;
char c=getchar();
while(!isdigit(c))c=getchar();
while(isdigit(c)){
s[++len]=c;
c=getchar();
}
int w=1,l1=1,l2=1;
for(int i=len;i;i--){
if(w==100000000){
w=1;l1++;
}
num1[l1]+=w*(s[i]-'0');
w*=10;
}
len=0;
while(!isdigit(c))c=getchar();
while(isdigit(c)){
s[++len]=c;
c=getchar();
}
w=1;
for(int i=len;i;i--){
if(w==100000000){
w=1;l2++;
}
num2[l2]+=w*(s[i]-'0');
w*=10;
}
memset(num3,0,sizeof(num3));
int l3=l1+l2+4;
for(int i=1;i<=l1;i++)
for(int j=1;j<=l2;j++){
num3[i+j-1]+=num1[i]*num2[j];
num3[i+j]+=num3[i+j-1]/100000000;
num3[i+j-1]%=100000000;
}
while(num3[l3]==0&&l3>1)l3--;
printf("%lld",num3[l3]);
for(int i=l3-1;i;i--)printf("%08lld",num3[i]);
puts("");
}
return 0;
}

这是时间使用情况,可以发现,除了第一个点,其他都是900+ms的,有一个甚至达到了996ms!!这说明我RP好23333333。

[Vijos P2000]A x B Problem的更多相关文章

  1. 【BZOJ 1061】【Vijos 1825】【NOI 2008】志愿者招募

    http://www.lydsy.com/JudgeOnline/problem.php?id=1061 https://vijos.org/p/1825 直接上姜爷论文... #include< ...

  2. 【BZOJ 2541】【Vijos 1366】【CTSC 2000】冰原探险

    http://www.lydsy.com/JudgeOnline/problem.php?id=2541 https://vijos.org/p/1366 loli秘制大爆搜_(:з」∠)_坑了好久啊 ...

  3. 【BZOJ 1065】【Vijos 1826】【NOI 2008】奥运物流

    http://www.lydsy.com/JudgeOnline/problem.php?id=1065 https://vijos.org/p/1826 好难的题啊TWT ∈我这辈子也想不出来系列~ ...

  4. [题解]vijos & codevs 能量项链

    a { text-decoration: none; font-family: "comic sans ms" } .math { color: gray; font-family ...

  5. BZOJ 1411&&Vijos 1544 : [ZJOI2009]硬币游戏【递推,快速幂】

    1411: [ZJOI2009]硬币游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 897  Solved: 394[Submit][Status ...

  6. vijos 1605 双栈排序 - 贪心 - 二分图

    题目传送门 传送门I 传送门II 题目大意 双栈排序,问最小字典序操作序列. 不能发现两个数$a_{j}, a_{k}\ \ (j < k)$不能放在同一个栈的充分必要条件时存在一个$i$使得$ ...

  7. Vijos 1404 遭遇战 - 动态规划 - 线段树 - 最短路 - 堆

    背景 你知道吗,SQ Class的人都很喜欢打CS.(不知道CS是什么的人不用参加这次比赛). 描述 今天,他们在打一张叫DUSTII的地图,万恶的恐怖分子要炸掉藏在A区的SQC论坛服务器!我们SQC ...

  8. NOIP 车站分级 (luogu 1983 & codevs 3294 & vijos 1851) - 拓扑排序 - bitset

    描述 一条单向的铁路线上,依次有编号为 1, 2, ..., n 的 n 个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车 ...

  9. Vijos 1308 埃及分数 - 迭代加深

    描述 在古埃及,人们使用单位分数的和(形如1/a的, a是自然数)表示一切有理数.如:2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为加数中有相同的.对于一个分数a/b,表示方法有很多种, ...

随机推荐

  1. NotFoundHttpException

    报错:NotFoundHttpException 这种一般都是路由配置错误

  2. HDU 5421 Victor and String (回文自动机)

    题目大意:让你维护一个字符串,支持在开头结尾插入字符,以及查询本质不同的回文串数量以及回文串总数量 开头结尾都维护一个$last$指针,如果插入新字符后,整个串是一个回文串,就把另一个$last$赋值 ...

  3. MATLAB解析PFM格式图像

    http://www.p-chao.com/ja/2016-09-27/matlab%E8%A7%A3%E6%9E%90pfm%E6%A0%BC%E5%BC%8F%E5%9B%BE%E5%83%8F/ ...

  4. Python3的URL编码解码

    前言 博主最近在用python3练习一些爬虫脚本的时候,发现一些url的编码问题,在浏览器提交请求api时,如果url中包含汉子,就会被自动编码掉.呈现的结果是 ==> %xx%xx%xx.如果 ...

  5. b.WHERE使用中多行子查询(适用于in,any,all条件)

    b.多行子查询(适用于in,any,all条件)   //查询与SCOTT和MARTIN在同一个部门的同事的编号和名称   select empno,ename   from emp   where ...

  6. NYOJ 915 +-字符串【贪心】

    +-字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描写叙述 Shiva得到了两个仅仅有加号和减号的字符串,字串长度同样.Shiva一次能够把一个加号和它相邻的减号交换 ...

  7. Linux内核中进程上下文和中断上下文的理解

    參考: http://www.embedu.org/Column/Column240.htm http://www.cnblogs.com/Anker/p/3269106.html 首先明白一个概念: ...

  8. android选择图片或拍照图片上传到server(包含上传參数)

    在9ria论坛看到的.还没測试,先Mark与大家分享一下. 近期要搞一个项目,须要上传相冊和拍照的图片.不负所望,最终完毕了! 只是须要说明一下,事实上网上非常多教程拍照的图片.都是缩略图不是非常清晰 ...

  9. poj3352Road Construction 边双连通+伪缩点

    /* 对于边双连通分支,求法更为简单. 仅仅需在求出全部的桥以后,把桥边删除.\ 原图变成了多个连通块,则每一个连通块就是一个边双连通分支. 桥不属于不论什么 一个边双连通分支,其余的边和每一个顶点都 ...

  10. Testbench代码设计技巧

    Testbench代码设计技巧 " There are many ways " to code a test case, it all depens on the creativi ...