fork download
  1. import numpy as np
  2.  
  3. def solve():
  4. t = int(input().strip())
  5. for _ in range(t):
  6. n, m, total_time = map(int, input().split())
  7. arr = input().split()
  8. edges = []
  9. for i in range(0, 3*m, 3):
  10. u, v, p = int(arr[i]), int(arr[i+1]), float(arr[i+2])
  11. edges.append((u, v, p))
  12.  
  13. steps = total_time // 10
  14. tmat = np.zeros((n, n))
  15. for u, v, p in edges:
  16. tmat[u-1][v-1] = p
  17.  
  18. prob = np.zeros(n)
  19. prob[0] = 1
  20.  
  21. for _ in range(steps):
  22. prob = np.dot(prob, tmat)
  23.  
  24. print(np.argmax(prob) + 1)
  25. print(np.round(np.max(prob),3))
  26. solve()
Success #stdin #stdout 1.08s 41504KB
stdin
2
6 10 40 
1 2 0.3 1 3 0.7 3 3 0.2 3 4 0.8 2 4 1 4 5 0.9 4 4 0.1 5 6 1.0 6 3 0.5 6 6 0.5
6 10 10 
1 2 0.3 1 3 0.7 3 3 0.2 3 4 0.8 2 4 1 4 5 0.9 4 4 0.1 5 6 1.0 6 3 0.5 6 6 0.5
stdout
6
0.774
3
0.7