博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
压位高精
阅读量:6277 次
发布时间:2019-06-22

本文共 823 字,大约阅读时间需要 2 分钟。

压位高精:即通过将原来数组中一个位置存一位数,改为一个位置存p位数(8-10)。本质上是一种利用进制转换思想的压缩方式。 压位高精VS普通高精优势: 1.节省空间。(10倍以上) 2.节省时间(循环次数少)(10倍) 3.在对于高精与低精(乘法不超int)运算时,可以利用进制较高的优势,达到简化代码量的目的。(不需要频繁进位)

例题:洛谷 P3223 组合数学+高精乘低精。

#include
#include
#include
using namespace std;long long fj,ans[10000];int n,m,len(1);const long long p=10000000000ll;void mul(int x){ long long pre(0),tem; for(int i=1;i<=len;i++) { tem=ans[i]*x; ans[i]=tem%p+pre; pre=tem/p; } if(pre){len++;ans[len]=pre;};}int main(){ scanf("%d%d",&n,&m); ans[1]=1; mul(n+1);mul(n*(n+3)+2*m); for(int i=1;i<=n;i++)mul(i); for(int i=n-m+4;i<=n+2;i++)mul(i); printf("%lld",ans[len]); while(--len)printf("%010lld",ans[len]); //cout<

 

转载于:https://www.cnblogs.com/Miracevin/p/9031691.html

你可能感兴趣的文章
Vue.js 中v-for和v-if一起使用,来判断select中的option为选中项
查看>>
Java中AES加密解密以及签名校验
查看>>
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>
Nginx配置文件详细说明
查看>>
怎么用Navicat Premium图标编辑器创建表
查看>>
Spring配置文件(2)配置方式
查看>>
MariaDB/Mysql 批量插入 批量更新
查看>>
ItelliJ IDEA开发工具使用—创建一个web项目
查看>>
solr-4.10.4部署到tomcat6
查看>>
切片键(Shard Keys)
查看>>
淘宝API-类目
查看>>
virtualbox 笔记
查看>>
Git 常用命令
查看>>
驰骋工作流引擎三种项目集成开发模式
查看>>
SUSE11修改主机名方法
查看>>
jdk6.0 + Tomcat6.0的简单jsp,Servlet,javabean的调试
查看>>
Android:apk签名
查看>>