高精度模板_C++
高精度压位,压9位
read:读入
write:输出
copy:赋值
change:交换
empty:清0
cmp:比较大小,相当于小于号
plus:加法
dec:减法
multy:乘法
除法实在不会写压位的……QuQ
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long LL;
const int W=,N=,w[W]={,,1e2,1e3,1e4,1e5,1e6,1e7,1e8},Max=1e9;
int c[N];
char s[N*W];
namespace bigint
{
inline void read(int *p)
{
int i,j,k;
for (s[j=]=getchar();s[j]!=' '&&s[j]!='\n'&&s[j]!=EOF;s[++j]=getchar());
for (i=,k=W;j>;*(p+i)+=w[k++]*(s[--j]-'')) if (k==W) k=,i++;
*p=i;
}
inline void write(int *p)
{
int i=*p,j;
printf("%d",*(p+*p));
while (--i)
{
for (j=W;--j&&(*(p+i)<w[j]);) putchar('');
printf("%d",*(p+i));
}
}
inline void copy(int *pa,int *pb)
{
int i;
for (i=;i<=*pb;i++) *(pa+i)=*(pb+i);
}
inline void change(int *pa,int *pb)
{
int i,t=max(*pa,*pb);
for (i=;i<=t;i++) swap(*(pa+i),*(pb+i));
}
inline void empty(int *p)
{
int i;
for (i=;i<=*p;i++) *(p+i)=;
*p=;
}
inline bool cmp(int *pa,int *pb)
{
if (*pa==*pb)
{
int i;
for (i=*pa;i;i--)
{
if (*(pa+i)==*(pb+i)) continue;
return *(pa+i)<*(pb+i);
}
}
return *pa<*pb;
}
inline void plus(int *p,int *pa,int *pb)
{
int i,t=max(*pa,*pb);
bool x=;
for (i=;i<=t;i++)
{
*(p+i)=*(pa+i)+*(pb+i)+x;
if (*(p+i)>=Max)
{
x=;
*(p+i)-=Max;
}
else x=;
}
*p=t;
if (x) *(p+(++(*p)))=;
}
inline void dec(int *p,int *pa,int *pb)
{
bool k=;
int i;
for (i=;i<=*pa;i++)
{
*(p+i)=*(pa+i)-*(pb+i)-k;
if (*(p+i)<)
{
*(p+i)+=Max;
k=;
}
else k=;
}
*p=*pa;
while (*(p+*p)==) (*p)--;
}
inline void multy(int *p,int *pa,int *pb)
{
LL k;
int i,j;
for (i=;i<=*pa;i++)
for (j=;j<=*pb;j++)
{
k=(LL)(*(pa+i))*(*(pb+j));
c[i+j-]=k%Max;
c[i+j]=k/Max;
c[]=i+j;
if (k<Max) c[]--;
plus(p,p,c);
c[i+j-]=;
c[i+j]=;
}
*p=c[];
}
}
int main()
{ return ;
}
高精度模板_C++的更多相关文章
- [Template]高精度模板
重新写一下高精度模板(不要问我为什么) 自认为代码风格比较漂亮(雾 如果有更好的写法欢迎赐教 封装结构体big B是压位用的进制,W是每位长度 size表示长度,d[]就是保存的数字,倒着保存,从1开 ...
- C++高精度模板
原文地址:http://blog.csdn.net/wall_f/article/details/8373395 原文只附代码,没有解析,本文增加了一些对代码的解释. 请注意:本模板不涉及实数运算与负 ...
- [note]高精度模板
高精度模板 先定义一个struct struct gj{ int l,s[N]; bool fh; void Print(){ if(fh)putchar('-'); for(int i=l;i> ...
- 高精度模板 支持各种运算 c++
绪言 自从有了高精度模板,妈妈再也不用怕我不会打高精度了! 代码 代码长度与日俱增啊~~~ #include<iostream> #include<cstring> #incl ...
- 高精度模板 Luogu P1932 A+B & A-B & A*B & A/B Problem
P1932 A+B & A-B & A*B & A/B Problem 题目背景 这个题目很新颖吧!!! 题目描述 求A.B的和差积商余! 输入输出格式 输入格式: 两个数两行 ...
- Java 大数、高精度模板
介绍: java中用于操作大数的类主要有两个,一个是BigInteger,代表大整数类用于对大整数进行操作,另一个是BigDecimal,代表高精度类,用于对比较大或精度比较高的浮点型数据进行操作.因 ...
- JAVA高精度模板
刚开始还坚持用C++写高精来着,后来发现JAVA写高精方便太多了,所以也来学习一下JAVA高精度的模板. 参考:https://www.cnblogs.com/imzscilovecode/p/883 ...
- 高精度模板 洛谷Luogu P1932 A+B & A-B & A*B & A/B Problem
P1932 A+B & A-B & A*B & A/B Problem 题目背景 这个题目很新颖吧!!! 题目描述 求A.B的和差积商余! 输入输出格式 输入格式: 两个数两行 ...
- HashTable类模板_C++
好久没看数据结构了,今天终于要用到hash,整理一下写了个hash类模板 template<typename T> class DataType { public: T key; Data ...
随机推荐
- C# Excel2007 导出生成 2003兼容格式
//导出2007格式 AppWb.Saved = true; //保存工作薄 AppExcel.ActiveWorkbook.SaveCopyAs(FilePath); //导出2003格式 AppW ...
- Qt Creator子目录项目-类似VS解决方案
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt Creator子目录项目-类似VS解决方案 本文地址:http://techie ...
- 第二部分shell编程2正则(grepegrepsedawk)
一.grep/egrep 1. 语法+选项语法: grep [-cinvABC] 'word' filename -c :打印符合要求的行数-n :在输出符合要求的行的同时连同行号一起输出 -v :打 ...
- 重载和const参数
const仅能用于在定义函数签名时,区分是为引用定义参数,还是为指针定义参数.定义基本类型type(如int等),从重载的观点来看,const int和int是相同的. const long& ...
- Stax解析XML示例代码
package org.itat.stax; import java.io.IOException; import java.io.InputStream; import javax.xml.pars ...
- poj2018——Best Cow Fences
Description Farmer John's farm consists of a long row of N (1 <= N <= 100,000)fields. Each fie ...
- jQuery全选反选实例
1. $('#tb:checkbox').each(function(){ 每次都会执行 全选-取消操作,注意$('#tb :checkbox').prop('checked',true); tb后面 ...
- 「CodePlus 2017 12 月赛」白金元首与独舞
description 题面 data range \[ 1 \leq T \leq 10, 1 \leq n, m \leq 200 , 0 \leq k \leq \min(nm, 300)\] ...
- POJ3469:Dual Core CPU——题解
http://poj.org/problem?id=3469 题目大意: 两个CPU,处理每个任务有不同的代价,有些对任务如果不在同一个CPU就会增加代价,求最小代价. ——————————————— ...
- BZOJ4943 & 洛谷3823 & UOJ315:[NOI2017]蚯蚓排队——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4943 http://uoj.ac/problem/315 https://www.luogu.or ...