题目传送门:https://www.luogu.org/problemnew/show/P2005

高精除低精:https://www.cnblogs.com/AKMer/p/9724556.html

高精度除法板子。和高精除低精不同的是,除数不能直接去和当前位相除,而是能减一次算一次……

时间复杂度:\(O(len)\)

空间复杂度:\(O(len)\)

代码如下:

#include <cstdio>
#include <cstring>
using namespace std; const int maxn=25005; char s[maxn]; struct Bignum {
int num[maxn]; void make() {
num[0]=strlen(s+1);
for(int i=1;i<=num[0];i++)
num[i]=s[num[0]-i+1]-'0';
} void print() {
for(int i=num[0];i;i--)
printf("%d",num[i]);
} bool operator>=(const Bignum &a)const {
if(num[0]!=a.num[0])return num[0]>a.num[0];
for(int i=num[0];i;i--)
if(num[i]!=a.num[i])return num[i]>a.num[i];
return 1;
}//比较 Bignum operator-(const Bignum &a)const {
Bignum c;memcpy(c.num,num,sizeof(c.num));
for(int i=1;i<=c.num[0];i++) {
if(c.num[i]<a.num[i])c.num[i+1]--,c.num[i]+=10;
c.num[i]-=a.num[i];
}
while(!c.num[c.num[0]]&&c.num[0]>1)c.num[0]--;
return c;
}//高精度减法
}a,b,c; void cpy(Bignum &a,int id,Bignum fake) {
for(int i=1;i<=fake.num[0];i++)
a.num[id+i-1]=fake.num[i];
a.num[0]=fake.num[0]+id-1;
}//把fake丢到a里,并且以id位开始,1到id-1都是0 Bignum operator/(Bignum a,Bignum b) {
Bignum c;memset(c.num,0,sizeof(c.num));
c.num[0]=a.num[0]-b.num[0]+1;
for(int i=c.num[0];i;i--) {
Bignum tmp;memset(tmp.num,0,sizeof(tmp.num));
cpy(tmp,i,b);while(a>=tmp)c.num[i]++,a=a-tmp;//能减就减
}while(c.num[0]>1&&!c.num[c.num[0]])c.num[0]--;
return c;
} int main() {
scanf("%s",s+1);a.make();
scanf("%s",s+1);b.make();
c=a/b;c.print();
return 0;
}

洛谷【P2005】A/B Problem II的更多相关文章

  1. 洛谷 P2005 A/B Problem II

    P2005 A/B Problem II 题目背景 为了让大家紧张的心情放松一下,这一题题是一道非常简单的题目. 题目描述 给出正整数N和M,请你计算N div M(N/M的下取整). 输入输出格式 ...

  2. 洛谷1001 A+B Problem

    洛谷1001 A+B Problem 本题地址:http://www.luogu.org/problem/show?pid=1001 题目描述 输入两个整数a,b,输出它们的和(|a|,|b|< ...

  3. 洛谷1303 A*B Problem 解题报告

    洛谷1303 A*B Problem 本题地址:http://www.luogu.org/problem/show?pid=1303 题目描述 求两数的积. 输入输出格式 输入格式: 两个数 输出格式 ...

  4. 洛谷1601 A+B Problem(高精) 解题报告

    洛谷1601 A+B Problem(高精) 本题地址:http://www.luogu.org/problem/show?pid=1601 题目背景 无 题目描述 高精度加法,x相当于a+b pro ...

  5. 洛谷P1865 A % B Problem

    1.洛谷P1865 A % B Problem 题目背景 题目名称是吸引你点进来的 实际上该题还是很水的 题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行 ...

  6. 洛谷 P2616 [USACO10JAN]购买饲料II Buying Feed, II

    洛谷 P2616 [USACO10JAN]购买饲料II Buying Feed, II https://www.luogu.org/problemnew/show/P2616 题目描述 Farmer ...

  7. 洛谷 P1182 数列分段 Section II

    洛谷 P1182 数列分段 Section II 洛谷传送门 题目描述 对于给定的一个长度为N的正整数数列A-iA−i,现要将其分成M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. ...

  8. 洛谷P3412 仓鼠找$Sugar\ II$题解(期望+统计论?)

    洛谷P3412 仓鼠找\(Sugar\ II\)题解(期望+统计论?) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327573 原题链接:洛谷P3412 ...

  9. 洛谷P1288 取数游戏II(博弈)

    洛谷P1288 取数游戏II 先手必胜的条件需要满足如下中至少 \(1\) 条: 从初始位置向左走到第一个 \(0\) 的位置,经过边的数目为偶数(包含 \(0\) 这条边). 从初始位置向右走到第一 ...

  10. 洛谷P1919 A*B problem 快速傅里叶变换模板 [FFT]

    题目传送门 A*B problem 题目描述 给出两个n位10进制整数x和y,你需要计算x*y. 输入输出格式 输入格式: 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数 ...

随机推荐

  1. 【BZOJ4269】再见Xor 高斯消元

    [BZOJ4269]再见Xor Description 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值. Input 第一行一个正整 ...

  2. Python PhatomJS 和Selenium动态加载页面 获取图片内容

    如果您觉得感兴趣的话,可以添加我的微信公众号:一步一步学Python![](http://images2017.cnblogs.com/blog/993869/201711/993869-201711 ...

  3. Earth Hour(最短路)

    Earth Hour Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total ...

  4. C++模板类[初步]

    /* * stacktp.h * * Created on: 2014年3月29日 * Author: */ /** * - 模板类的概念,与使用 * -# export template <c ...

  5. jquery 访问后台方法 并且获取后方法返回的数据

    说明: 1.开发环境 asp.net MVC4 c#语言. 后台方法位于控制器中ProController.cs中 后台方法如下: public string GetNumber() { string ...

  6. A visual proof that neural nets can compute any function

    http://neuralnetworksanddeeplearning.com/chap4.html In essence, we're using our single-layer neural ...

  7. html5 (新一代的html)

    简介 h5的新特性: cavas / video / audio / cache / element / form 最小的h5文档: <!DOCTYPE html> <html> ...

  8. appium报'Command 'D\:\\android-sdk-windows\\platform-tools\\adb.exe -P 5037 -s “adb device” shell pm clear appPackage' exited with code 1'

    解决方法:是因为手机开发者模式没有允许USB调试(安全模式),打开即可

  9. python字典中包含列表时:查找字典中某个元素及赋值

    直接上代码: 运行效果:

  10. Unknown Entity namespace alias 'BaseMemberBundle'.

    $em = $this->getDoctrine()->getManager('member');//要记得写上member $repo = $em->getRepository(' ...