- 博客(27)
- 资源 (4)
- 收藏
- 关注
原创 poj 3233 矩阵快速幂
矩阵乘法 AC代码如下: #include #include #include #include using namespace std; const int MAX_N = 33; int MOD, N, K; void multipy( int a[MAX_N][MAX_N], int am, int an, int b[MAX_N][MAX_N], int bm, int
2014-07-30 15:16:15 677
原创 poj 3070 矩阵快速幂
AC代码如下: #include #include #include #include using namespace std; const int MAX_N = 3; const int MOD = 10000; void multipy( int a[MAX_N][MAX_N], int b[MAX_N][MAX_N], int c[MAX_N][MAX_N] ){ f
2014-07-28 10:33:36 570
原创 hdu 1575 矩阵快速幂
应用矩阵快速幂之后求和即可 AC代码如下: #include #include #include #include using namespace std; const int MAX_N = 11; const int MOD = 9973; int N, M; void multipy( int a[MAX_N][MAX_N], int am, int an, int b[
2014-07-27 14:19:01 544
原创 hdu 1757 矩阵快速幂
首先构造矩阵: AC代码如下: #include #include #include #include using namespace std; int num[11]; int N, MOD; void multipy( int a[][11], int b[][11], int c[][11] ){ for( int i = 1; i <= 10; i++ ){
2014-07-27 14:04:41 545
原创 hdu 2276 矩阵快速幂&&循环矩阵优化
AC代码如下: #include #include #include #include using namespace std; const int MAX_N = 110;; int N, M; void multipy( int a[][MAX_N], int am, int an, int b[][MAX_N], int bm, int bn, int c[][MAX_N]
2014-07-27 11:24:10 639
原创 zoj 3497 矩阵快速幂
这里是Maxtrix67 大牛总结的 第八个矩阵的经典应用: 给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值 把 给定的图转为邻接矩阵,即A(i,j)=1当且仅当存在一条边i->j。令C=A*A,那么C(i,j)=ΣA(i,k)*A(k,j),实际上就 等于从点i到点j恰好经过2条边的路径数(枚举k为中转点)。类似地,C*A的第i行第j列就表示从i到
2014-07-26 10:18:25 612
原创 lightoj 1201 树形dp
dp【】 AC代码如下: #include #include #include #include using namespace std; const int MAX_N = 1100; struct Edge{ int to, next; }; int head[MAX_N], tot; Edge edge[MAX_N*8]; int N, M; int dp[2][M
2014-07-25 21:31:29 700
原创 lightoj 1092 状态压缩DP
#include #include #include #include using namespace std; #define MAX 0x3f3f3f3f int R, C; int dp[10][1<<9][1<<9]; int statu[10]; char maps[10][10]; int st_opt[1<<9][1<<9]; int cnt_opt[1<<10];
2014-07-24 20:58:30 698
原创 poj 1990 树状数组
开始对距离排序 然后果断的TLE了 然后发现应该对power排序,这样的话,我们记录一下比当前值小的个数,已经距离综合,这样就能直接求出每次要算的值 AC代码如下:
2014-07-18 12:16:19 497
原创 poj 1198 二维树状数组
每次更新一个点,然后最后统计一个区间 很常规 AC代码如下: #include #include #include #include using namespace std; const int MAX_S = 1024 + 5; int sum[MAX_S][MAX_S]; int statu, S; inline int lowbit( int x ){ retur
2014-07-17 12:29:12 507
原创 poj 3067 树状数组
首先排序下。。。。 AC代码如下: #include #include #include #include using namespace std; const int MAX_N = 1000; struct Node{ int a, b; }; Node node[1000010]; int sum[MAX_N+5]; int M, N, K; bool cmp(
2014-07-16 22:18:57 610
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人