数学
Jinx_jinx_again
啊啊啊啊哈哈哈
展开
-
HDU 4465 Candy
式子是很好推的,只是当时不知道如何去控制精度问题。要知道P的N次方是很小的一个数。最后的式子很简单的for(int i=0;i又可以递推出C。 C(n+1,i+1)=C(n,i)*(n+1)/(i+1)...然后因为直接算出P的N次方会很小,所以将这个数分解。分N次乘上去。#include #include #include using namespace std;原创 2013-07-22 14:53:14 · 920 阅读 · 0 评论 -
hdu 1395 2^x mod n = 1 (简单数论)
题目大意:求出一个最小的x 使得 2的x次方对n取模为1思路分析:若要 a*b%p=1 要使得b存在则 gcd (a,p)=1.那么我们应用到这个题目上来。当n为偶数 2^x 也是偶数,那么gcd 肯定不是1.故这个是不存在的。那么n为奇数的时候,也就一定是1了。所以直接暴力找。#include #include using nam原创 2014-07-01 12:24:56 · 945 阅读 · 0 评论 -
hdu 1163 Eddy's digital Roots (数论)
click也就是一个原创 2014-07-01 15:10:47 · 561 阅读 · 0 评论 -
hdu 1717 小数化分数2 (数论)
点我点我点我!!!接下来要做的就是模拟上述过程了。静下来想一下自己要得到的信息。然后拿出来,就可以了,模拟嘛,都是这样的。#include #include #include #include using namespace std;char str[20];int gcd(int a,int b){ return a%b==0?b:gc原创 2014-07-01 16:02:21 · 685 阅读 · 0 评论 -
hdu 1757 A Simple Math Problem (矩阵快速幂)
和这一题构造的矩阵的方法相同。需要注意的是,题目中a0~a9 与矩阵相乘的顺序。#include #include #include #include #include #define N 10using namespace std;int mod;typedef long long LL;struct matrix{ LL a[10][10];}原创 2014-06-12 00:20:32 · 939 阅读 · 0 评论 -
hdu 2157 How many ways?? (矩阵快速幂)
题目大意:问A-B 走K 部的方法数。如果矩阵 a 为任意一个点到另外一个点 走 1 步的方法数那么 a*a 就是任意一个点到另外一个点 走 2 步的方法数。。。那么直接快速幂。#include #include #include #include #include #define N 10using namespace std;in原创 2014-06-12 22:11:50 · 760 阅读 · 0 评论 -
VOJ 1067 Warcraft III 守望者的烦恼 (矩阵快速幂+dp)
显然可知dp[n] = dp[n-k] + dp[n-k+1] + ... +dp[n-1];然后要用矩阵来优化后面的状态转移。也就是矩阵0 1 0 0 a b0 0 1 0 * b = c0 0 0 1 c d1 1 1 1 d a+b+c+d然后跑快速幂#include #inclu原创 2014-06-11 23:55:05 · 1692 阅读 · 0 评论 -
POJ 3613 Cow Relays (floyd + 矩阵快速幂)
题目大意:求刚好经过K条路的最短路我们知道如果一个矩阵A[i][j] 表示表示 i-j 是否可达那么 A*A=B B[i][j] 就表示 i-j 刚好走过两条路的方法数那么同理我们把i-j 的路径长度存到A 中。在A*A的过程中,不断取小的,那么最后得到的也就是i - j 走过两条路的最短路了。当然也是利用到了floyd的思想。然后要原创 2014-06-15 22:42:48 · 1035 阅读 · 0 评论 -
hdu 1588 Gauss Fibonacci(矩阵嵌矩阵)
题目大意:求出斐波那契中的 第 k*i+b 项的和。思路分析:定义斐波那契数列的矩阵f(n)为斐波那契第n项F(n) = f(n+1) f(n)那么可以知道矩阵A = 1 1 1 0使得 F(n) = A * F(n+1)然后我们化简最后的答案sum = F(b) + F(K+b) + F (2*k +原创 2014-07-06 08:30:22 · 743 阅读 · 0 评论 -
SPOJ 8059. Stocks Prediction (矩阵嵌矩阵)
题目大意:给出一个递推的关系。这个递推的关系可以求出 s_1 s_2 s_3 .... s_m然后再告诉一个 k 与 n求出segma( s_k , s_2*k , s_3*k)...共n项。思路分析:首先给出来的是递推关系式。所以可以用一个矩阵递推出 s [i]...但是他要的是每隔k的值。定义s的递推矩阵是 ASUM = S_k + S_2*原创 2014-08-02 12:29:04 · 773 阅读 · 0 评论 -
ural 1932 The Secret of Identifier (容斥原理)
题目大意:求出给的n个串中。精确到只有一个字符不同,两个字符不同,三个字符不同,四个字符不同的对数。思路分析:枚举状态。dp[i] [j] ...表示当前串取出 i 状态下的所有字符转化成十进制数为 j 的出现的次数。这样的话,就记录了所有串的子串的状态。然后计数就得到了所有的状态。然后我们要得到精确不同的,可以用补集的思想,如果要精确到三个不相同,意味着要原创 2014-08-04 20:36:19 · 849 阅读 · 0 评论 -
POJ 3070 Fibonacci (矩阵)
构造矩阵 0 1 * a = b1 1 b a+b然后快速幂也可以按照题目所给的直接快速幂#include #include #include #include #include #define N 30using namespace std;const int mod = 10000;s原创 2014-06-11 00:02:10 · 879 阅读 · 0 评论 -
hdu 1316 How Many Fibs? (模拟高精度)
题目大意:问[s,e]之间有多少个 斐波那契数。思路分析:直接模拟高精度字符串的加法和大小的比较。注意wa点再 s 可以从 0 开始那么要在判断输入结束的时候注意一下。#include #include #include #include using namespace std;struct node{ char str[111];原创 2014-07-01 12:01:52 · 694 阅读 · 0 评论 -
hdu 4445 Crazy Tank
#include #include #include #include #include const double g = 9.8;using namespace std;double h,l1,r1,l2,r2;zdouble cal(double ang,double v){ double vx,vy; vx = v * sin(ang); v原创 2013-08-04 21:48:50 · 869 阅读 · 0 评论 -
Codeforces Round #195 (Div. 2) C. Vasily the Bear and Sequence
啊啊啊啊啊啊一开始想错了,以为只能是某一个数取并之后 必须得到一个 2的某次方 其实比如第三组数据 31 20 22输出220 22 (取并以后是20 20%4==0 oh fuck!)意思应该是得到一个2的某次方的倍数就可以了。思路:枚举每一位上的1。看这一位上的 1 是否可以满足条件。当然 只要这个数的该位是1 就可以用来并原创 2013-08-10 21:24:25 · 1260 阅读 · 0 评论 -
HDU 4565 So Easy!
我不是看这里的,你们不要质疑我。#include #include #include #include typedef __int64 LL;using namespace std;struct matrix{ LL a[2][2];}origin,res;LL A,B,M;matrix multiply(matrix x,matrix y){ ma原创 2013-08-16 23:49:35 · 661 阅读 · 0 评论 -
hdu 3723 Delta Wave(卡特兰数)
题目大意:按照图中的三种方式移动。 要求不能超过Y轴。只能在Y轴上方移动。而且经过N步以后一定要到达 (N.0);思路:想到了是卡特兰数 然后枚举一下选了多少平走的 设卡特兰书是 F那么就是 1-n/2 累加 C(n, i*2) *F[i]...似乎这个卡了JAVA大数的上限。第一份代码就过不去了。。。求大神指点。。。思路也是一样。先预处理原创 2013-10-08 23:53:50 · 1074 阅读 · 0 评论 -
hdu 4279 Number (欧拉函数 - 约数个数)
详解请戳 点击打开链接mark 一下 当n>2的时候 所有的n的欧拉函数的个数都是一个偶数约数的个数只有当n为完全平方数的时候是奇数个其他情况下为偶数个#include #include #include typedef long long LL;using namespace std;LL solve(LL x){ if(x<6)return 0;原创 2013-10-30 00:05:16 · 1349 阅读 · 0 评论 -
CF 111D - Petya and Coloring
题目大意:用k种颜色涂 n*m 的矩形,要求 如果 1~i 和 i+1~m 所用的颜色种类一样多,不要求颜色一样、思路:可以推出 第一列和第m列所用的颜色数量是一样的。证明 :如果a[1~1]=i a[m~m]=j (i那么a[1~1]=i然后中间的m-2列 是不能出现新颜色的。也就是必须是第一列和第m列的颜色不然会导致两边不相等了。原创 2014-03-13 00:33:47 · 1143 阅读 · 0 评论 -
ZOJ 3772 Calculate the Function (线段树 + 矩阵)
思路分析:遗憾不知道矩阵的构造。线段树上比较水的矩阵。。。 M[x] = [1 A[x]] [1 0 ] 就有[ F[R] ] = M[R] * M[R-1] * ... * M[L+2] * [F[L+1]][F[R-1]]原创 2014-05-11 23:15:57 · 930 阅读 · 0 评论 -
VOJ 1049 送给圣诞夜的礼物 (矩阵 )
题目思路:对于初始序列,1,2,3,3,给出m次变换,原创 2014-05-21 22:05:38 · 838 阅读 · 0 评论 -
POJ 3233 Matrix Power Series (矩阵快速幂 + 二分)
题目大意:给定矩阵 A;求A^1 + A^2 + A原创 2014-05-21 19:07:27 · 764 阅读 · 0 评论 -
hdu 3326 Another kind of Fibonacci (矩阵构造)
题目大意:描述了另外一种斐波那契F[n] = x*F[n-1] + y*F[n-2];求segma(F[i]^2);思路分析:构造矩阵的详细 请戳我构造矩阵可以得到中间矩阵为1 1 000 x^2 y^2 2*x*y0 1 0 00 x 0 y#include #include #include #原创 2014-05-21 19:59:53 · 790 阅读 · 0 评论 -
Hdu 2243 考研路茫茫——单词情结 (AC自动机+矩阵)
哎哟喂,中文题。。。不说题意了。首先做过POJ 2778可以知道AC自动机是可以求出长度为L的串中不含病毒串的数量的。POJ 2778的大概思路就是先用所有给的病毒串建一个AC自动机,然后将AC自动机上所有非单词节点连一个边。离散数学中有说道,如果矩阵A 中的 [i][j] 表示 i节点通过一条边可以走到j节点的方法数。那么A*A这个矩阵的[i][j]就表示 i 节点到j原创 2014-10-04 16:35:12 · 1258 阅读 · 1 评论