Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:牛人们看看哪个地方会引起RE?In Reply To:把系数矩阵构造出来后,计算一次循环的矩阵复杂度不就己经达到k*n^3? Posted by:MasterLuo at 2009-05-20 10:12:59 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> using namespace std; int n, m, k; long long init[102]; long long all[102][102]; long long tmp[102][102]; char ch[3]; long long na[102][102], nb[102][102], nc[102][102]; void binary(int k) { if(k == 1) { for(int i = 0; i <= n; ++i) for(int j = 0; j <= n; ++j) nc[i][j] = all[i][j]; } else { binary(k / 2); for(int i = 0; i <= n; ++i) { for(int k = 0; k <= n; ++k) { nb[i][k] = 0; for(int j = 0; j <= n; ++j) { if(nc[i][j] && nc[j][k]) nb[i][k] += nc[i][j] * nc[j][k]; } } } if(k % 2) { for(int i = 0; i <= n; ++i) { for(int k = 0; k <= n; ++k) { nc[i][k] = 0; for(int j = 0; j <= n; ++j) { if(nb[i][j] && all[j][k]) nc[i][k] += nb[i][j] * all[j][k]; } } } } else { for(int i = 0; i <= n; ++i) for(int j = 0; j <= n; ++j) nc[i][j] = nb[i][j]; } } } int main() { while(scanf("%d%d%d", &n ,&m, &k) && (n+m+k)!=0 ) { memset(init, 0, sizeof(init)); memset(all, 0, sizeof(all)); init[n] = 1; for(int i = 0; i <= n; ++i) all[i][i] = 1; for(int i = 0; i < k; ++i) { int nt = 0; scanf("%s", ch); if(strcmp(ch, "g") == 0) nt = 1; else if(strcmp(ch, "s") == 0) nt = 2; else nt = 3; int s1, s2; switch(nt) { case 1: scanf("%d", &s1); --s1; for(int i = 0; i <= n; ++i) all[i][s1] += all[i][n]; break; case 2: scanf("%d%d", &s1, &s2); --s1, --s2; for(int i = 0; i <= n; ++i) { int t = all[i][s1]; all[i][s1] = all[i][s2]; all[i][s2] = t; } break; case 3: scanf("%d", &s1); --s1; for(int i = 0; i <= n; ++i) all[i][s1] = 0; break; } } binary(m); for(int i = 0; i < 1; ++i) { for(int k = 0; k <= n; ++k) { long long sum = 0; for(int j = 0; j <= n; ++j) { sum += init[j] * nc[j][k]; } if(k < n) printf("%lld ", sum); } } putchar('\n'); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator