当前位置: 首页 > news >正文

高精度算法

基础模板:

(411条消息) 高精度加法_会笑的小熊的博客-CSDN博客

(411条消息) 高精度乘法_会笑的小熊的博客-CSDN博客

(411条消息) 高精度减法_会笑的小熊的博客-CSDN博客

目录

P1601 A+B Problem(高精)

P1303 A*B Problem

P1009 [NOIP1998 普及组] 阶乘之和

P1591 阶乘数码 

P1249 最大乘积


P1601 A+B Problem(高精)

vector版

vector<int> add(vector<int> &A, vector<int> &B)
{vector<int> C;int t = 0;for (int i = 0; i < A.size() || i < B.size(); i++){if (i < A.size())t += A[i];if (i < B.size())t += B[i];C.pb(t % 10);t /= 10;}if (t)C.pb(t);return C;
}inline void solve()
{string a, b;cin >> a >> b;vector<int> A, B;for (int i = a.size() - 1; i >= 0; i--)A.pb(a[i] - '0');for (int i = b.size() - 1; i >= 0; i--)B.pb(b[i] - '0');auto C = add(A, B);for (int i = C.size() - 1; i >= 0; i--)cout << C[i];
}

数组版 

const int N = 1e5 + 10;
int A[N], B[N], C[N]; // 将每位数字保存在数组中
inline void solve()
{string a, b;cin >> a >> b;int s1 = a.size(), s2 = b.size();// 将第一个乘数逆序保存在数组A[1],A[2]....中for (int i = 0; i < a.size(); i++)A[s1 - i] = a[i] - '0';for (int i = 0; i < b.size(); i++)B[s2 - i] = b[i] - '0';for (int i = 1; i <= s1 || i <= s2; i++){if (i <= s1)C[i - 1] += A[i]; // 将每一次求的值相加if (i <= s2)C[i - 1] += B[i];C[i] += C[i - 1] / 10; // 将十位数字加到下一位C[i - 1] %= 10;        // 将个位数字保存在当前位}int s = s1 + s2;while (C[s] == 0 && s > 0) // 若最高位为0 则位数减一s--;if (s == 0)cout << 0 << endl;else{for (int i = s; i >= 0; i--) // 倒叙输出 由高位到低位cout << C[i];}
}

P1303 A*B Problem

const int N = 1e5 + 10;
int A[N], B[N], C[1000010]; // 将每位数字保存在数组中
inline void solve()
{string a, b;cin >> a >> b;int s1 = a.size(), s2 = b.size();// 将第一个乘数逆序保存在数组A[1],A[2]....中for (int i = 0; i < a.size(); i++)A[s1 - i] = a[i] - '0';for (int i = 0; i < b.size(); i++)B[s2 - i] = b[i] - '0';for (int i = 1; i <= s1; i++){for (int j = 1; j <= s2; j++){C[i + j - 1] += A[i] * B[j];   // 将每一次求的值相加C[i + j] += C[i + j - 1] / 10; // 将十位数字加到下一位C[i + j - 1] %= 10;            // 将个位数字保存在当前位}}int s = s1 + s2;while (C[s] == 0 && s > 0) // 若最高位为0 则位数减一s--;if (s == 0)cout << 0 << endl;else{for (int i = s; i >= 1; i--) // 倒叙输出 由高位到低位cout << C[i];}
}

P1009 [NOIP1998 普及组] 阶乘之和

