随笔分类 - 高精度
摘要:题目传送门 一、题目分析 考虑以阶梯左下角那个点为第一个钢材的左下角,那么第一个钢材摆放情况便如下图(以 为例) 对每种情况分别讨论,那么问题都被分成了两个子问题,设表示摆放高度为的台阶的方法数,那么: \(\large f[5]=f[4]*f[0]+f[3]*
阅读全文
摘要: . 网格 一、题目描述 某城市的街道呈网格状,左下角坐标为 ,右上角坐标为 ,其中 。 现在从 点 出发,只能沿着街道向 正右方 或者 正上方 行走,且不能经过图示中直线左上方的点,即任何
阅读全文
摘要:关于的使用 正常来说,unsigned long long已经是可以定义的最大的类型了,但是如果数据范围超过了就会爆炸。如果要处理比其大一点又不是那么大的数,就可以使用__int128这个定义。 及系列中可以正常使用__int128: https:
阅读全文
摘要:## [ . 凸多边形的划分 ](https://www.acwing.com/problem/content/1071/) ### 一、题目描述 给定一个具有 个顶点的凸多边形,将顶点从 至 标号,每个顶点的权值都是一个正整数。 将这个凸多边形划
阅读全文
摘要:题目传送门 一、递推+高精度 #include <bits/stdc++.h> using namespace std; const int N = 5010; /** * 功能:高精度加法模板 * @param A * @param B * @return */ vector<int> add(v
阅读全文
摘要:P1045 [NOIP2003 普及组] 麦森数 题目传送门 一、前导知识 高精度乘法 老师将高精乘高精,高精乘低精想办法合并成了一个模板 没错应该看的出来,高精度乘法其实就是一位一位去乘,然后按位存储在数组里面,思路差不多就是这样。 由于位数比较多,我们用字符串来进行输入,处理后按位存到整型数组中
阅读全文
摘要:题目传送门 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 1e5 + 10; int n, num; int ans; vector<int> c; int a[N], al; in
阅读全文
摘要:题目传送门 #include <bits/stdc++.h> using namespace std; const int N = 1e6 + 10; int a[N]; void mul(int a[], int b, int &len) { int t = 0; for (int i = 1;
阅读全文
摘要:题目传送门 //P1009.cpp #include <bits/stdc++.h> using namespace std; //本题有坑,使用长整也过不了洛谷的用例,因为它的用例是22,需要高精度,也就是乘法高精度+加法高精度 typedef long long LL; int n; LL re
阅读全文
摘要:题目传送门 //P1303.cpp #include <bits/stdc++.h> using namespace std; /** * 功能:高精度乘低精度模板 * @param A * @param b * @return */ vector<int> mul(vector<int> &A,
阅读全文
摘要:题目传送门 //P1601.cpp #include <bits/stdc++.h> using namespace std; /** * 功能:高精度加法模板 * @param A * @param B * @return */ vector<int> add(vector<int> &A, ve
阅读全文
摘要:一、算法原理 当输入的数很大时,可采用字符串方式接收。 拆成一位一位的数字,把它们存在一个数组中,一个数组元素表示一位数字 数组中是这样存储的: 倒序存储原因: 在平常,数字从左到右依次为从高位到低位....可这里却与日常的习惯相反。 这是因为加法可能会产生进位,而数组在最前面加上数字是不可能的,但
阅读全文