UVA - 11582 Colossal Fibonacci Numbers!循环节
2016-10-05 22:47
429 查看
找Fn =( Fn-1 + Fn-2 ) mod n 的循环节
暴力找即可
暴力找即可
#include <cstdio> #include <iostream> #include <cstring> typedef unsigned long long ll; using namespace std; const int MAXN = 1023; ll f[MAXN][MAXN*10]; int circle[MAXN]; void init(){ for(int k = 2; k<= 1000; k++){ f[k][0] = 0, f[k][1] = 1; for(int i = 2; ; i++){ f[k][i] = (f[k][i-1] + f[k][i-2])%k; if(f[k][i] == 1 && f[k][i-1] == 0){ circle[k] = i-1; break; } } } } ll quick_mod(ll a, ll b, ll mod){ ll ans = 1; while(b > 0){ if(b&1){ b--; ans = ans*a%mod; } b >>= 1; a = a*a%mod; } return ans; } void slove(ll a, ll b, int n){ int res = quick_mod(a%circle , b, circle ); cout << f [res] << endl; } int main() { //freopen("data.in.txt", "r", stdin); // freopen("data.out.txt", "w", stdout); int t, n; ll a, b; init(); scanf("%d", &t); while(t--) { cin >> a >> b >> n; if(n == 1 || a == 0) cout<<0 << endl;; else slove(a, b, n); } return 0; }
相关文章推荐
- Uva11582 Colossal Fibonacci Numbers! (数论、斐波那契循环节)
- UVA 11582 Colossal Fibonacci Numbers!(循环节打表+幂取模)
- UVA 11582 Colossal Fibonacci Numbers! 找循环节
- Colossal Fibonacci Numbers! UVA 11582 寻找循环节
- Uva 11582 Colossal Fibonacci Numbers! (循环节、幂取模、打表)
- UVA 11582 Colossal Fibonacci Numbers!(打表+快速幂)
- UVA - 11582 Colossal Fibonacci Numbers! 巨大的斐波拉契数 鸽笼原理+模运算
- Colossal Fibonacci Numbers! UVA - 11582
- Colossal Fibonacci Numbers! 巨大的斐波那契数 UVA - 11582
- uva 11582 Colossal Fibonacci Numbers!
- uva 11582 Colossal Fibonacci Numbers!
- UVa 11582 - Colossal Fibonacci Numbers!
- Colossal Fibonacci Numbers! 巨大的斐波那契数 UVA - 11582
- Colossal Fibonacci Numbers! UVA - 11582
- UVa 11582 - Colossal Fibonacci Numbers!
- uva 11582 Colossal Fibonacci Numbers! (斐波那契模除周期性)
- 【数论】Colossal Fibonacci Numbers!, UVa11582
- Colossal Fibonacci Numbers! UVA - 11582
- 例题10-1 UVa11582 Colossal Fibonacci Numbers!(同余与模算术)
- UVA - 11582 Colossal Fibonacci Numbers!