foj Problem 2282 Wand
Accept: 432 Submit: 1537
Time Limit: 1000 mSec Memory Limit :
262144 KB
Problem Description
N wizards are attending a meeting. Everyone has his own magic wand. N magic
wands was put in a line, numbered from 1 to n(Wand_i owned by wizard_i). After
the meeting, n wizards will take a wand one by one in the order of 1 to n. A
boring wizard decided to reorder the wands. He is wondering how many ways to
reorder the wands so that at least k wizards can get his own wand.
For example, n=3. Initially, the wands are w1 w2 w3. After reordering, the
wands become w2 w1 w3. So, wizard 1 will take w2, wizard 2 will take w1, wizard
3 will take w3, only wizard 3 get his own wand.
Input
First line contains an integer T (1 ≤ T ≤ 10), represents there are T test
cases.
For each test case: Two number n and k.
1<=n <=10000.1<=k<=100. k<=n.
Output
For each test case, output the answer mod 1000000007(10^9 + 7).
Sample Input
1 1
3 1
Sample Output
4
Source
第八届福建省大学生程序设计竞赛-重现赛(感谢承办方厦门理工学院)
#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include<vector>
#include<algorithm>
#include<cstring>
#include<bitset>
#include<set>
#include<map>
#include<cmath>
#include<queue>
using namespace std;
#define N_MAX 10000+4
#define MOD 1000000007
#define INF 0x3f3f3f3f
typedef long long ll;
int n, k;
ll dp[N_MAX];//错排数
ll C[N_MAX][ + ];
void init() {
dp[] = ; dp[] = ; dp[] = ;
for (int i = ; i < N_MAX; i++) {
dp[i] = ((i - )*(dp[i - ] + dp[i - ]) + MOD) % MOD;
}
}
void C_table() {
for (int i = ; i < N_MAX; i++) {
C[i][] = ;
for (int j = ; j <= min(, i); j++) {//!!!j<=i并且数组中j不能超过100
C[i][j] = (C[i - ][j] + C[i - ][j - ]) % MOD;
}
}
} int main() {
init(); C_table();
int t; scanf("%d", &t);
while (t--) {
scanf("%d%d", &n, &k);
ll num = , ans = ;
for (ll i = ; i <= n; i++) {
ans = ans*i%MOD;
}
for (int i = ; i <= k - ; i++) {
num = (num + C[n][i] * dp[n - i]) % MOD;
}
printf("%lld\n", (ans - num + MOD) % MOD);
}
return ;
}
foj Problem 2282 Wand的更多相关文章
- FOJ ——Problem 1759 Super A^B mod C
Problem 1759 Super A^B mod C Accept: 1368 Submit: 4639Time Limit: 1000 mSec Memory Limit : 32 ...
- FOJ Problem 1016 无归之室
Problem 1016 无归之室 Accept: 926 Submit: 7502Time Limit: 1000 mSec Memory Limit : 32768 KB Prob ...
- FOJ Problem 1015 土地划分
Problem 1015 土地划分 Accept: 823 Submit: 1956Time Limit: 1000 mSec Memory Limit : 32768 KB Probl ...
- foj Problem 2107 Hua Rong Dao
Problem 2107 Hua Rong Dao Accept: 503 Submit: 1054Time Limit: 1000 mSec Memory Limit : 32768 K ...
- FOJ Problem 2273 Triangles
Problem 2273 Triangles Accept: 201 Submit: 661Time Limit: 1000 mSec Memory Limit : 262144 KB P ...
- foj Problem 2275 Game
Problem D Game Accept: 145 Submit: 844Time Limit: 1000 mSec Memory Limit : 262144 KB Problem D ...
- foj Problem 2283 Tic-Tac-Toe
Prob ...
- FOJ Problem 2257 Saya的小熊饼干
...
- FOJ Problem 2261 浪里个浪
...
随机推荐
- 【Python 2 到 3 系列】 此整型非彼整型
v2.2 (2.x)以后,python支持不会溢出的 long 型. v3.0后,确切的讲, int 型(依赖运行环境C编译器中long型的精度)消失了,long型替代 int 型,成为新的.不依赖运 ...
- photoshop入门笔记1:PS的快捷键
PS部分快捷键: 1.魔棒的作用:比较快捷的抠图工具,对于一些分界线比较明显的图像,通过魔棒工具可以很快速的将图像抠出,魔棒的作用是可以知道你点击的那个地方的颜色,并自动获取附近区域相同的颜色,使它们 ...
- POJ 3608 凸包间最短距离(旋转卡壳)
Bridge Across Islands Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11539 Accepted: ...
- Git使用简单总结--源自廖雪峰网站
创建版本库git add加入到暂存区git commit -m" "加入到分支 时光机穿梭git satus查看仓库的当前状态git diff file 查看修改内容 版本回退HE ...
- 笔记-scrapy-scarpyd
笔记-scrapy-scarpyd 1. scrapy部署 会写爬虫之后就是部署.管理爬虫了,下面讲一下如何部署scrapy爬虫. 现在使用较多的管理工具是Scrapyd. scrapyd是 ...
- Spark 源码阅读——任务提交过程
当我们在使用spark编写mr作业是,最后都要涉及到调用reduce,foreach或者是count这类action来触发作业的提交,所以,当我们查看这些方法的源码时,发现底层都调用了SparkCon ...
- The Image Gallery Revisited
Lets apply the Best practices to the Image Gallery . /*** index.html ***/ <!DOCTYPE html> < ...
- Nuget 异常引用记录
事件描述 Nuget未能将packages.config中的dll成功引入项目中 解决办法 从Nuget中删除对NewtonSoft.Json的引用并重新对NewtonSoft.Json 4.5.0. ...
- Windows10使用pip安装python包时报错-UnicodeDecodeError: 'ascii' codec c
本人是Windows10,用的方法2解决的 原文链接http://blog.csdn.net/all_over_servlet/article/details/45112221 先交待下开发环境: 操 ...
- cannot bind to 127.0.0.1:5037 报错
使用appium连接真机时,提示这个错误,找了很久,发现是端口被占用 打开cmd,netstat -nao查看当前的TCP连接,找到使用127.0.0.1:5037的代码,然后到任务管理器查看详细进程 ...