高精度算法
基础模板:
(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];
}相关文章:
高精度算法
基础模板: (411条消息) 高精度加法_会笑的小熊的博客-CSDN博客 (411条消息) 高精度乘法_会笑的小熊的博客-CSDN博客 (411条消息) 高精度减法_会笑的小熊的博客-CSDN博客 目录 P1601 AB Problem(高精) P1303 A*B Problem P1009 [NOIP1998 普…...
DragGAN:用崭新的方式进行图像处理
该项目的论文被SIGGRAPH 2023 收录,论文以 StyleGAN2 架构为基础,实现了 “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 道大厂面试真题
这篇文章给大家分享一下我遇到的一些质量较高的面试经历,具体经过就不多说了,就把面试题打出来供各位读者老哥参考如有不全的地方,各位海涵。 猿辅导 八皇后问题 求二叉树的最长距离(任意两个节点的路径 中最长的) 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之实现鼠标/键盘选中即拷贝外界内容(一百二十)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...
智慧城市环境污染数据采集远程监控方案4G工业路由器应用
随着科技水平的发展和人民生活水平的提高,城市环境污染问题日渐严峻,尤其是在发展迅速的国家,环境污染问题便更为突出。许多发达国家将重污染工厂搬到发展中国家,这导致发展中国家的环境污染日益严重。严重的环境污染也带来了一系…...
大数据技术之Clickhouse---入门篇---安装
星光下的赶路人star的个人主页 努力到无能为力,拼搏到感动自己 文章目录 1、ClickHouse的安装1.1 准备工作1.1.1 确定防火墙处于关闭状态1.1.2 CentOS取消打开文件数限制1.1.3 安装依赖(所有节点都进行依赖安装)1.1.4 CentOS取消SELINUX 1.2 …...
vue3搭建Arco design UI框架
技术:Vue3.2.40 UI框架:Arco design 2.44.7 需要安装:yarn 1.22.19 和npm 8.19.4 1.第一步安装本地全局arco脚手架 管理员运行CMD npm i -g arco-cli安装成功后如下: 2.第二步在需要存放项目的文件夹拉取项目 我这里把项目存放在 D:\W…...
提升数据质量的四大有效方式
在数字时代的今天,企业对于高质量、值得信赖的数据的需求越来越高。 目前,已经有很多企业将数据质量视为技术问题而非业务问题,这也是获取高质量数据的最大限制因素。只有查找技术缺陷,例如重复数据、缺失值、乱序序列࿰…...
ALLEGRO之FlowPlan
本文主要讲述了ALLEGRO的FlowPlan菜单。 (1)Auto Bundle:暂不清楚; (2)Create Bundle:暂不清楚; (3)Delete Bundle:暂不清楚; &…...
Python - OpenCV实现摄像头人脸识别(亲测版)
要使用Python 3和OpenCV进行摄像头人脸识别,您可以按照以下步骤进行操作: 0.安装OpenCV软件 去官网直接下载安装即可,如果是C使用OpenCV,需要使用编译源码并配置环境变量。 1.安装OpenCV库 在命令行中输入以下命令: pip inst…...
date日期相关操作汇总
一、若表中date字段存储形式为:2021-05-16 在表中找到2021年8月份数据的方法 方法1. like 语法:where date like 2021-08%; 前面能匹配上的就是2021年8月份。 方法2. year,month函数(mysql中有,oracle中不确定) 语法&…...
生产者-消费者模式
文章目录 一、生产者-消费者模式的应用场景1、Excutor任务执行框架:2、消息中间件active MQ:3、任务的处理时间比较长的情况下:二、生产者-消费者模式的优点1、优点:2、缺点:二、C++实现生产者-消费者模型1、依赖2、实现细节3、问题4、核心代码生产者-消费者模式是一个十分…...
Jetson Nano之ROS入门 -- YOLO目标检测与定位
文章目录 前言一、yolo板端部署推理二、目标深度测距三、目标方位解算与导航点设定1、相机成像原理2、Python实现目标定位 总结 前言 Darknet_ros是一个基于ROS(机器人操作系统)的开源深度学习框架,它使用YOLO算法进行目标检测和识别。YOLO算…...
【移动机器人运动规划】01 —— 常见地图基础 |图搜索基础
文章目录 前言相关代码整理:相关文章: 可视化网址:常用地图基础Occupancy grid mapOcto-mapVoxel hashingPoint cloud mapTSDF mapESDF mapFree-space RoadmapVoronoi Diagram Map 图搜索基础配置空间图搜索基本概念DijkstraAStarAstar的一些变种&#x…...
mongotop跟踪Mongodb集合读取和写入数据
版本控制 从 MongoDB 4.4 开始,MongoDB 数据库工具现在与 MongoDB 服务器分开发布,并使用自己的版本控制,初始版本为100.0.0. 此前,这些工具与 MongoDB 服务器一起发布,并使用匹配的版本控制。 兼容性 mongotop 版本…...
Linux中使用du命令来查看目录的大小
在Linux中,你可以使用du命令来查看目录的大小。下面是一些常用的du命令选项: -h:以人类可读的格式显示文件大小。-s:仅显示总大小,而不显示每个子目录的大小。-c:显示总大小,并在最后一行显示总…...
【Linux】进程篇Ⅰ:进程信息、进程状态、环境变量、进程地址空间
文章目录 一、概述二、查看进程信息1. 系统文件夹 /proc2. 用户级工具 ps3. getpid() 函数:查看进程 PID4. 用 kill 杀进程5. 进程优先级 二、进程状态分析0. 1. R (running) 运行状态2. S (sleeping) 休眠状态3. D (disk sleep) 不可中断的休眠状态4. T (stopped) …...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...
