自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 lightoj 1104(期望)

题意:假设一年有n天,问至少有多少个人,能保证至少其中两个人的生日在同一天的概率大于等于0.5。 题解:要计算至少两个人的生日同天概率可以逆着算所有人不同天生日的概率小于0.5,那么人数就是x = 1 * (n - 1)/n * (n-2)/n * … 直到x是小于0.5的。#include <stdio.h>#include <string.h>#include <math.h>int n

2015-06-11 17:52:17 1033 1

原创 lightOj 1027(期望)

题意:一个人在迷宫内,面前有n扇门,每个门都对应一个时间,如果时间是正数a,表示通过这扇门a分钟后可以离开迷宫,如果时间是负数a,表示通过这扇门abs(a)分钟后会重新回到这里,一个人任意选择n扇门,且如果回到这里会忘记之前选过的门,问离开迷宫的期望时间。 题解:可以令x是离开迷宫的期望时间,那么对应第三组样例,x = 1/3 * 3 + 1/3 * (x + 6) + 1/3 * (x + 9)

2015-06-11 17:47:08 682

原创 ligntOj 1038(期望)

题意:给出一个n,一步操作是让n除n的一个随机因子得到新的n,问可以得到新的n是1的步数期望。 题解:因为n/1=n这种选择会造成循环,所以需要用到递推,令n变成1的步数期望是f[n],比如n是2,f[2] = 1/2(f[2] + 1) + 1/2(f[1] + 1),加1是因为2变成2也需要一步,那么移项后,f[2] = 2 + f[1] = 2 + 0 = 2。 从小到大打一个f的表。#i

2015-06-10 21:42:05 574

原创 lightOj 1079(期望)

题意:有一个人要抢银行,有n家银行,第i个银行有m[i]的财富,且抢第i个银行被抓的概率是p[i],如果这个人抢银行被抓的概率不超过P,就是安全的,问保证安全的情况下能抢到的最大财富值是多少,每个银行只能被抢一次。 题解:01背包问题,银行i和j都抢的逃跑概率是(1-p[i]) * (1-p[j]),所以用01背包模板计算抢到价值k的逃跑概率是f[k],然后逆着从最大价值sum的f[sum]与(1

2015-06-10 21:34:42 681

原创 lightOJ 1030(期望)

题意:有一个迷宫是1×n的格子,一个人每到一个格子就可以把这个格子内的金子全部拿走,刚开始站在第1个格子,然后开始掷骰子得到点数x,他就要从当前位置走到加x的位置,如果发现位置是大于n的就重新掷骰子直到符合,如果他到了第n个格子就可以结束了。问这个人从迷宫里得到的金子的期望是多少。 题解:可以知道对于每个位置,下一个位置只能是后6个,所以从这个位置处得到的金子的期望f(i) = (f(i + 1)

2015-06-04 22:28:06 1216

原创 hdu 2254(矩阵快速幂+分治)

题解:首先要城市要离散化,根据离散数学中可达矩阵的定义,给出一个有向图的邻接矩阵A,res = (A + E)^n表示这个矩阵n步后的可达情况,res[i][j]表示点i经过n步后到点j的方法数,那么给出了t1至t2后从v1到v2的方法数,就是要计算A^t1 + A^(t1 + 1) + … + A^(t2) 用了分治的思想计算,之前有写过模板http://blog.csdn.net/hyczms

2015-06-04 19:55:18 977

原创 hdu 2842(矩阵快速幂+递推)

题意:一个中国环的游戏,规则是一个木棒上有n个环,第一个环是可以随意放上或拆下的,剩下的环x如果想放上或拆下必须前一个环x-1是放上的且前x-2个环全部是拆下的,问n个环最少多少次操作可以全部拆掉。 题解:需要进行递推,首先第一步肯定是要拆第n个环保证操作次数最少,因为后面的环是否存在对前面的环不造成影响,而先拆前面的如果要拆后面的环还是要把前面的放上,f(n)表示拆掉前n个环需要的最少操作次数,

2015-06-04 17:38:38 904

原创 lightOj 1132(矩阵快速幂)

题意:求式子(1^K + 2^K + 3^K + … + N^K) % 2^32,给出N和K,1<=n <=10^15, 1 <= k <= 50。 题解:可以看到N很大,数组肯定开不下,只能从K入手,让f(x + 1) = f(x) + (x + 1) ^k,x从1开始到n-1,然后看到(x + 1)^k是一个二项展开式,针对这个展开式构造一个包含C(n, m)的矩阵。 结果是两个矩阵相乘n-

2015-06-02 22:48:16 834

原创 hdu 3117(矩阵快速幂)

题意:求斐波那契序列的第n个数。如果超过8位,只输出前4位和后4位。 题解:后4位比较好办,直接mod10000就可以了,前4位不知道怎么求,网上看到一个人写的很详细易懂,需要用到斐波那契通项公式,详细见→传送门#include <stdio.h>#include <math.h>#include <string.h>struct Mat { long long g[2][2];}

2015-06-02 22:34:42 627

原创 hdu 3658(矩阵快速幂)

题意:一个长度为m的字符串需要填充,填充字母必须是’A’ ~ ‘Z’,’a’ ~ ‘z’,要求字符串相邻字符的ascii值的差值≤32,且必须至少存在一个相邻字符差值等于32。问有多少种填充方式。 题解:直接构造至少存在一个相邻字符差值等于32的不好做,可以逆着想,先求出差值>=32的所有情况,再求出差值<32的所有情况,两个结果相减就是解。#include <stdio.h>#include

2015-06-01 20:41:29 750

原创 uva 12470(矩阵快速幂)

题意:公式f(n) = f(n - 1) + f(n - 2) + f(n - 3),给出n,f(1) = 0,f(2) = 1, f(3) = 2,要求得出f(n)。 题解:普通的矩阵快速幂模板题。#include <stdio.h>#include <string.h>const int MOD = 1000000009;struct Mat { long long g[3][3

2015-06-01 20:33:42 875

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除