- 博客(17)
- 资源 (2)
- 收藏
- 关注
原创 【组合数取模】
zoj 3557Lucas定理:只适用于p为素数#define N 10005// Lucas定理求解C(n,k)%p, p是素数// C(n,k)%p = C(n%p,k%p)*C(n/p,k/p)%p// C(n,k)%p = n!/(k!*(n-k)!)%p = n!*((k!*(n-k)!)^(p-2))%p// 对于一个质数p,i对p的逆元可以不用扩展欧几里得进行求解/
2011-10-31 02:04:02 1235
原创 【矩阵运算+模板】
矩阵运算是属于线性代数里的一个重要内容,上学期学完后只觉得矩阵能解线性方程,不过高中的时候听说过矩阵能优化常系数递推以及将坐标上的点作线性变换,于是找了些资料研究了一下,并把许多经典题以及HDU shǎ崽大牛总结的矩阵乘法的题目[1]、[2]和开设的矩阵乘法DIY Contest给做完了,感觉收获颇丰。 一个矩阵就是一个二维数组,为了方便声明多个矩阵,我们一般会将矩阵封装一个类或定义
2011-10-21 01:15:50 1719
原创 【几何】2011 regional Beijing Site B——Hou Yi's secret——hdu 4082
注意重点&三点共线的情况。还有蛋疼的精度!#define N 20#define eps 1e-8struct node { int x,y;}p[N];struct edge { double l[3];};edge tri[3*N*N];bool dd(double x,double y) { return fabs( x - y ) < eps;} d
2011-10-30 01:09:50 648
原创 【MST】2011 regional Beijing Site A—— Qin Shi Huang's National Road System——hdu 4081
这题可以算是MST的变形,首先求MST,作用是枚举每条边。然后A = 左子树最大值 + 右子树最大值,B = 余下长度,注意枚举的那条边不是题目中的特殊边,因为如果这样想就变成了B固定,求A的最优值,而题目中A和B都是变量,互相牵制。我在这里不是枚举边,这样做太麻烦了,改成枚举任意两点,dfs求出两点之间边权最大的边,把它替换了。额。。。写的有点搓,各位尽情bs吧#include #
2011-10-30 01:03:58 598
原创 【codeforces #3】A——BFS+贪心
BFS不解释#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;
2011-10-28 13:55:21 422
原创 【codeforces #91 div2】
A,B水题。C:暴力枚举l~r之间的lucky number,因为最多约有1500个lucky number,所以可以大胆暴力!注意int溢出#include #include #include #include #include #include #include #include #include #include #include #include #
2011-10-28 02:51:52 421
原创 【二叉搜索树】hdu 3791
二叉搜索树:左子树比根小,右子树比根大,中序遍历会得出有序序列。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inclu
2011-10-27 15:17:06 406
原创 【trie树】hdu 1305
看来一个大牛的code,好厉害,完全不用结构体啥的去建树,就只利用数组的下标关系去记录,赞~#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #i
2011-10-27 01:43:06 526
原创 【二叉树】POJ 2255
题意很简单,给出一棵树的前序&中序遍历,输出后续遍历。首先我们来研究一下第一个sample:DBACEGF ABCDEFG前序遍历是先是从根节点->左子树->右子树;而中序遍历则是左子树->根节点->右子树。所以DBACEGF中D是根, ABC DEFG 中序可以找左子树&右子树,此时把D放在输出数组的最后一个,然后先递归处理右子树再处理左子树。#include
2011-10-26 13:09:59 484
原创 【矩阵快速幂】hdu 1757
不解释#define N 10int MOD ;struct Mat{ int mat[10][10];};//初始化单位矩阵Mat init(){ Mat E; for(int i = 0; i < N; i++){ for(int j = 0; j < N; j++){ if(i == j)
2011-10-22 22:00:53 614
原创 【递推&矩阵快速幂】hdu 2604
前四位我们可以算出d[1]=2,d[2]=4,d[3]=6,d[4]=9. 我们可以这样想:一个合法串可以由两个较短的合法串组成 就以d[n]为例:(注意不能重复) 1、n-1个字符的时候: +m 2、n-2: 只能+mm,会和n-1重复,所以不考虑n-2 3、n-3: +mmf 4、n-4: +mmff 5、n-5: 如果是+
2011-10-22 21:38:49 559
原创 【矩阵快速幂】hdu 1575
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define
2011-10-22 19:25:29 369
原创 hdu 2855
暴力打表找规律: = F(2n)。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using names
2011-10-22 18:57:12 474
原创 【Fibonacci 数列前四位&后四位】hdu 3117
这题的前四位是参考别人的思路的,我发现求前几位通常做法是取对数!后四位不用说,当n>=40时,位数>8。另外,后四位的周期是15000,就这样打表求出后四位。至于前四位,就要用到Fibonacci 数列的通项公式,我看了百度百科后才知道这个公式==,另外,有趣的是当n无穷大,前一项与后一项之比逼近黄金分割0.618。。。orz。话说回来,an可以表示为t*10^k(t为>1的浮点数
2011-10-22 18:05:53 884
原创 【Codeforces】School Regional Team Contest, Saratov, 2011
很久没有更新blog了==昨天做了cf,成绩不是很理想,这其中有外在因素,因为最近班里比较多活动,只好忍痛割爱搞其他DD。。。==|||今天的这场cf比较水,很多大牛早早就AK了,tourist还是稳坐第一。。。orz!ABCD都是水题,这里只贴代码。ps:这次不用standard input output,改用文件形式,搞得一开始返回Idleness limit exceeded o
2011-10-20 02:31:17 1063
原创 实验
#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define
2011-10-12 01:40:55 606
原创 The 2011 ACM-ICPC Asia Dalian Regional Contest——D Hexadecimal View
写得好挫,大牛们鄙视吧~#include #include #include #include #include #include #include #include #include #include #include #include #inclu
2011-10-02 22:58:48 833
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人