随笔分类 - 初级算法学习 / 数学
摘要:卡特兰(Catalan)数入门详解 - Morning_Glory - 博客园 (cnblogs.com) 今天放假,明天详细写
阅读全文
摘要:对于给定的序列1 2 3,其全排列有6种,按照字典序从小到大即为 0 1 2 3 4 5 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 可以看出,每个全排列序列都唯一对应一个字典序数(从0开始),那么,有什么方法可以根据序列求出其对应的字典序或者根据字典序来推断其对应序列呢
阅读全文
摘要:在做这道题之前我们先了解一下棋盘问题 棋盘问题 (qq.com) 对于棋盘问题,我们可以得出对于一个n*n的正方形方格阵如何求其包含的正方形个数 也就是数每个正方形的中间点,然后将其点排列成矩阵,对于其中m*m规格的正方形,其个数为(n-m-1)*(n-m-1)- 现在回到我们这道题,他的要求就更普
阅读全文
摘要:P1045 [NOIP2003 普及组] 麦森数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 想法很简单,我们要做的就是两件事,求2^P-1的位数,求出2^P-1的最后500位数,也就是低五百位,500位想一想常规类型肯定存不下,int到10^9,long long 到10^1
阅读全文
摘要:先贴一个快速幂模板 long long int quik_power(int base, int power) { long long int result = 1; while (power > 0) //指数大于0进行指数折半,底数变其平方的操作 { if (power & 1) //指数为奇数
阅读全文
摘要:对于计算比较大的幂的结果时可以采用快速幂来降低时间复杂度 例如求K的n次幂 int Pow(int K, int n) { for (int i = 0; i < n; i++) K *= K; return K; } 最朴素的思想就是直接n次循环,让K自乘n次,但是随着n的增加循环次数会越来越多,
阅读全文
摘要:可以知道对于一个有n个数据的集合,其子集个数有2^n个 至于证明可以这样理解,对于n个数据,其子集就是对数据进行组和,而对于每个位置上的数据,组合时仅有两种状态即有此数据或无此数据,也就是有两种可能,而对于n个数据,就有2^n种可能 不妨设其中一个非空数据X,对于X,依据X可以将子集划分为两种,包含
阅读全文
摘要:欧拉筛的终止条件是i<n; 而埃氏筛的终止条件可以为i<sqrt(n)或i<n,保险起见,加个sqrt并不会影响时间复杂度,所以还是都写i<n吧
阅读全文
摘要:对于一个二维数组来说,我们用真实下标来表示数组下标,即下标从1开始而非从0开始 那么对于杨辉三角数组的元素a[i][j]=a[i−1][j]+a[i−1][j−1],其中初值条件为a[i][1]=1(即最前列全置1),a[i][i]=1(最后列全置1), 然后通过一个嵌套循环即可计算得出 for(i
阅读全文
摘要:在开筛之前,我们要理解一个很好理解的概念,任何一个合数可以拆成一个最小素数和另一个数(可能质数可能合数)的乘积这个最小素数即为这个合数的最小质因子//比如 12=2*6,此时2就是12的最小质因子,当然亦有12=3*4,可以看到3也是12的质因子,但不是最小的质因子//而且,对于一合数a=b*q,b
阅读全文
摘要:这道题的最后一个样例TLE(超时)了,判断素数的条件是 i*i<n 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #include<math.h> 5 int isPrime(int num) 6 { 7 for (i
阅读全文

浙公网安备 33010602011771号