高精度模板_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 ...
随机推荐
- 【alpha】Scrum站立会议第2次....10.17
小组名称:nice! 小组成员:李权 于淼 杨柳 刘芳芳 项目内容:约跑app 1.任务进度 成员 已完成 今日完成 李权 数据库设计 消息发送代码实现 于淼 注册.登录界面,以及登录界面后台代码.发 ...
- C的强制转换和C++的强制转换(转)
C的强制转换: (type)<expression> 其中,type为类型描述符,如int,float等.<expression>为表达式.经强制类型转换运算符运算后,返回一个 ...
- 使用gdb查看栈帧的情况,有ebp
0x7fffffffdb30: 0x00000000 0x00000000 0xf7ffe700 0x0000001a0x7fffffffdb40: 0xffffdc98 ...
- JVM(二)GC
GC简介 Java堆内存 在运行时,java的实例被存放在堆内存区域.当一个对象不在被引用,满足条件就会从堆内存移除并且内存空间被回收.堆内存由三个主要区域 1.新生代 Eden空间(任何实例 ...
- DBGrid相关技术整理
DBGrid相关技术整理: 注:对于DBGrid相关属性.方法的学习融入到技术整理过程中 一,多选 设置属性: Options->dgMultiSelect = True; ->dgRow ...
- 深入理解java内置锁(synchronized)和显式锁(ReentrantLock)
多线程编程中,当代码需要同步时我们会用到锁.Java为我们提供了内置锁(synchronized)和显式锁(ReentrantLock)两种同步方式.显式锁是JDK1.5引入的,这两种锁有什么异同呢? ...
- 2018 杭电多校1 - Distinct Values
题目链接 Problem Description Chiaki has an array of n positive integers. You are told some facts about t ...
- bzoj2676 Contra
题意: 给定N,R,Q,S 有N个关卡,初始有Q条命,且任意时刻最多只能有Q条命 每通过一个关卡,会得到u分和1条命,其中u=min(最近一次连续通过的关数,R) 若没有通过这个关卡,将失去一条命,并 ...
- 转:关于Latent Dirichlet Allocation及Hierarchical LDA模型的必读文章和相关代码
关于Latent Dirichlet Allocation及Hierarchical LDA模型的必读文章和相关代码 转: http://andyliuxs.iteye.com/blog/105174 ...
- AOJ.综合训练.2016-11-24
AOJ.综合训练 友情提示:不要复制粘贴,看完解析先自己尝试写一下.不行再看题解.这样才会有提高! A题 金字塔 题意分析 分别读入10个数,按照他给出的格式输出就行了.注意每有7个字符(包括空格). ...