赞
踩
题目:
思路: 求出通项公式然后求快速幂。时间复杂度为O(n)。
通项公式的意思是总方案数减去矛盾方案数。
接下来我们用C++进行编程:
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int mod = 100003; ll quick_pow(ll v, ll n) { ll result = 1; while(n > 0) { if(n & 1) result = result * v % mod; n >> 1; v = v * v; } return result; } int main() { ll n , m; while(cin >> n >> m) { ll a = quick_pow(m, n - 1); ll b = quick_pow(m - 1, n - 1); cout << m * (a - b + mod) % mod << endl; } return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。