
数学-基础
文章平均质量分 52
Rain722
这个作者很懒,什么都没留下…
展开
-
bzoj1811mea(不等式)
考虑一个非递减的整数序列 S1,....Sn+1(Si<=Si+1 1<=i<=n)。 序列M1...Mn是定义在序列S的基础上,关系式为 Mi=( Si + S(i+1) )/2, 1<=i<=n, 序列M叫做序列S的平均数序列。例如序列1,2,2,4的平均数序列为 1.5,2,3.注意到平均数序列中的元素可能为小数。但是本题的任务只是处理平均数序列都为整数的情况。 给出一个n个数字的非递减的整原创 2017-01-15 23:07:00 · 538 阅读 · 0 评论 -
HDU5738 Eureka(计数)
题意:统计平面内有多少个点共线,有重点思路:显然没有重点的时候是个水题,这里统计共线我是用了斜率存进map里面,由于直接除会是double很容易挂,所以直接map,int>这样来处理就可以解决了,然后算一下重点的贡献和不重点的贡献就可以了#includeusing namespace std;#define pii pair#define LL long long#de原创 2017-09-01 12:26:27 · 324 阅读 · 0 评论 -
HDU4372Count the Buildings(第一类斯特林数)
Count the BuildingsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1477 Accepted Submission(s): 491Problem DescriptionThere a原创 2017-04-21 16:37:28 · 661 阅读 · 0 评论 -
第一类Stirling数和第二类Stirling
第一类Stirling数 s(p,k) s(p,k)的一个的组合学解释是:将p个物体排成k个非空循环排列的方法数。 s(p,k)的递推公式: s(p,k)=(p-1)*s(p-1,k)+s(p-1,k-1) ,1边界条件:s(p,0)=0 ,p>=1 s(p,p)=1 ,p>=0递推关系的说明:考虑第p个物品,p可以单独转载 2017-04-20 11:13:49 · 595 阅读 · 0 评论 -
HDU 1402 A * B Problem Plus (FFT, 大整数乘法)
题目大意:求两个大整数的乘积, 两个大整数长度都不超过50000, 多组数据, 时限1s大致思路:作为FFT算法的一个开头的题, 恩还是仔细写了一下这个题就是把整数视作是两个多项式, 每一位就是一项, 那么就相当于是两个最高次数不超过50000的多项式乘积之后在x = 10出的值, 那么这样就很简单了, 直接处理出其多项式然后用FFT计算即可来自kuan原创 2017-03-31 21:17:23 · 629 阅读 · 0 评论 -
向量的旋转
实际做题中我们可能会遇到很多有关及计算几何的问题,其中有一类问题就是向量的旋转问题,下面我们来具体探讨一下有关旋转的问题。首先我们先把问题简化一下,我们先研究一个点绕另一个点旋转一定角度的问题。已知A点坐标(x1,y1),B点坐标(x2,y2),我们需要求得A点绕着B点旋转θ度后的位置。A点绕B点旋转θ角度后得到的点,问题是我们要如何才能得到A' 点的坐标。(向逆时针方向旋转角度正转载 2017-03-05 11:54:25 · 2192 阅读 · 0 评论 -
HDU5533Dancing Stars on Me(计算几何)
InputThe first line contains a integer T indicating the total number of test cases. Each test case begins with an integer n, denoting the number of stars in the sky. Following n lines, each原创 2016-12-02 21:22:22 · 323 阅读 · 0 评论 -
HDU5784How Many Triangles(几何+极角排序)
题意:平面上n个点,问能组成多少个锐角三角形分析:统计锐角的个数,设为 A,钝角和直角的个数,设为 B 每个锐角三角形有三个锐角,每个钝角和直角三角形均贡献两个锐角 所以答案即为 A−2B3 然后题解在对每个点极角排序之后,采用 two pointers的方式来找上下界 比二分好写多了,也很方便,时间复杂度 O(N2logN)原创 2017-09-03 16:41:19 · 809 阅读 · 0 评论 -
HDU5863cjj's string game(DP+矩阵快速幂)
题意:让你用k个字母构造出两个长度为n的a,b串,其中a,b连续对应子串的长度不能超过m,问方案数。分析:dp[i][j]表示现在构造了i长度,长度j后缀连续对应相等,那么dp[i][j] = dp[i-1][j-1]*k,特别地,dp[i][0] = sigma(dp[i-1][j]*(k-1)*k) (0=令sum=dp[n][0]+dp[n][1]…+dp[n原创 2017-09-08 13:05:39 · 386 阅读 · 0 评论 -
Codeforces 821E Okabe and El Psy Kongroo(Dp+矩阵快速幂)
E. Okabe and El Psy Kongrootime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputOkabe likes to take walks but k原创 2017-08-07 17:10:59 · 442 阅读 · 0 评论 -
HDU5950Recursive sequence(构造矩阵+矩阵乘法)
题目大意:求 f(n) = f(n−1)+2f∗(n−2)+n4,其中 f(1)=a,f(2)=b这道题可以推得:fn=fn−1+2fn−2+n4,因为n很大,明显可以用矩阵快速幂。但是我们会发现状态转移方程与n有关,这样我们需要利用二项式展开 n4=(n−1+1)4=C04(n−1)4+C14(n−1)3+C24(n−1)2+C34(n−1)1+C44(n原创 2017-07-28 19:55:49 · 463 阅读 · 0 评论 -
HDU5015 233 Matrix
题目的意思是有一个叫做233 Matrix的矩阵。给定第一行元素a(0, 1) = 233, a(0, 2) = 2333, a(0, 3) = 23333, ..., a(0, n) = 10 * a(0, n - 1) + 3, (n >= 2)。第一列元素a(1, 0), a(2, 0), a(3, 0), ..., a(n, 0),和一个递推式子a(i ,j) = a(i原创 2016-11-05 20:02:12 · 307 阅读 · 0 评论 -
poj3070Fibonacci(矩阵快速幂模板)
代码一:#include#includeusing namespace std;const int MOD = 10000;int fast_mod(int n){ int base[2][2] = {1, 1, 1, 0}; int ans[2][2] = {1, 0, 0, 1}; int tmp[2][2]; while(n) {原创 2016-11-03 15:24:19 · 386 阅读 · 0 评论 -
UVA11651Krypton Number System(DP+矩阵快速幂)
题意:有一个base(2≤base≤6)base(2≤base≤6)进制系统,这里面的数都是整数,不含前导0,相邻两个数字不相同。而且每个数字有一个得分score(1≤score≤109)score(1≤score≤109),得分为 相邻两个数字之差的平方之和。给出basebase和scorescore,求满足条件的整数的个数 mod232mod232。分析原创 2016-11-07 20:54:54 · 799 阅读 · 0 评论 -
HDU3037Saving Beans(lucas定理模板)
题目相当于求n个数的和不超过m的方案数。如果和恰好等于m,那么就等价于方程x1+x2+...+xn = m的解的个数,利用插板法可以得到方案数为:(m+1)*(m+2)...(m+n-1) = C(m+n-1,n-1) = C(m+n-1,m)现在就需要求不大于m的,相当于对i = 0,1...,m对C(n+i-1,i)求和,根据公式C(n,k) = C(n-1,k)+C原创 2017-09-25 15:06:46 · 350 阅读 · 0 评论 -
HDU4810 Wall Painting(组合数学+二进制)
题目大意:有以为画家,有n种颜料,给出n种颜料的值。然后在1~n天中,他每天都会选择相应天数的颜料数进行混合,形成新的一种颜料。比如说第2天,他会选择任意两种的颜料混合,得到新的一种颜料(所选的颜料的值全部取亦或后的到的数即为新颜料的值)然后对应输出每一天有可能合成颜料值的总和。思路: 首先把所有的数都拆成二进制,然后把他们在某一位上的数字加起来,比如原创 2017-09-30 14:10:36 · 604 阅读 · 0 评论 -
FZU2282Wand (组合数学+错排应用)
Problem 2282 WandAccept: 84 Submit: 310Time Limit: 1000 mSec Memory Limit : 262144 KB Problem DescriptionN wizards are attending a meeting. Everyone has his own magic wand. N mag原创 2017-08-04 19:29:22 · 613 阅读 · 0 评论 -
n个不同的东西分给k个人,共有多少种分法
与n和k的大小无关,每件物品都有 k 种分法,则 n 件不同物品,按照乘法原则,共有k^n 种分法。 如果是 n 件相同物品,则共有 C[ n+k-1 , n] 种分法;此两种分法都不限每个人分得的物品件数。原创 2016-12-03 19:24:37 · 8340 阅读 · 2 评论 -
Codeforces Round #382D. Taxes(哥德巴赫猜想)
D. Taxestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputMr. Funt now lives in a country with a very specif原创 2016-11-28 16:52:27 · 821 阅读 · 0 评论 -
LightOJ1234Harmonic Number(打表小技巧)
题目大意:给你一个n,让你求1/1+1/2+1/3+..1/n思路:因为n的值达到了1e8,内存不够,可以每隔50项纪录一下。#include#include#include#include#includeusing namespace std;const int maxn = 1e8+5;double sum[maxn/50+5];void init(){原创 2017-03-21 16:32:24 · 462 阅读 · 0 评论 -
霍纳法则(Horner's rule)
霍纳法则简介假设有n+2个实数a0,a1,…,an,和x的序列,要对多项式Pn(x)= anxn+an-1xn-1+…+a1x+a0求值,直接方法是对每一项分别求值,并把每一项求的值累加起来,这种方法十分低效,它需要进行n+(n-1)+…+1=n(n+1)/2次乘法运算和n次加法运算。有没有更高效的算法呢?答案是肯定的。通过如下变换我们可以得到一种快得多的算法,即Pn(x)=原创 2017-03-30 16:01:27 · 3300 阅读 · 0 评论 -
等比数列二分求和
AcDreamer博客原文链接:http://blog.youkuaiyun.com/acdreamers/article/details/7851144二分解决自然是因为幂次太大,用公式远超int范围,无法求解今天我们学习如何有效地求表达式的值。对于这个问题,用二分解决比较好。 (1)当时,(2)当时,那么有 (3)当时,转载 2017-04-30 19:28:11 · 800 阅读 · 0 评论 -
等比数列二分求和(首项为0次项与1次项的方法)
首项为1次项的,前面的博客中已经有过讲解:http://blog.youkuaiyun.com/rain722/article/details/71034438附上代码:#include #include #include using namespace std;const int M = 1000000007;typedef long long LL;LL power(LL a,LL原创 2017-05-02 15:19:14 · 1224 阅读 · 0 评论 -
URAL2070Interesting Numbers(数学题)
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=20702070. Interesting NumbersTime limit: 2.0 secondMemory limit: 64 MBNikolay and Asya investigate integers together in th原创 2017-03-23 13:30:11 · 423 阅读 · 0 评论 -
二分乘法
二分乘法主要是解决乘法的结果远超int范围,但为结果有取余的乘法运算LL power(LL a,LL b) { LL ans = 1; a %= MOD; while(b) { if(b & 1) { ans = ans * a % MOD; b-原创 2017-05-02 15:22:45 · 1148 阅读 · 0 评论 -
HDU5478Can you find it(快速幂)
题意:给你C,k1,k2,b1,按字典序输出满足的所有(a,b)对解题思路:因为对于任意n均满足,故n=1的情况也是符合的,故可得①而n=2的情况也是符合的,可得②因为①式mod C = 0 ,所以①式乘以一个数mod C 仍为0,不妨①式*,可得所以,我们只需遍历一遍a的取值(1~C-1),利用快速幂计算出,以及,再根据式①可以原创 2017-09-03 16:24:20 · 511 阅读 · 0 评论 -
排列组合 C(n,m)
一、求解C(n, m)公式一: 公式二:公式二可以这么理解,从n个物品中取m个有2种情况:(1)不取第n个物品,于是从前n-1个中取m个; (2)取第n个物品,于是从前n-1个中取m-1; 所以答案是这两种情况的和 二、求解C(n, m)%p,p为大质数当n,m,p都很大的时候,用公式二肯定不行了,费时间又费内存,这时候要用公转载 2017-08-14 15:40:57 · 4263 阅读 · 0 评论 -
Codeforces785D. Anton and School - 2(组合数学)
题意: 问你一共有多少个子串,满足下列条件: ①长度为偶数 ②前一半是( ③后一半是) ④子串不必要连续。解题思路: 首先需要知道一个公式* O( n )的预处理。很显然需要统计一下每个位置前面的(有多少个,后面的)有多少个,才可以方便计数。 * 算出对每一个位置前后的()有多少种匹配,为了保证不重复,所以我们要求一定要使用当前位原创 2017-08-14 15:38:53 · 369 阅读 · 0 评论 -
UVA - 10325The Lottery(容斥)
题意:求1~n中不能被给定m个数中任意一个数整除的数的个数思想:n-(1~n中至少能被m个数中的一个整除的数个数)解法: 容斥原理的思想,多减的数要加回去比如第一组样例:10 - 能被2整除的数的个数 - 能被3整除的数的个数 + 能被6整除的数的个数第二组样例:20-能被2整除的数的个数-能被4整除的数的个数+能被4整除的数的个数(2,4的最小公倍数)原创 2017-08-13 21:10:33 · 389 阅读 · 0 评论 -
UVA11806Cheerleaders(容斥原理)
题目大意:在一个m行n列的矩阵网里放k个石子,问有多少种画法?每个格子最多放一个石子,所有石子必须用完,并且在第一行、最后一行、第一列和最后一列都得有石子。解题思路:容斥原理,我们可以先求说在m∗n的矩阵上放k个石子的种数C(nmk),减掉四条边界不放的情况就是答案了。所以枚举16种状态,用二进制数表示说四条边中那些边是不放石子的。#includeusing na原创 2017-08-13 20:34:12 · 355 阅读 · 0 评论 -
Codeforce 450B Jzzhu and Sequences
B. Jzzhu and Sequencestime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputJzzhu has invented a kind of sequence原创 2016-11-05 19:59:29 · 400 阅读 · 0 评论