当前位置: 首页 > 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) …...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

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

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

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...