高精度算法
基础模板:
(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) …...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...

Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...