
数学
文章平均质量分 75
Ezereal
这个作者很懒,什么都没留下…
展开
-
hdu 1111 Secret Code
题意:给定复数x和复数b,求序列ai使得x=a0+a1*b+a2*b^2+...an*b^n。其中nai>=0,|b|>1.题解:先要知道复数的运算方法,复数的模:|Z|=|a+bi|=sqrt(a*a+b*b);复数除法:令t=c*c+d*d,(a+bi)/(c+di)=(ac+bd)/t+(bc-ad)/ti。接着就是化简公式了X=a0+(a1+(a2+...)*b)*b。深搜枚举a0原创 2015-09-11 18:01:44 · 607 阅读 · 0 评论 -
codeforces Round#369 div2-E ZS and The Birthday Paradox(逆元,组合)★
题意: 一年中有2^n天,问有k个人至少有两个人生日在同一天的概率,用分数表示。其中n,k题解:1e6+3为素数。直接求不好求,我们可以总数-不成立的数。不成立的即为k个人中没有一个人的生日在同一天,即。而当k-1>=mod时,分子中必然含有mod的倍数,取余后分子为0;当k-1由于分母中只含素数2,化简时只需求出分子中2的个数。然后乘上它的逆元就好注意:k>2^n的情况,原创 2016-09-05 22:13:44 · 1226 阅读 · 0 评论 -
hdu 5833 Zhu and 772002(高斯消元)
题意:给定n个数,这n个数的素因子值不超过2000,从中取任意个数使其变成完全平方数,问有多少种取法。题解:把每个数进行素因子分解,素因子a的幂为奇数则视为1,偶数则视为0,转化为从n个数中取数异或和为0有多少种取法的问题。sqrt()要单独拿出来赋值在判断是否是完全平方数,WA了几发。。。。#include #include #include #include #原创 2016-08-14 21:44:56 · 386 阅读 · 0 评论 -
2016 ACM/ICPC Reginal Shengyang hdu 5894 hannnnah_j’s Biological Test (数学推导 Lucas)
题意:一个大小为 nn 的环,选 mm 个位置涂黑,要求相邻两个黑点之间至少间隔 kk 个白点,问方案数。题解:考虑每两个人之间隔了几把椅子。可以发现,一共有M个数,和为N-M,且每个数都>=K.将每个数都减去K-1,即得到:M个正数之和为N-K*M,方案数为C(N-K*M-1,M-1).需要乘以圆排列的N,同时每个方案被算了M次,再除以M。答案为:C(N-K*M-1,原创 2016-09-18 20:28:31 · 630 阅读 · 0 评论 -
2016 ACM/ICPC Asia Regional Shenyang Online HDU 5901 Count Primes (模板 + 数论知识)★
题目大意:求 1−n(n≤1011) 之间有多少个素数,解题思路:板子题目,可以参考 Codeforces 655 F这里要用到Meisell-Lehmer的n^(2/3)的方法,借用了一大牛的板子。#include #include #include #include #include #include #include #include转载 2016-09-19 19:52:48 · 599 阅读 · 0 评论 -
2016 ACM/ICPC Asia Regional Shenyang Online HDU 5895 Mathematician QSC(矩阵快速幂+高次幂取模)★ ★
题意:已知f(n)=2*f(n-1)+f(n-2), g(n)=∑f(i)²(0思路:OEIS查到了g(n)=f(n)*f(n+1)/2, f(n)可以用矩阵快速幂求得, 有一个定理可以用于高次幂取模 x^n %k=x^(n%phi(k)+phi(k)) %k, 此处phi(x)为欧拉函数,但是在对幂次取模时存在一个除2,又因为(a/b)%k=(a%bk)/b,所以这个问题得以解决(这个方转载 2016-09-19 19:55:30 · 427 阅读 · 0 评论 -
Codeforces Round #364 (Div. 2) D 数学/公式
题意:n个学生 走长度为l的行程 步行速度为v1 公车的速度v2 车上有k个位置 求最少的时间使得所有的学生到达终点;题解:考虑什么是最优的情况呢?应该使得汽车最少的时间空车行驶,使得所有的学生坐车时间和步行时间应该相同并且同时到达终点上图为最优情况下 汽车的运动轨迹 保证所有的学生同时到达终点每一个子运动的distance=v2*t-(v2-v1)/(转载 2016-10-11 22:01:30 · 331 阅读 · 0 评论 -
HDU 5036 Explosion 概率 期望
题意:给出n个箱子。每个箱子上都有锁。一把钥匙只能开一把锁,一把锁只有一个钥匙。当然,对于有些没法用钥匙开的箱子,我们必须暴力打开。给出每个箱子中钥匙的数目和具体能开那个箱子,求暴力开箱子的数目的期望,使所有的箱子被打开。思路:很像xiaodaoBC的某道开箱子的题。但是因为那道题是每个箱子会随机的放一把钥匙。这样得到的期望为调和级数。 这道题也类似,我们首先得转载 2016-09-26 22:19:44 · 384 阅读 · 0 评论 -
HDU 5114 Collision(一元线性同余方程)
题意:两个质点在一个x*y的矩形区域内,初始位置(x1,y1)和(x2,y2)给出,两个质点保持(1,1)的速度运动,遇到区域边界会反弹(满足反射定律),问两个质点第一次相遇的位置,如果不会相遇则输出Collision will not happen. 题解:两个质点如果相遇那么一定在整点或者半点处,所以首先将所有数据乘2避免小数出现,设第一次两点横坐标相同的时刻为tx,若x1=x2则任意时刻转载 2016-09-26 22:38:05 · 465 阅读 · 0 评论 -
2014 北京区域赛 F Fluorescent HDU5117 (数学+状压+dp)★ ★
题意:有N个灯和M个开关,每个开关控制着一些灯,如果按下某个开关,就会让对应的灯切换状态;问在每个开关按下与否的一共2^m情况下,每种状态下亮灯的个数的立方的和思路:1、首先注意到N2、最开始考虑的是算出每种情况下对应的方案数,然后依次dp,但是数据量太大;3、正解是直接考虑X^3,其中X就是每种状况下亮着的灯的数量;4、如何解这个X^3?我们把它展开——X转载 2016-09-26 22:40:22 · 530 阅读 · 0 评论 -
[Educational Codeforces Round 16]D. Two Arithmetic Progressions ★ ★ ★
题意:求[L,R]区间内有多少个整数y满足 y = k1x1+b1 且 y = k2x2+b2. (x1 x2 >= 0)题解:解一下不定方程 a1k + b1 = a2l + b2,设 k mod lcm(a1, a2) / a1 的值是 t,设 lcm(a1, a2) / a1 = A,那么 k 可以写成 q·A + t 这个样子,那么显然 A 是有上下转载 2016-10-12 21:41:16 · 357 阅读 · 0 评论 -
HDU 1573 X问题 (中国剩余定理非互质)
#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define L(i) i<<1#define R(i) i<<1|1#define INF 0x3f3f3f转载 2016-10-12 21:52:05 · 388 阅读 · 0 评论 -
Intel Code Challenge Elimination Round (Div.1 + Div.2, combined)E. Research Rover (容斥Lucas)
题意: 从(1,1)通过最短路径走到(n,m),能量值为s,其中有k个特殊点,每经过一个特殊点能力值就会变成(s+1)/2,问最后能力值的期望值。 思路: 容易发现s减小的速度是很快的,最多20次就会变成1,因此我们算出经过0,1,2…20个特殊点的方案数,剩下的方案能力值都是1了。 首先考虑经过0个特殊点的方案数,就是这个题,是个很经典的容斥了,首先按经过的顺序排序,如果从点a可转载 2016-10-18 15:27:31 · 655 阅读 · 0 评论 -
Intel Code Challenge Elimination Round (Div.1 + Div.2, combined)F. Cyclic Cipher
题意: 给n个序列,一个序列内没有重复元素,不同序列内可能有重复元素,每个序列长度10100秒内,[1,m]的答案。 一个数x在某时刻的答案为,把此时所有序列的第一个元素顺序排成一个新序列,这个新序列中最长的连续x的长度。 思路:考虑对m个答案分开求,设当前要求解的数为x,那么我们只用关心所有x的位置,可能的答案一定是连续出现x的序列,假设i,j是答案中的两个序列,长度为li,lj,对转载 2016-10-18 15:35:00 · 733 阅读 · 0 评论 -
Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) C. Ray Tracing 数学
题意有一个球,一开始从00点开始发射,速度向量为(1,1),在一个nm的矩形里面弹来弹去然后k个询问,问你第一次遇到这个点的时间是多少题解:其实可以转换成一个同余方程,然后求解就好了。方程实际上是,x%2n=x0,x%2m=y0,显然可以转化为同余方程,exgcd求解就好了#includeusing namespace std;typedef lon转载 2016-10-18 16:06:07 · 378 阅读 · 0 评论 -
2013 Asia Regional Changchun HDU 4816 Bathysphere(数学)
题目大意:在海平面上找一点投放潜水艇,投放的准确地点存在误差D,求最大的潜水深度期望。题目分析:即在海平面下再画一条折线,然后用间距为2×D的竖线将图截出,求截出的图形的最大面积。解法:可以看出当将两竖线不断右移的过程中,除了一种状态以外,其余状态对于面积的影响均为单调的。此状态为当左边竖线所相交的折线为向上趋势并且右边竖线所相交的折线为向下趋势并且在到达端点前,两竖线与折转载 2016-10-18 21:37:14 · 462 阅读 · 0 评论 -
Codeforces Round #359 (Div. 2)E. Optimal Point ★ ★ ★
题意:给定t组数据,每组给n个点(x,y,z)。求一个点(X,Y,Z)使得max(|xi-X|+|yi-Y|+|zi-Z|)最小。题解:首先二分答案 \deltaδ。假设最优的点是 (X, Y, Z)(X,Y,Z),那么对于任意的点 ii 有|x_i - X| + |y_i - Y| + |z_i - Z| \leq \delta∣xi−X∣+∣yi−Y∣+∣z转载 2016-10-07 20:48:47 · 529 阅读 · 0 评论 -
Codeforces Peter 614 C and Snow Blower
计算几何: 计算一个多边形绕着圆心旋转一周所得区域的面积,通过样例就可以看出应该是是一个圆环,所以只需要找到图形上到圆心的最远点和最近点即可,最远点一定在点上,最近点可能在点上可能在边上,具体判断方法是:由于点的给出方法为顺时针或逆时针,所以只需要O(n)扫一遍环即可,利用余弦定理去判断形成的角是否为钝角,(即最近点是不是在给定的边上)如果是钝角的话那么则取两个端点的最小值,如果不是的话则利用转载 2016-08-23 21:56:38 · 498 阅读 · 0 评论 -
E. Sum of Remainders (数学)★
题意:求解∑mi=1nmodi。思路:我们化简nmodi=n−n/i∗i。这样原式 =n∗m−∑mi=1(n/i∗i)首先m=n−−√时,直接暴力,对于剩下的,我们可以分块来搞,总会存在一段连续的值使得n/i为定值,那么我们找到这个区间就可以了。#include #include #include #include #include #include #incl原创 2016-08-23 16:26:26 · 1733 阅读 · 0 评论 -
HDU 4767 Bell (贝尔数 中国剩余定理 构造矩阵) ★ ★
斯特灵数[编辑]维基百科,自由的百科全书在组合数学,Stirling数可指两类数,都是由18世纪数学家James Stirling提出的。第一类[编辑]s(4,2)=11第一类Stirling数是有正负的,其绝对值是个元素的项目分作个环排列的方法数目。常用的表示方法有。换个较生活化的说法,就是有个人分成组,每组内再按特转载 2016-09-01 11:37:18 · 901 阅读 · 0 评论 -
hdu 1124 Factorial
题意:求n!中0的个数题解:1、两数相乘产生0,只会是2和5相乘。又由于在分解质因数时小的质数的幂次一定不小于大的质数的幂次大,所以a>=c。故解决该题转化成找出N!中5的幂次。2、如何找出5的幂次呢?举例说明:N=26,阶乘中包含因数5、10、15、20、25,可知5的幂次为6。5=5*1,10=5*2,15=5*5,20=5*4,25=5*5,求解时用26/5=5,原创 2015-09-13 16:45:02 · 364 阅读 · 0 评论 -
ZOJ 1136 Multiply
题目: 给一个数N,N>= 0, N 解析:第一,分析可知,由于它是加的位数,而不是数字,所以,对于数一定要有处理,不可能盲目的追加位数!第二,这m个数,根据题意,可以组成的数字是无穷多的所以,这里需要一个解决的办法,那就是取余。事实上,任何一个数对n取余,一共只能有n个结果(如果算0的话)。而且有这样的一个式子,如果x%n == y%n, 那么x%n * 10 +原创 2015-10-13 21:10:18 · 427 阅读 · 0 评论 -
Hdu 1163 Eddy's digital Roots(九余数定理)
题目大意: 给定一个正整数,根据一定的规则求出该数的“数根”,其规则如下: 例如给定 数字 24,将24的各个位上的数字“分离”,分别得到数字 2 和 4,而2+4=6; 因为 6 ,所以就认为6是数字24的“数根”; 而对于数字 39 , 将39的各个位上的数字“分离”,分别得到数字 3 和 9,而3+9=12原创 2015-12-10 14:49:32 · 386 阅读 · 0 评论 -
Coderforce #332 D. Spongebob and Squares
题意给你x,然后让你找有多少个n*m的矩形,可以由x个相同的多边形组成题解:数学题,这道题实际上是问,f(n,m) = sigma(k=1,k=min(n,m))(n-k+1)*(m-k+1)=x的解有多少个化简之后,我们可以得到f(n,m) = n^2m+n^2+n*m+n-(n+1)*n/2*(n+m+2)+n*(n+1)*(2n+1)/6这个式子是一个原创 2015-11-24 23:01:30 · 440 阅读 · 0 评论 -
Codeforces Round #334 (Div. 2) D. Moodular Arithmetic
题意是告诉这么个函数:,以及相关定义域. ,输入p,k,问可以找出多少函数满足条件题解:Now assume that k ≥ 2, and letm be the least positive integer such that This is called the \emph{order} of First, plug inx = 0 to find that as原创 2016-04-30 16:40:10 · 1486 阅读 · 0 评论 -
HDU 5668 Circle (约瑟夫游戏,求解同余方程组)
Fye对约瑟夫游戏十分着迷.\ \ \ \ 她找到了nn个同学,把他们围成一个圈,让他们做约瑟夫游戏,然后她得到了一个同学们出圈的编号序列.游戏是这样进行的:以同学11为起点,开始计数,计数到第kk个同学,该同学出圈.出圈的同学将不参与之后的计数.\ \ \ \ 如今Fye找到了你,她想让你告诉他满足已知出圈序列的最小的kk,如果你回答不上来,她就会很生气然后把你吊打一顿.1原创 2016-04-25 09:36:11 · 589 阅读 · 0 评论 -
hdu 5667 Sequence(矩阵快速幂+费马小定理+快速幂)
Problem Description Holion August will eat every thing he has found. Now there are many foods,but he does not want to eat all of them at once,so he find a sequence.fn=⎧⎩⎨⎪⎪1,ab,a原创 2016-04-30 14:13:19 · 463 阅读 · 0 评论 -
hdu 5826 physics (物理+积分)
题意:给出n个相同小球的初速度和初位置,初方向,v*a=c,碰撞为完全弹性碰撞,问t时刻的第k小的速度为多少思路:v*a=cv*dv/dt=c;v*dv=c*dt;1/2*v*v=c*t+c0;把t=0代入,得c0=1/2*v0*v0;所以 v=sqrt(2*c*t+v0*v0)注意2*c*t+v0*v0会爆int#include #include转载 2016-08-12 11:23:54 · 324 阅读 · 0 评论 -
HDU 3341 Lost's revenge(AC自动机+DP+变进制优化)
题目是给一个DNA重新排列使其包含最多的数论基因。字符最长是40只需要记录ACGT出现的次数。如果使用5维数组,显然超内存了。假设ACGT的总数分别为num[0],num[1],num[2],num[3]那么对于ACGT的数量分别为ABCD的状态可以记录为:A*(num[1]+1)*(num[2]+1)*(num[3]+1) + B*(num[2]+1)*(num[3]原创 2016-08-11 10:09:06 · 616 阅读 · 0 评论 -
HDU5794 A Simple Chess (容斥+卢卡斯) (改正WA代码)
终于把我又长又臭的代码改过了,坑啊,问题就出在判断dp【i】==0上面,这里不能忽略,因为可能是模过来的。。。WA我一下午,还要注意判断两种方法的步数是否小于0#include #include #include #include #include #include #include #include #include #include #include #inc原创 2016-08-05 17:14:32 · 421 阅读 · 0 评论 -
HDU5794 A Simple Chess (容斥+卢卡斯)
题意:一匹”马”在棋盘上(1,1)的位置,每次跳跃时横纵坐标都必须增大.棋盘上还有K个障碍物(保证不在(1,1)处).求跳到(n,m)的方案数,.题解:马的日字步不好处理,需要先通过一种略奇妙的坐标变换,把问题转换成一步只能向右和向下.如果下标都改为从1开始(即读入的下标减1),那么很容易推得变换后的坐标为x′=−13x+23y,y′=23x−13y.如果变换后的坐标不是非负整原创 2016-08-05 15:52:33 · 488 阅读 · 0 评论 -
HDU 5793 A Boring Question(快速幂&求逆元)
这道题就是给你一个公式,然后再给数据范围给你,然后求答案。这道题的公式推到最后就是一个等比数列的求和公式,也就是说,输入n和m,然后从m的0次方一直加到n次方的和就是答案。但是由于这道题的数据太大了,有1e9,所以我们不可能用for循环一直加到最后,所以根据公式,我们需要用到快速幂来求m^n。用快速幂求出来之后,我们根据等比数列的求和公式,就成了(1-m^n)/(1-m)%mod。转载 2016-08-04 21:07:49 · 626 阅读 · 0 评论 -
扩展欧几里德,求逆元模板
我们求a*b*c*d*e*f*g..../z 前面乘积部分LL存不下所以要一边mod一边乘最后处理到除z时,不一定能除尽比如前面那个例子,8/5=3,3除不尽2就乘以2%5的逆元在%52%5的逆元=2^(5-2)=8 这是计算逆元的一种方法,后面讲。还有一直哦你方法是扩展欧几里德算法也是后面详细讲。(3*8)%5=4=4%5===在计算(a/b)%Mod时,往往转载 2016-08-04 20:50:55 · 724 阅读 · 0 评论 -
hdu 5858 Hard problem
想到辅助线就可以写了#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define L(i) i<<1#define R(i) i<<1|1原创 2016-08-18 21:14:46 · 354 阅读 · 0 评论 -
codeforces 622F. The Sum of the k-th Powers (拉格朗日插值法)★
求 modulo109 + 7根据题目给出的例子我们可以发现, k次方的通项公式的最高次是k+1次, 根据拉格朗日插值法, 构建一个k+1次的方程需要k+2项。然后公式是 , 对于这个题, p[i]就是i^k+(i-1)^k+(i-2)^k+.....+1^k, 这部分可以预处理出来。 自己不会搞公式 , 从http://www.cnblogs.com/qscqesze/转载 2016-08-29 21:31:17 · 1338 阅读 · 0 评论 -
CodeForces P. Area of a Star(数学)
题意:给出圆形中的一个n角星,求其面积题解:只需要求出黄色三角形的面积,首先可以求出三个角的值,正弦定理可以得到三边长度,面积公式求面积,最后乘上2n即可。#include#include#define pi acos(-1.0)int main(){ double n,r;转载 2016-08-30 17:17:06 · 368 阅读 · 0 评论 -
Codeforces Round #317 [AimFund Thanks-Round] (Div. 2) C(组合数+容斥)
题意:给出a,b,c,L,要求a+x,b+y,c+z构成三角形,x+y+z思路:用容斥来搞,结果ans=全部组合的情况-不符合三角形定理的情况。 1.求全部组合的情况: 当L=0时,res=1; 当L=1时,res=3;所以当L=1时形成的情况为1+3=4 当L=2时,res=6;所以当L=2时形成的情况为4+6=10 当L=3时,res=10; 所以当L=3时形成的情况为转载 2016-10-19 21:13:40 · 441 阅读 · 0 评论