int A[1010] = {0}, B[1010] = {0};
inline void solve()
{int n;cin >> n;A[0] = B[0] = 1;for (int i = 2; i <= n; i++){for (int j = 0; j < 100; j++)B[j] *= i;   //预处理阶乘for (int j = 0; j < 100; j++){B[j + 1] += B[j] / 10;B[j] %= 10;}for (int j = 0; j < 100; j++){A[j] += B[j];A[j + 1] += A[j] / 10;A[j] %= 10;}}int i = 100;while (i >= 0 && A[i] == 0)i--;for (int j = i; j >= 0; j--)cout << A[j];
}

P1591 阶乘数码 

vector<int> mul(vector<int> &A, int b)
{vector<int> C;int t = 0;for (int i = 0; i < A.size() || t; i++){if (i < A.size())t += A[i] * b;C.pb(t % 10);t /= 10;}while (C.size() > 1 && C.back() == 0)C.pop_back();return C;
}inline void solve()
{int n, a;cin >> n >> a;vector<int> A;int cnt = 0;A.pb(1);for (int i = 2; i <= n; i++)A = mul(A, i);for (int i = 0; i < A.size(); i++)if (A[i] == a)cnt++;cout << cnt << endl;
}

P1249 最大乘积

LuoGu P1249 最大乘积(数论 + 前缀和) | 码农家园 (codenong.com)

int d[10010];vector<int> mul(vector<int> &A, int b)
{vector<int> C;int t = 0;for (int i = 0; i < A.size() || t; i++){if (i < A.size())t += A[i] * b;C.pb(t % 10);t /= 10;}while (C.size() > 1 && C.back() == 0)C.pop_back();return C;
}void process(int n)
{int s = 0;for (int i = 2; i <= n; i++){s += i;d[i] = true;if (s > n){if (s - n == 1){d[2] = false;d[i] = false;d[i + 1] = true;break;}d[s - n] = false;break;}}
}inline void solve()
{int n;cin >> n;process(n);for (int i = 0; i < 10010; i++){if (d[i])cout << i << ' ';}cout << endl;vector<int> A;A.pb(1);for (int i = 0; i < 10010; i++){if (d[i])A = mul(A, i);}for (int i = A.size() - 1; i >= 0; i--)cout << A[i];
}

相关文章:

高精度算法

基础模板&#xff1a; (411条消息) 高精度加法_会笑的小熊的博客-CSDN博客 (411条消息) 高精度乘法_会笑的小熊的博客-CSDN博客 (411条消息) 高精度减法_会笑的小熊的博客-CSDN博客 目录 P1601 AB Problem&#xff08;高精&#xff09; P1303 A*B Problem P1009 [NOIP1998 普…...

DragGAN:用崭新的方式进行图像处理

该项目的论文被SIGGRAPH 2023 收录&#xff0c;论文以 StyleGAN2 架构为基础&#xff0c;实现了 “Drag” 关键点就能轻松 P 图的效果。 https://github.com/XingangPan/DragGAN https://vcai.mpi-inf.mpg.de/projects/DragGAN/ 目录 原图1测试一测试二测试三 原图2测试一测试…...

语音播放 linux

调整语音音量大小 pactl list sinks pactl set-sink-volume 15 12345 # 15可以改成别的id安装pip install pyttsx3 sudo apt-get update sudo apt-get install espeak sudo ldconfig pip3 install pyttsx3代码 import pyttsx3 import threading def speak_work(text):engine…...

各大互联网公司面经分享:Java 全栈知识 +1500 道大厂面试真题

这篇文章给大家分享一下我遇到的一些质量较高的面试经历&#xff0c;具体经过就不多说了&#xff0c;就把面试题打出来供各位读者老哥参考如有不全的地方&#xff0c;各位海涵。 猿辅导 八皇后问题 求二叉树的最长距离(任意两个节点的路径 中最长的) lru 算法的实现 设计一…...

【LeetCode】剑指offer礼物的最大价值

礼物的最大价值 题目描述算法分析编程代码 链接: 礼物的最大价值 题目描述 算法分析 编程代码 class Solution { public:int maxValue(vector<vector<int>>& grid) {int m grid.size();int n grid[0].size();vector<vector<int>> dp(m1,vector…...

应用层协议——https

文章目录 1. HTTPS 是什么2. 什么是"加密"3. 常见的加密方式4. 数据摘要 && 数字签名5. HTTPS 的工作过程探究5.1 方案1 - 只使用对称加密5.2 方案2 - 只使用非对称加密5.3 方案3 - 双方都使用非对称加密5.4 方案4 - 非对称加密 对称加密5.5 中间人攻击5.6 …...

Emacs之实现鼠标/键盘选中即拷贝外界内容(一百二十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…...

智慧城市环境污染数据采集远程监控方案4G工业路由器应用

随着科技水平的发展和人民生活水平的提高&#xff0c;城市环境污染问题日渐严峻&#xff0c;尤其是在发展迅速的国家&#xff0c;环境污染问题便更为突出。许多发达国家将重污染工厂搬到发展中国家&#xff0c;这导致发展中国家的环境污染日益严重。严重的环境污染也带来了一系…...

大数据技术之Clickhouse---入门篇---安装

星光下的赶路人star的个人主页 努力到无能为力&#xff0c;拼搏到感动自己 文章目录 1、ClickHouse的安装1.1 准备工作1.1.1 确定防火墙处于关闭状态1.1.2 CentOS取消打开文件数限制1.1.3 安装依赖&#xff08;所有节点都进行依赖安装&#xff09;1.1.4 CentOS取消SELINUX 1.2 …...

vue3搭建Arco design UI框架

技术&#xff1a;Vue3.2.40 UI框架&#xff1a;Arco design 2.44.7 需要安装:yarn 1.22.19 和npm 8.19.4 1.第一步安装本地全局arco脚手架 管理员运行CMD npm i -g arco-cli安装成功后如下&#xff1a; 2.第二步在需要存放项目的文件夹拉取项目 我这里把项目存放在 D:\W…...

提升数据质量的四大有效方式

在数字时代的今天&#xff0c;企业对于高质量、值得信赖的数据的需求越来越高。 目前&#xff0c;已经有很多企业将数据质量视为技术问题而非业务问题&#xff0c;这也是获取高质量数据的最大限制因素。只有查找技术缺陷&#xff0c;例如重复数据、缺失值、乱序序列&#xff0…...

ALLEGRO之FlowPlan

本文主要讲述了ALLEGRO的FlowPlan菜单。 &#xff08;1&#xff09;Auto Bundle&#xff1a;暂不清楚&#xff1b; &#xff08;2&#xff09;Create Bundle&#xff1a;暂不清楚&#xff1b; &#xff08;3&#xff09;Delete Bundle&#xff1a;暂不清楚&#xff1b; &…...

Python - OpenCV实现摄像头人脸识别(亲测版)

要使用Python 3和OpenCV进行摄像头人脸识别&#xff0c;您可以按照以下步骤进行操作&#xff1a; 0.安装OpenCV软件 去官网直接下载安装即可,如果是C使用OpenCV&#xff0c;需要使用编译源码并配置环境变量。 1.安装OpenCV库 在命令行中输入以下命令&#xff1a; pip inst…...

date日期相关操作汇总

一、若表中date字段存储形式为&#xff1a;2021-05-16 在表中找到2021年8月份数据的方法 方法1. like 语法&#xff1a;where date like 2021-08%; 前面能匹配上的就是2021年8月份。 方法2. year,month函数&#xff08;mysql中有&#xff0c;oracle中不确定&#xff09; 语法&…...

生产者-消费者模式

文章目录 一、生产者-消费者模式的应用场景1、Excutor任务执行框架:2、消息中间件active MQ:3、任务的处理时间比较长的情况下:二、生产者-消费者模式的优点1、优点:2、缺点:二、C++实现生产者-消费者模型1、依赖2、实现细节3、问题4、核心代码生产者-消费者模式是一个十分…...

Jetson Nano之ROS入门 -- YOLO目标检测与定位

文章目录 前言一、yolo板端部署推理二、目标深度测距三、目标方位解算与导航点设定1、相机成像原理2、Python实现目标定位 总结 前言 Darknet_ros是一个基于ROS&#xff08;机器人操作系统&#xff09;的开源深度学习框架&#xff0c;它使用YOLO算法进行目标检测和识别。YOLO算…...

【移动机器人运动规划】01 —— 常见地图基础 |图搜索基础

文章目录 前言相关代码整理:相关文章&#xff1a; 可视化网址&#xff1a;常用地图基础Occupancy grid mapOcto-mapVoxel hashingPoint cloud mapTSDF mapESDF mapFree-space RoadmapVoronoi Diagram Map 图搜索基础配置空间图搜索基本概念DijkstraAStarAstar的一些变种&#x…...

mongotop跟踪Mongodb集合读取和写入数据

版本控制 从 MongoDB 4.4 开始&#xff0c;MongoDB 数据库工具现在与 MongoDB 服务器分开发布&#xff0c;并使用自己的版本控制&#xff0c;初始版本为100.0.0. 此前&#xff0c;这些工具与 MongoDB 服务器一起发布&#xff0c;并使用匹配的版本控制。 兼容性 mongotop 版本…...

Linux中使用du命令来查看目录的大小

在Linux中&#xff0c;你可以使用du命令来查看目录的大小。下面是一些常用的du命令选项&#xff1a; -h&#xff1a;以人类可读的格式显示文件大小。-s&#xff1a;仅显示总大小&#xff0c;而不显示每个子目录的大小。-c&#xff1a;显示总大小&#xff0c;并在最后一行显示总…...

【Linux】进程篇Ⅰ:进程信息、进程状态、环境变量、进程地址空间

文章目录 一、概述二、查看进程信息1. 系统文件夹 /proc2. 用户级工具 ps3. getpid() 函数&#xff1a;查看进程 PID4. 用 kill 杀进程5. 进程优先级 二、进程状态分析0. 1. R (running) 运行状态2. S (sleeping) 休眠状态3. D (disk sleep) 不可中断的休眠状态4. T (stopped) …...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...