
数学问题
《算法笔记》数学问题部分
yc_cy1999
一只喜欢cc和想去南大的小羊
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
⭐【高精度取余】大整数的因子
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述知识点高精度运算我的实现码前思考这里我使用了在网上考到的高精度求余数的模板,我觉得很好用的~代码实现//采用新学会的模板进行书写 #include <iostream>#include <algorithm>#include <vector>#include <cstring>using namespace std; const int maxn = 100;c.原创 2020-08-18 20:59:58 · 380 阅读 · 0 评论 -
⭐【斐波拉契数列思想】递推数列
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述知识点记忆化递归我的实现码前思考emmm,之前还想求递推公式,结果发现这就是一道需要记忆化的斐波拉契数列啊~代码实现//类似于斐波拉契数列的解题方法,需要设置一个备忘录~ #include <iostream>#include <algorithm>using namespace std;typedef long long ll;const int maxn = 1e4+10;ll me.原创 2020-08-18 15:30:21 · 269 阅读 · 0 评论 -
⭐⭐⭐⭐⭐【快速幂】矩阵幂
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述知识点快速幂的巧用我的实现码前思考这道题目用的是快速幂相关地思想,而不是简单的快速幂模板代码实现#include <iostream>#include <algorithm>using namespace std;const int maxn = 20;int a[maxn][maxn],b[maxn][maxn];int n,k;//C++数组传的是引用,需要谨慎修改 void.原创 2020-08-18 14:52:10 · 147 阅读 · 0 评论 -
⭐【质因子分解】约数的个数
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述知识点质因子分解我的实现码前思考这里需要用到《算法笔记》上一个比较偏的知识点:代码实现//仍然是打印素数表的方法 #include <iostream>#include <algorithm>using namespace std;const int maxn = (int) sqrt(1e9+10);int n; int input[1010];int num=0;int pri.原创 2020-08-17 16:23:58 · 221 阅读 · 0 评论 -
⭐⭐⭐⭐⭐【进制转换+高精度四则运算】10进制vs2进制
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述知识点我的实现码前思考需要实现很多繁琐的步骤;高精度的加、乘、除都需要;逆转过来记得去处前导0;代码实现//需要使用高精度加法,乘法和除法 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int maxn = 1e4+10;struct bign{ i.原创 2020-08-16 21:25:19 · 423 阅读 · 0 评论 -
【进制转换+高精度除法】进制转换
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述知识点我的实现码前思考代码实现//高精度除法运算 #include <iostream>#include <algorithm>#include <cstring>using namespace std;struct bign{ int d[50]; int len; bign(){ fill(d,d+50,0); len=0; }}; bign chang.原创 2020-08-16 20:11:45 · 367 阅读 · 0 评论 -
【十进制转换成其他进制】PAT A1019 General Palindromic Number (20分)
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述十进制转换成其他进制知识点进制转换我的实现码前思考注意十进制为0的情况!!!代码实现//进制转换经典模板题 #include <iostream>#include <algorithm>using namespace std;const int maxn = 100;int n,b;int res[maxn];int num=0; int main(){ scanf("%d .原创 2020-08-16 17:19:55 · 251 阅读 · 0 评论 -
【进制转换】PAT A1058 A+B in Hogwarts (20分)
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述知识点进制转换我的实现码前思考我二刷使用的就是比较暴力的加法代码实现//模拟题,从高位到低位进位即可 #include <iostream>#include <algorithm>using namespace std;int a[3];int b[3];int c[3]; int main(){ scanf("%d.%d.%d %d.%d.%d",&a[0],&a.原创 2020-08-16 17:03:02 · 195 阅读 · 0 评论 -
PAT A1065 A+B and C (64bit)
实现码前思考第一想法就是使用高精度整数运算;需要注意0是正号还是负号;代码实现//大整数的加法和减法!//注意0的符号,这里0的符号是-#include "bits/stdc++.h"using namespace std;const int maxn = 100;int t;char A[maxn];char B[maxn];char C[maxn];str...原创 2020-04-27 17:25:29 · 258 阅读 · 0 评论 -
【异或+进制转换】LeetCode 461. Hamming Distance
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点位运算、进制转换结果实现码前思考先异或,再得到二进制位即可。代码实现//采用异或+进制转换class Solution {public: int hammingDistance(int x, int y) { int res = x^y; int cnt=0; while(res!=0){ if((res % .原创 2020-07-28 16:45:16 · 166 阅读 · 0 评论 -
CodeForces D. Buying Shovels
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点数学问题,some tricks实现码前思考题目思想还是很简单,主要是时间复杂度的控制,我第一次提交时是暴力搜索1~n的所有因子,果然超时了,后来问了hkt,发现是可以两个因子是同时出现的,所以只需要1~sqrt(n)内的因子就好了。。。这样就减少了一半的时间复杂度,因为不用判断多余的整除了。。。代码实现//我好像只会暴力遍历。。。#include <cstdio>#include <algori.原创 2020-05-25 22:50:42 · 267 阅读 · 0 评论 -
⭐【暴力素数】PAT A1152 Google Recruitment
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点素数实现码前思考这道题就是遍历,然后判断是否是素数。但是这道题,我有两个测试点一直没过,因为我把判断素数的函数写错了,而且还是我之前一直未发现的错误!:bool check(ll cur){ if(cur <= 1){ return false; }else{ //注意了! ll sqr = (ll)sqrt(1.0*cur)+1; for(ll i=2;i<=sqr;i++){ .原创 2020-05-10 17:24:55 · 271 阅读 · 0 评论 -
PAT A1116 Come on! Let‘s C
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点素数实现码前思考就是很简单的素数的判断,思维量不大代码实现#include "bits/stdc++.h" using namespace std;//最大的排名const int maxn = 1e4+10;//是否是质数bool isPrime[maxn];map<int,int&...原创 2020-04-30 18:15:59 · 294 阅读 · 0 评论 -
LeetCode 2. Add Two Numbers
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点链表操作+大整数加法结果实现码前思考这道题目就是大整数加,把数组变成了单链表,so easy~~(好狂,hhh)代码实现//类似于大整数加法,只不过将数组变成了单链表//注意特判一些特殊情况/** * Definition for singly-linked list. * struct Li...原创 2020-04-21 18:57:45 · 230 阅读 · 1 评论 -
⭐【进制转换+高精度四则运算】进制转换2——清华
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点进制转换、高精度运算结果实现码前思考要不是这道题目出现在高精度整数的题集里面,我可能一上来就直接进制转换了,肯定想不到要考虑高精度的情况;之前的进制转换的题目都有描述数据的范围:这道题没有写范围!!!好坑。这个题目就是一个把高精度运算都揽括的题目,很综合。代码实现#include "bits...原创 2020-04-11 16:29:36 · 330 阅读 · 0 评论 -
⭐【高精度乘法】N的阶乘——清华
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点高精度整数与低精度整数的乘法结果实现码前思考虽然这是阶乘的问题,但是我们可以将其转换成高精度整数的乘法问题代码实现//高精度整数与低精度数的乘法 #include "bits/stdc++.h"using namespace std;//估摸着位数的极限就是3000啦 const int m...原创 2020-04-11 10:19:31 · 440 阅读 · 0 评论 -
a+b——华科
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点高精度整数运算结果实现码前思考感觉是个模板题,直接套。代码实现//是否会包含前导0呢?//注意a和b的符号,可能是正数也可能是负数 #include "bits/stdc++.h"using namespace std;const int maxn = 1010;struct bign{...原创 2020-04-11 09:17:32 · 131 阅读 · 0 评论 -
【知识点8】快速幂(二分求幂)⭐⭐⭐⭐⭐
文章目录1. 求幂取模问题2. 求幂取模问题进阶2.1 递归解法2.2 迭代解法3. 题型训练4. 参考文档1. 求幂取模问题2. 求幂取模问题进阶2.1 递归解法typedef long long LL;//求a^b % m,递归写法LL binaryPow(LL a,LL b,LL m){ if(b == 0) return 1; //如果b为0,那么a^0=1 //...原创 2020-04-10 22:40:07 · 323 阅读 · 0 评论 -
【快速幂】人见人爱A^B
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点二分幂/快速幂实现码前思考考虑要不要用LL?不需要!10000*10000在int的范围之内;代码实现//二分幂题 #include "bits/stdc++.h"using namespace std;int a;int b;int binaryPow(int a,int b,int m){...原创 2020-04-10 22:38:08 · 335 阅读 · 0 评论 -
⭐⭐⭐⭐⭐【质因子分解】整除问题——上交
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点质因子分解结果实现码前思考由于这道题目出现在质因子分解的章节里面,所以我能想到要往质因子分解这条道上走,但是要是没有这个提示我可能很难想到!我可能还会想动态规划,哈哈哈哈哈。首先,题中说N小于等于1000,那么如果直接暴力求解N!肯定会超出long long范围,所以我们要另辟蹊径,而最好的方法就是分解问...原创 2020-04-10 22:41:00 · 421 阅读 · 0 评论 -
质因数的个数——清华
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点质因子分解结果实现码前思考典型的质因子分解模板题;虽然n是1e10,但是我们只需要求到sqrt(n)的质因子就好,所以我们的内存还是好的。注意质因子分解的三步走战略!这里不需要记录质因子有哪些。代码实现#include "bits/stdc++.h"using namespace std;...原创 2020-04-10 20:01:01 · 424 阅读 · 0 评论 -
LeetCode 204. Count Primes
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点素数结果实现码前思考模板题,注意是小于,不是小于等于代码实现class Solution {public: int countPrimes(int n) { //需要返回的数字,初始化为0,表示1的情况 int pNum = 0; vector...原创 2020-04-10 19:16:07 · 272 阅读 · 0 评论 -
素数——北航
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点素数筛法结果实现码前思考传统的素数筛法只是在里面加入了一些小的要求而已。大致的模板还是一样的,就是要多写一个判断条件。。。。。。代码实现//这个题目分为两步//1. 打表1~10000的所有素数且满足条件的素数 //2. 根据题意进行输出 #include "bits/stdc++.h"us...原创 2020-04-10 17:35:10 · 145 阅读 · 0 评论 -
素数判定——哈工大
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点素数判定结果实现码前思考这是属于判断一个数是否为素数的题目,使用时间复杂度位O(N)O(\sqrt N)O(N)的模板。代码实现#include "bits/stdc++.h"using namespace std;bool isPrime(int num){ if(num <= 1)...原创 2020-04-10 17:00:07 · 286 阅读 · 0 评论 -
最大公约数——哈工大
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点最大公约数结果实现码前思考模板题,没什么好说的。。。代码实现#include "bits/stdc++.h"using namespace std;int a;int b;int gcd(int a,int b){ if(b == 0){ return a; }else{ ret...原创 2020-04-10 15:50:03 · 317 阅读 · 0 评论 -
数制转换——北大
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点数制转换结果实现码前思考读题可以发现题中可能有的几个坑:数据可能存在包含前导零的情况;输出时字母符号全部用大写表示。其他:对于这种既有字符又有数字的转换,常见的解决办法就是初始化一张查找表,之后进行映射查表,这样会快很多。代码实现//输入和输出都是字符数组 #include "bits...原创 2020-04-10 15:25:47 · 475 阅读 · 0 评论 -
【知识点7】进制转换⭐⭐⭐⭐⭐
文章目录1. 进制转换与数位拆解的关系2. 进制转换2.1 十进制转换为其他进制2.2 其他进制转换为十进制3. 题型训练4. 参考文档接下来讲解一种特殊的数位拆解——进制转换。1. 进制转换与数位拆解的关系为什么说进制转换是数位拆解中的一种呢?那是因为,进制转换与数位拆解一样,最终目的也是要求各个数位上的数字。不同的是,数位拆解要求的是十进制表示的各个数位上的数字,而进制转换求的则是以某种进制表示的数字用另一种进制来表示时各个数位上的数字。2. 进制转换那么我们该如何完成进制转换呢?我.原创 2020-04-10 12:32:36 · 483 阅读 · 0 评论 -
又一版A+B——浙江大学
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点进制转换结果实现码前思考这种题的常见的坑就是虽然A和B是int,但是它们的和A+B有可能超出int,所以通常要用long long;使用long long输入和输出得使用lld;代码实现//由于AB两数相加可能会超出int的范围,所以我们要使用long long //数据范围 //输入是非负整数...原创 2020-04-10 12:30:31 · 331 阅读 · 0 评论 -
数位拆解
在了解完%运算符后,利用其求余数的运算,我们介绍与其相关的第一个应用——数位拆解。数位拆解即把一个给定的数字(如3241)各个数位上的数字拆开,即拆成3、2、4、1。题型训练特殊乘法——清华大学...原创 2020-04-10 10:55:32 · 754 阅读 · 0 评论 -
特殊乘法——清华大学
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点数位拆分结果实现码前思考就是将一个数字进行拆分,拆分的方法就是对10取余数。代码实现//其实这道题目可以直接使用字符串 #include "bits/stdc++.h"using namespace std;const int maxn = 20;int a;int b;int A[ma...原创 2020-04-10 10:53:19 · 427 阅读 · 0 评论 -
%运算符
我们来看一下为什么在%运算中余数的值看起来好像与除数的符号无关。原创 2020-04-10 10:07:14 · 349 阅读 · 0 评论 -
【高精度加法】PAT A1024 Palindromic Number
文章目录知识点疑问代码反思知识点大整数运算疑问暂无代码#include "bits/stdc++.h"using namespace std;const int maxn = 100000;struct bign{ int d[maxn]; int len; bign(){ fill(d,d+maxn,0); len=0; }};//最大的次数 ...原创 2020-03-13 20:44:40 · 320 阅读 · 0 评论 -
【高精度加法/乘法】PAT A1023 Have Fun with Numbers
文章目录知识点疑问代码反思知识点大整数运算疑问暂无代码//注意50乘2等于100,其实也没必要。。。 #include "bits/stdc++.h"using namespace std;const int maxn = 30; struct bign{ int d[maxn]; int len; bign(){ fill(d,d+maxn,0); l...原创 2020-03-13 20:00:58 · 290 阅读 · 0 评论 -
【高精度除法】PAT B1017 A除以B
文章目录知识点疑问代码反思知识点大整数运算疑问暂无代码#include "bits/stdc++.h"using namespace std;const int maxn = 1010;struct bign{ int d[maxn]; int len; //初始化,很重要! bign(){ fill(d,d+maxn,0); len = 0; }...原创 2020-03-13 19:26:28 · 261 阅读 · 0 评论 -
【知识点9】组合数
文章目录1. 关于n!的一个问题2. 组合数的计算2.1 如何计算CnmC_n^mCnm方法一:通过定义式直接计算方法二:通过递推公式计算方法三:通过定义式的变形来计算2.2 如何计算Cnm%pC_n^m \% pCnm%p方法一:通过递推公式计算参考文档1. 关于n!的一个问题我们来讨论一个关于**n!**的一个问题——求n!中有多少个质因子p。这个问题是什么意思呢?举个例子,...原创 2020-03-13 17:07:37 · 2922 阅读 · 0 评论 -
【知识点6】大整数运算(高精度整数运算)⭐⭐⭐⭐⭐
文章目录大整数的存储大整数的四则运算高精度加法高精度减法高精度与低精度的乘法高精度与低精度的除法题型训练参考文档大整数又称为高精度整数。大整数的存储使用数组即可。注意:整数的高位存储在数组的高位,整数的低位存储在数组的低位。为了方便随时获取大整数的长度,一般都会定义一个int型变量len来记录其长度,并和数组合成一个结构体:struct bign{ int d[1000]; ...原创 2020-03-08 22:04:50 · 866 阅读 · 0 评论 -
【特殊情况判定+理解题意】PAT A1096 Consecutive Factors
文章目录疑问代码反思疑问暂无代码#include "bits/stdc++.h"using namespace std;//输入的数字的大小 int n; //最长连续因子的开头int first;//最长连续因子的连续值int len;int main(){ scanf("%d",&n); //初始化,记得考虑到n为质数的情况 first...原创 2020-03-08 20:36:14 · 324 阅读 · 1 评论 -
【知识点5】质因子分解
文章目录质因子分解题型训练参考文档质因子分解质因子分解是指将一个正整数n写成一个或者多个质数的乘积的形式。注意:由于1本身并不是素数,因此它没有质因子。 但是对于有些正整数n的题目需要特判1。由于每个质因子都可以不止出现一次,因此不妨定义结构体factor,用来存放质因子及其个数,如下所示:struct factor{ int x; //x是质因子 int cnt; //...原创 2020-03-07 23:44:54 · 1157 阅读 · 0 评论 -
【质因子分解+打印素数表】PAT A1059 Prime Factors
文章目录疑问代码反思疑问暂无代码//直接设定了N的大小是int型 #include "bits/stdc++.h"using namespace std;const int maxn = 1e6; //用于存放质数的数组 int prime[maxn],pNum=0;bool p[maxn] = {0};struct factor{ int x; int cn...原创 2020-03-07 23:42:46 · 321 阅读 · 0 评论 -
【二次方探查法+素数判断】PAT A1078 Hashing
文章目录疑问代码反思疑问暂无代码#include "bits/stdc++.h"using namespace std;const int maxn = 1e4+100;int msize;int n;bool h[maxn] = {0};bool isPrime(int m){ //特判1 if(m <= 1){ return false; ...原创 2020-03-07 22:05:19 · 312 阅读 · 0 评论