ZOJ 2853Evolution
来源:互联网 发布:大闹天空坐骑进阶数据 编辑:程序博客网 时间:2024/06/01 09:38
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2853
#include <iostream>#include <cstdio>#include <cstring>#include <map>#include <vector>using namespace std;typedef vector<double> vec;typedef vector<vec> mat;mat mul(mat &A, mat &B){ mat C(A.size(), vec(B[0].size())); for (int i = 0; i < A.size(); i++) for (int k = 0; k < B.size(); k++) for (int j = 0; j < B[0].size(); j++) C[i][j] = C[i][j] + A[i][k] * B[k][j]; return C;}mat pow(mat A, int n){ mat B(A.size(), vec(A.size())); for (int i = 0; i < A.size(); i++) B[i][i] = 1; while (n > 0) { if (n & 1) B = mul(B, A); A = mul(A, A); n >>= 1; } return B;}int main(){ int n, m; while (cin >> n >> m){ if (n == 0 && m == 0) break; mat A(n, vec(n)); mat ANS(n, vec(n)); double tot[205] = { 0 }; for (int i = 0; i < n; i++){ double popul; cin >> popul; for (int j = 0; j < n; j++){ ANS[j][i] = popul; } } int T; cin >> T; for (int i = 0; i < T; i++){ int s1, s2; cin >> s1 >> s2; cin >> A[s1][s2]; tot[s1] += A[s1][s2]; } for (int i = 0; i < n; i++) A[i][i] += (1 - tot[i]); A = pow(A, m); ANS = mul(ANS, A); cout << (long long)(ANS[0][n - 1] + 0.5) << endl; } return 0;}
0 0
- zoj 2853 Evolution
- zoj 2853 Evolution 矩阵
- zoj 2853 Evolution
- ZOJ 2853Evolution
- ZOJ 2853 Evolution (矩阵块速幂)
- 【矩阵快速幂】ZOJ 2853 Evolution
- zoj 2853 Evolution(矩阵快速幂)
- ZOJ 2853 Evolution[ 矩阵快速幂 ]
- zoj 2853 Evolution 矩阵快速幂
- ZOJ 2853 Evolution【矩阵快速幂】
- ZOJ 2853 Evolution【矩阵快速幂】
- 矩阵快速幂 ZOJ 2853 Evolution
- ZOJ 2853 Evolution (矩阵快速幂+数学)
- Evolution +zoj+矩阵快速幂
- evolution
- evolution
- evolution
- evolution
- JFrame(框架)中添加和设置JPanel(面板)的方法
- daopia
- ZOJ 2851Code Formatter
- 总结PHP权威指南 - PHP Shell脚本编程
- Handler机制用法概述
- ZOJ 2853Evolution
- PHP需要掌握的一些工具
- Netty学习(一)
- HDU 1528 Card Game Cheater 二分图最大匹配
- ZOJ 2855Google Map
- 6、Maven依赖的聚合
- C++之匿名对象与析构函数的关系
- nginx 相关配置参考文章
- ZOJ 2856Happy Life(数论,暴力)