码迷,mamicode.com
首页 > 其他好文 > 详细

bzoj 1008 组合计数

时间:2015-02-18 11:46:38      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

 

正难则反

前面定后面就定->枚举开头

 

技术分享
 1 /**************************************************************
 2     Problem: 1008
 3     User: idy002
 4     Language: C++
 5     Result: Accepted
 6     Time:0 ms
 7     Memory:804 kb
 8 ****************************************************************/
 9  
10 #include <cstdio>
11 #define M 100003
12  
13 typedef long long lng;
14  
15 lng n, m;
16  
17 lng mpow( lng a, lng b ) {
18     a %= M;
19     lng rt;
20     for( rt=1; b; b>>=1,a=(a*a)%M ) 
21         if( b&1 ) rt=(rt*a)%M;
22     return rt;
23 }
24  
25 int main() {
26     scanf( "%lld%lld", &m, &n );
27     lng ans = mpow( m, n ) - ((m%M)*(mpow( m-1, n-1 )%M))%M;
28     ans = (ans%M+M)%M;
29     printf( "%lld\n", ans );
30 }
View Code

 

bzoj 1008 组合计数

标签:

原文地址:http://www.cnblogs.com/idy002/p/4295671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!