- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 hdu3117 Fibonacci Numbers (矩阵快速幂)
题目大意:输入一个n,求n的斐波那契数值的前四位,如果位数小于等于8 位,则全部输出。解题思路:后四位可用矩阵快速幂求出,而前四位则可用公式求出,借鉴了某大神的博客http://blog.sina.com.cn/s/blog_9bf748f301019q3t.html求解前四位的方法:斐波那契数列的通项公式如下:, 改变通项的形式:F(n)=(1/√5)*[((1+√5)/
2013-08-31 20:47:35 791
原创 lightOJ 1079 Just another Robbery
题目大意:给出Harry可以抢劫的银行数n,和被抓到的概率p,求在Harry不被抓到的情况下,他最多能够抢多少钱解题思路:概率dp,状态转移方程:dp[ i ] [ j ] = min( dp [ i-1 ] [ j ] ,dp [ i-1 ] [ j- a[i] ] + (1 - dp [ i-1 ] [ j- a[i] ]) * p[i] )。其中dp[i][j]表示抢劫前 i 个
2013-08-31 14:15:14 1091
原创 容斥原理 from vici
http://www.cppblog.com/vici/archive/2011/09/05/155103.html
2013-08-31 10:20:04 680
原创 lightOJ 1038 Race to 1 Again
题目大意:对于一个数D,随机地选取D的一个约数X,令D = D / X ,重复上述过程,求将D变为1时,操作次数的期望值。解题思路:令E[n] 表示数 n 的期望,a[i] 表示 n 的约数, M表示n 的约数的总数,则有 E[n] = ( E[ a[1] ] + 1 ) / M + ( E[ a[2] ] + 1 ) / M + …… + ( E[ a[M] ] + 1 ) / M
2013-08-31 08:49:12 1055
原创 LightOJ 1030 Discovering Gold
题目大意:投掷一枚骰子,假设正面向上的数值为 x,当前位置为 i , 每次走 min (x,N - i) 步,每到一个格子会得到相应的黄金数,求走完长度为 N 的格子的到黄金的期望。 解题思路:E[ i ] 表示当前位置在 i 处 获得的期望,则有 E[ i ] = ( E[ i +1 ] + E[ i + 2] +……+E[ i + 6] )/ 6 + gold[ i ] ;而当 N -
2013-08-30 15:34:15 1501
原创 LightOJ 1027 A Dangerous Maze
题目大意:求走出迷宫所用时间的期望。解题思路:设能走出去的门的个数为cnt,总的个数为n,那么一次走出去的概率为 cnt / n,走一次的用的平均时间是 sum ( t ) / n,期望的次数为 n / n1。时间期望是:( sum ( t ) / n ) * ( n / n1 ) = sum ( t ) / n1。#include#include#includeint gcd(
2013-08-29 19:41:03 836
转载 位运算简介及实用技巧
转载出自http://matrix67.com===== 真正强的东西来了! =====二进制中的1有奇数个还是偶数个 我们可以用下面的代码来计算一个32位整数的二进制中1的个数的奇偶性,当输入数据的二进制表示里有偶数个数字1时程序输出0,有奇数个则输出1。例如,1314520的二进制101000000111011011000中有9个1,则x=1314520时
2013-08-29 10:51:08 564
原创 HDU 1573 X问题 (非互质情况下的中国剩余定理)
解题思路:1. 因为(a1,a2,a3,a4,….,ak)不一定互质,所以不能够直接用中国剩余定理。2. x=r1+a1*k1,x=r2+a2*k2,所以有r1+a1*k1=r2+a2*k2,化简后得到 a1*k1=(r2-r1) mod(a2);用扩展欧几里得可以得到最小的k1,所以x=r1+a1*k1+a1*a2/gcd(a1,a2),就这样一直替换最后剩余一个同余方程。r1就
2013-08-19 15:42:57 776
原创 HDU 4681 String
题目大意:找到一个字符串D,使得D是字符串A的子序列,D是字符串B的子序列,同时C是D的子串(PS:请注意子串与子序列的区别)解题思路:首先求出A、B的最长公共子序列, 和A、B逆序的最长公共子序列,分别用数组 max1 和 max2 记录。然后分别在字符串A和B中找到C串的个数,假设分别为n、m,并记录在A、B串中每找到的C串的起始和终止位置,分别放在数组sa、ja、sb、jb,枚举
2013-08-15 18:52:47 627
原创 Aizu 2249 Road Construction(SPFA)
赤裸裸的SPFA……题目大意:从给的所有边中删除一些边(即选择一些边),前提需要保证其余每个点到第一个点的距离仍为原来的最小值,并使得总花费最小。解题思路:刚开始想多了,xixi分析的是对的:只需要找到每个点到第一个点的最短路径,并记录每个边的花费。最后统计总和就OK了,于是把POJ 1511代码直接考过来(因为不太会写SPFA,之前也是用的模板,弱爆了),改了改就A掉了。话说 这
2013-08-14 20:46:01 1063
原创 HDU 4666 经典的求最远曼哈顿距离
求最远曼哈顿距离,对于一个n维的空间,其中两点的曼哈顿距离为:|x1-y1|+|x2-y2|+|x3-y3|+|x4-y4|+……+|xn-yn| (两点的坐标分别为(x1,x2,……,xn)、(y1,y2,……,yn))以下以二维平面为例研究: 设距离最远的两点为i,j,可知所求的最大距离必定有以下四种形式之一:(xi-xj)+(yi-yj), (
2013-08-14 11:01:01 1104
原创 HDU 4667
#include #include #include #include #include const int MAXN = 300;const double PI2 = acos(-1.0) * 2.0;const double EPS = 1e-5;const double pi = acos(-1.0);struct REC{ double x,y,r;}li
2013-08-13 17:06:46 1066
转载 zoj 3351 Bloodsucker
转自:http://www.cppblog.com/aswmtjdsj/archive/2011/10/29/159321.html题目大意:说你手里有n个生物,n-1个人,1个吸血鬼。每一天,你从这堆里面随机挑出两头来,如果是不同种,那么人就有p的概率会被同化为吸血鬼。求一个期望,问给定n和p的情况下,所有人变吸血鬼的期望天数D。做法:首先是要看出最基本的式子,就
2013-08-09 10:38:07 817
原创 HDU 4662 MU Puzzle
#include#include#include#include#includeusing namespace std;const int maxn = 1000007;char str[maxn];long long a[40];void init(){ // int k=1; a[0]=1; for(int i=1; i<=32; i
2013-08-08 18:48:49 1065
原创 HDU 4655 Cut Pieces
#include#include#include#include#include#includeusing namespace std;#define M 1000000007#define LL long longconst int maxn = 1000007;LL a[maxn] ,b[maxn];LL min(LL a,LL b){ if(a<b) r
2013-08-08 18:44:07 781
原创 HDU 4604 Deque
#include#include#include#includeusing namespace std;const int maxn = 100010;int a[maxn], n;int dp_up[maxn], num_up[maxn];int dp_down[maxn], num_down[maxn];void GetAns(int dp[], int num[]
2013-08-07 10:34:24 831
转载 ACM_java
Chapter I. Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特点: (1) 最明显的好处是,学会Java,可以参加Java Challenge :) (2) 对于熟悉C/C++的程序员来说,Java 并不难学,找本书,一两周业余时间就可以搞定了。当然,这里只是指一般编程,想熟悉所有的Java库还是需要些时间的。 事实上,Java
2013-08-05 18:22:58 783
原创 ZOJ 2704 括号匹配问题
题目大意:给定一个只含()[]的字符串,问其中最长的合法字串是什么。解题思路:要判断一个串是否合法,只要维护一个栈进行O(n)的扫描就可以了。但是枚举字串+扫描就O(n^3),肯定不靠谱了。事实上注意到,如果从左往右扫描到第i个,出现不合法的情况,那么前面无论保留什么,都是非法的,所以把栈清空,继续从位置i+1开始新的扫描,复杂度O(n)。代码如下:#include#includ
2013-08-05 17:57:00 853
windows64+Python3.4下Numpy+Scipy+Matplotlib安装文件
2016-07-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人