快速幂取模 POJ 3761 bubble sort
2015-07-31 20:39
369 查看
题目传送门
/* 题意:求冒泡排序扫描k次能排好序的全排列个数 数学:这里有一个反序列表的概念,bj表示在j左边,但大于j的个数。不多说了,我也是看网上的解题报告。 详细解释:http://blog.csdn.net/cscj2010/article/details/7820906 */ #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; typedef long long ll; const int MAXN = 1e6 + 10; const int INF = 0x3f3f3f3f; const int MOD = 20100713; ll fact[MAXN]; void solve(void) { fact[0] = fact[1] = 1; for (int i=2; i<=1000000; ++i) { fact[i] = fact[i-1] * i % MOD; } } ll pow_mod(ll x, ll n) { ll ret = 1; while (n) { if (n & 1) ret = ret * x % MOD; x = x * x % MOD; n >>= 1; } return ret; } int main(void) { //POJ 3761 bubble sort solve (); int T; scanf ("%d", &T); while (T--) { ll n, k; scanf ("%I64d%I64d", &n, &k); printf ("%I64d\n", (pow_mod (k + 1, n - k) - pow_mod (k, n - k) + MOD) % MOD * fact[k] % MOD); } return 0; }
相关文章推荐
- 04_单例模式
- uva784(深搜广搜
- PAT (Advanced Level) 1095. Cars on Campus (30) 结构体排序,合并区间
- iOS方法类:CGAffineTransform的使用大概
- UVA1605-Building for UN
- Android子线程更新主界面
- (剑指Offer)面试题51:数组中重复的数字
- 判断一个自然数是否时某个数的平方
- 没有积累的技术不叫技术
- Spring是什么?
- Coursera台大机器学习技法课程笔记09-Decision Tree
- Oracle 学习之RMAN(十二)恢复实战--控制文件丢失
- Md5加密
- 风机的数据的导入
- hdoj-1069-Monkey and Banana【动态规划】
- 设计模式之策略模式
- 设计模式——设计模式总结
- 对css float 浮动的学习心得
- 九度oj 1137
- 仿Uber主界面布局,框架简单实现