Advertisement
Guest User

Untitled

a guest
Sep 25th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define DIM 57
  3. #define INF 200000000000007
  4. #define fi first
  5. #define se second
  6. #define MOD 1000
  7. using namespace std;
  8.  
  9. typedef long long ll;
  10. typedef pair<ll,ll> pairll;
  11. typedef long double ld;
  12. ll n,y,k,j,i,v1,v2,z3,z,sum,vvv,ddd,m,r,t,l;
  13. string s1,s2;
  14. ll b[DIM][DIM];
  15. ll a[DIM][DIM];
  16. ll c[DIM][DIM];
  17. char x;
  18. queue< pairll > q;
  19. set<ll> s;
  20.  
  21. void ff()
  22. {
  23. ll res=0;
  24. for(ll i=1; i<=n; i++)
  25. {
  26. for(ll j=1; j<=n; j++)
  27. {
  28. c[i][j]=0;
  29. for(ll k=1; k<=n; k++)
  30. {
  31. c[i][j]=(c[i][j]+a[i][k]*a[k][j])%MOD;
  32. }
  33. }
  34. }
  35. for(ll i=1; i<=n; i++)
  36. for(ll j=1; j<=n; j++)
  37. a[i][j]=c[i][j];
  38.  
  39.  
  40. }
  41.  
  42. void f()
  43. {
  44. ll res=0;
  45. for(ll i=1; i<=n; i++)
  46. {
  47. for(ll j=1; j<=n; j++)
  48. {
  49. c[i][j]=0;
  50. for(ll k=1; k<=n; k++)
  51. {
  52. c[i][j]=(c[i][j]+b[i][k]*a[k][j])%MOD;
  53. }
  54.  
  55. }
  56. }
  57. for(ll i=1; i<=n; i++)
  58. for(ll j=1; j<=n; j++)
  59. b[i][j]=c[i][j];
  60.  
  61.  
  62.  
  63. }
  64.  
  65. int main()
  66. {
  67. cin.tie(0);
  68. cout.tie(0);
  69. n=2;
  70. cin >> m;
  71.  
  72. a[1][1]=0;
  73. a[1][2]=1;
  74. a[2][1]=1;
  75. a[2][2]=1;
  76.  
  77. b[1][1]=1;
  78. b[1][2]=0;// МАТРИЦЯ РЕЗУЛЬТАТ
  79. b[2][1]=0;
  80. b[2][2]=1;
  81. m--;
  82. while(m)
  83. {
  84. if(m&1) f(); // ПЕРЕМНОЖЕННЯ МАТРИЦІ А НА МАТРИЦЮ РЕЗУЛЬТАТ
  85. ff();// ПІДНЕСЕННЯ МАТРИЦІ А ДО КВДРАТУ
  86. m/=2;
  87. }
  88. cout << b[2][2] << endl;
  89.  
  90. return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement