
数学
mis_deer
Make_myself.
展开
-
[LightOJ 1027] A Dangerous Maze (概率与期望)
DescriptionYou are in a maze; seeing n doors in front of you in beginning. You can choose any door you like. The probability for choosing a door is equal for all doors.If you choose the ith door原创 2016-01-17 19:41:57 · 360 阅读 · 0 评论 -
[SCU 4519] 来签个到吧 (GCD + 期望)
SCU - 4519 盒子里有若干个球,每个球上面都有一个数字,数字各不相同 每次从中选两个数字 x,y,设 z=|x−y|| x - y | 若 z不在盒子中,则加入这个数 反复执行操作,直到无法再向盒子里加数 随机从盒子中摸出一个球,反复执行这个操作直到所有球都被摸出来过 问最后的期望步数第一部分的构造: 设所有数的最大公因数是D 则所有数可以表示为 x=原创 2016-05-23 13:46:43 · 337 阅读 · 0 评论 -
[HDU 3037] Saving Beans (隔板法+lucas定理)
HDU - 3037 有不超过 m个球,放入 n个盒子里,求方案数m个球放入 n个盒子,允许盒子为空 用隔板法可得方案数为 C(m+n-1, m) 所以即求 C(n-1, 0) + C(n, 1) + C(n+1, 2) + … + C(m+n-1, m) 利用组合数公式 C(n, k) = C(n-1, k-1) + C(n-1, k) 原式 = C(n, 0) + C(n, 1)原创 2016-07-15 11:32:32 · 323 阅读 · 0 评论 -
[HDU 4349] Xiao Ming's Hope (lucas定理)
HDU - 4349 给定n求满足 C(n,m)为奇数的 m的个数首先朴素的想法是把每一个组合数都求出来 但是组合数比较大,所以自然的就想到 mod 2 所以很关键的一点是要转化为 C(n,m)%2 即 C(n,m)%2 = 1 的m的个数 利用lucas定理展开,审视乘积中的每一个组合数 由于 C(0,0) = C(1,0) = C(1,1) = 1,C(0,1) = 0 所以要原创 2016-07-15 12:08:31 · 250 阅读 · 0 评论 -
[Codeforces 697C] PLEASE (矩阵特征向量)
Codeforces - 697C 有三个倒扣着的碗,刚开始钥匙放在中间 之后每次将中间的碗和其他碗交换位置, 交换选择的碗是等概率的 问最后钥匙在中间的概率是多少很容易就写出一个dp式子 然后将转移过程写成矩阵的形式 然后求矩阵的特征值和对应的特征向量 再把初始状态用特征向量表达,最后就能得出概率#pragma comment(linker, "/STACK:1024原创 2016-07-17 21:31:41 · 492 阅读 · 1 评论 -
[HDU 5726] GCD (倍增法+二分)
HDU - 5726 给定一个序列,每次询问一个区间 输出这个区间上所有数的GCD,以及GCD与其相同的区间个数赛上太智障了读错了题,以为是求得是GCD相同的子区间的个数一个连续区间的GCD,用倍增法预处理一下,就能做到 O(1)查询 对于相同区间计数,就把询问先离线一下 枚举区间左端点,区间GCD是随右端点递减的,并且是阶梯式的 并且这样一个阶梯递减的很快,可以当作log的 所原创 2016-07-19 19:25:12 · 2479 阅读 · 0 评论 -
[SCU 4516] Mingo's Game (斜率DP)
SCU - 4516 有 N个关卡,可以分为 K块,每个关卡都有个权值 tit_i 每次选择最早没有通关的关卡块,设这个关卡包含了[i,j][i,j]的游戏 选到最早没有通关的关卡是k, 选到 k的概率是 P=tk∑jx=ixP =\frac {t_k} {\sum_{x=i}^j x} 选到一个关卡一定能通关,花费一小时 求合理分块的情况下,通关所有关卡块的期望时间最原创 2016-05-23 13:41:35 · 274 阅读 · 0 评论 -
[HDU 5826] physics (简单物理题+简单积分)
HDU - 5826 直线轨道上放着 NN个球,他们有着初始速度和位置并进行弹性碰撞, 他们的加速度和速度满足关系 a×v=Ca\times v = C,其中 CC是常数 问 tt秒后速度第 kk小的球的速度首先弹性碰撞交换速度,所以根本不必管位置 其次速度和时间的关系可以直接积出来 v=2Ct+v20‾‾‾‾‾‾‾‾√v=\sqrt{2Ct+v_0^2},其中 v0v_0是初原创 2016-08-11 19:48:54 · 371 阅读 · 0 评论 -
[Codeforces 217B] Blackboard Fibonacci (菲波那契数列 + 更相减损术)
Codeforces - 217B 递推一个菲波那契数列,开始时有上下两个数分别为 0 和 1 然后一个 T操作是将上面的数替换成两数之和 B操作是将下面的数替换成两数之和 这样一来 T和 B是交替进行的,但是过程中出了错, 在 NN次操作以后,得到一个数 RR 问最少错几次能得到最后一个数,并输出操作序列 其中 1≤N,R≤1061\le N,R\le 10原创 2016-08-24 11:34:10 · 384 阅读 · 0 评论 -
[Codeforces 585C] Alice, Bob, Oranges and Apples (Stern-Brocot Tree + 更相减损法)
Codeforces - 585C A和 B两个人玩一个游戏,开始时一共有 XX 个橘子和 YY 个苹果 A先拿出一个橘子,B拿出一个苹果,然后进行若干次操作 每次一个人将所有的水果给另一个人, 然后再从袋子里拿出与之前等量的两种水果 最后袋子里的水果恰好被拿完,求构造一个满足条件的操作序列如果知道 Stern-Brocot Tree 这个东西的话, 会发现整个游戏过原创 2016-08-24 16:33:52 · 651 阅读 · 0 评论 -
[CQU 21466] zzblack与斐波那契数列 (矩阵快速幂)
CQU - 21466 求 f(⌈(5√+12)2m⌉)f( \lceil {(\frac {\sqrt{5}+1} {2})}^{2m} \rceil )%2238065148 其中 f(n)f(n)是 FibonacciFibonacci数列的第 n项首先要求项数,一看 m很大,肯定是快速幂但是底数是个浮点数,肯定不能直接快速幂 所以要给底数加一个 (5√−12)2m{(\frac原创 2016-05-26 19:01:20 · 319 阅读 · 0 评论 -
[CodeForces 27E] Number With The Given Amount Of Divisors (数论 + 反素数)
CodeForces - 27E 求约数个数为N的最小的数这样的数一定是反素数,但不知道反素数也不要紧 用DFS从小到大枚举质数表中的每一个质数 然后乘起来,计算能组成的约数的个数 加两个剪枝,一是约数个数大于N的 二是继续增加这个质数的个数,但无法更新答案的#include <cstdio>#include <iostream>#include <cstdlib>#includ原创 2016-04-30 16:07:32 · 272 阅读 · 0 评论 -
[LightOJ 1030] Discovering Gold (概率DP)
DescriptionYou are in a cave, a long cave! The cave can be represented by a 1 x N grid. Each cell of the cave can contain any amount of gold.Initially you are in position 1. Now each turn you th原创 2016-01-17 23:03:37 · 302 阅读 · 0 评论 -
[CQUOJ 21412] 软妹币!软妹币!软妹币! (数学+DP)
CQUOJ - 21412 题意大致是,用若干不同的数中的某些数加减得到 1…n之间的所有数,需要的最少几个不同的数 赛上是找规律做的,虽然过了,但是感觉不太稳,赛后看了题解恍然大悟首先有这样一个事实,如果有 3个数可以表示 1..13 那么对于小于 13的n,答案至多为 3 所以我们可以考虑,用 i个数能够构造出的最大的数是多少设 dp[i]表示 i个数最大能表示 [1, dp[i]]原创 2016-04-07 19:01:35 · 426 阅读 · 0 评论 -
[POJ 1284] Primitive Roots (数论,原根)
POJ - 1284 题意是,求一个质数的原根 原根的定义是,对于正整数 aimodp(i=[1,p−1])a^i mod p (i=[1,p-1])得到的集合为{1,2,…,p-1},那么则称 a是 p的一个原根 对于任意正整数 p,其原根个数为 ϕ(ϕ(p))\phi( \phi(p) ),ϕ(n)\phi(n)为欧拉函数,表示小于n且与n互质的数的个数 而质数的欧拉函数值为 p-1,所原创 2016-04-07 20:55:15 · 264 阅读 · 0 评论 -
[UVa 10943] How do you add? (计数+隔板法+重叠隔板)
CodeForces - 446A一个长度为 N的序列,现在可以修改最多一个值 使得序列中最长严格递增的序列的长度最长好题! 这题看起来很简单,但是坑点很多,毕竟 CF的题啊…… 首先,有一个很直接的思路是修改两个递增序列中间的断点,把它们拼接起来 但是这样太简单了,忽略了很多特殊情况,所以我们从头考虑:更改数为 0如果整个序列已经是递增的了,输出 N,结束如果不是,先在序列中找未修改时原创 2016-04-24 15:56:37 · 343 阅读 · 0 评论 -
[CodeForces 118D] Caesar's Legions (计数DP)
CodeForces - 118D 有 N1个步兵和 N2个骑兵排成一列 其中不能有连续的 K1个骑兵,连续的 K2个步兵 问有多少种排列方式这题计数的我刚开始想得比较复杂 妄图用组合数和排列数给算出来 后来经菊苣提醒,发现有更无脑的做法这种连续序列相关的,事实上可以用计数 DP来做 dp[i][j][k] 表示当前是第 i个士兵,其中用了 j个步兵 而 k如果是 0..K1则表示包括原创 2016-04-15 18:23:44 · 406 阅读 · 0 评论 -
[CQUOJ 21448] 会做题的兔兔 (数学+DP)
题意大意是有一个整数,可以用若干个 2的 n次幂累加得到,问一共有多少种累加方案 统计方案的题,最重要的是做到不重复,不遗漏 dp[i][0]表示构成 i中不含 1的方案有多少种 dp[i][1]表示构成 i中含 1个 1的方案有多少种 dp[i][2]表示构成 i中含 1的方案有多少种 最后答案是 dp[N][0] +dp[N][2] 思路如下: 1) 如果 i是奇数,那么必然要有原创 2016-04-07 19:08:59 · 249 阅读 · 0 评论 -
[HDU 4565] So Easy! (数学)
HDU - 4565 求 ⌈(a+b√)n⌉%m\lceil{(a+\sqrt{b})^n}\rceil \% m 的值,其中 0<N<2310<N<2^31 这题有个取整,看起来似乎根本没法用快速幂,没法做 实际上需要一点数学技巧特别注意到,题目提出了 (a−1)2<b<a2(a-1)^2<b<a^2 令 Fn=(a+b√)n+(a−b√)nF_n=(a+\sqrt{b})^n+(a-\s原创 2016-04-15 16:46:41 · 237 阅读 · 0 评论 -
[HDU 4569] Special equations (数学+技巧+脑洞)
HDU - 4569 给你一个多项式,求使得多项式 mod (P*P)的平方为 0的解刚开始题目扯了一堆 CRT啥啥啥的,其实是烟雾弹 注意到这题 P只有 1e4,意味着可以从 0..P-1 枚举出 x的解 因为根据 mod 的性质,以及 f(x)是多项式 如果 f(x)%P=0,那么 f(x+P)%P=0 所以只需要枚举 0..P-1就好了 但是这题求的是 mod P*P就比较麻烦,乘原创 2016-04-15 21:42:59 · 276 阅读 · 0 评论 -
[UVa 11426] GCD - Extreme (II) (数论 + 脑洞 + 技巧)
UVa - 11426 给定一个 N,数对 i,j <= N且 i < j 求所有数对的 gcd(i,j)的和 其中 N <= 4e6这是大白 p125的例题 首先按题目描述两个for肯定是不行的 所以我们反过来考虑,一个数是多少对数的gcdgcd 换句话来说,就是一个数被加了几次 于是我们枚举这个gcdgcd为ii 设有数对 a,b(a<b)a,b(a < b)使得 g原创 2016-04-30 14:47:30 · 314 阅读 · 0 评论 -
[Codeforces 711E] ZS and The Birthday Paradox (数学+Legendre公式)
Codeforces - 711E 生日攻击的模型,现在有 2^n天,k个人,问不冲突的概率 其中 n和 k都是在 LL范围内的数,并且要输出既约分数很容易就列出计算式,难点就在于约分 算式大概是 1−ab=b−ab1-\frac a b = \frac {b-a} b这个形式的 然后可得 gcd(b−a,b)=gcd(a,b)\gcd(b-a, b) = \gcd(a, b) 所原创 2017-01-17 11:57:30 · 363 阅读 · 0 评论