首页 技术 正文
技术 2022年11月23日
0 收藏 460 点赞 4,688 浏览 772 个字

题目链接:hdu 5225 Tom and permutation

#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;
typedef long long ll;const int maxn = 100;
const int mod = 1e9+7;
int N, ans, V[maxn + 5], A[maxn + 5];
ll S[maxn + 5], L[maxn + 5];int query(int x) {
int ret = 0;
for (int i = 1; i < x; i++) {
if (V[i] == 0)
ret++;
}
return ret;
}int dfs(int d, int s) {if (d > N)
return 0;if (s == 0) {
ans = (ans + S[N-d+1]) % mod;
return L[N-d+1];
} else {int ret = 0;for (int i = 1; i <= A[d]; i++) {
if (V[i]) continue;V[i] = 1;int s = query(i);
ll temp = dfs(d + 1, i == A[d] ?1 : 0);
ans = (ans + temp * s % mod) % mod;ret = (ret + temp) % mod;V[i] = 0;
}return ret;
}
}int main () {
S[1] = 0;
L[1] = 1;
for (int i = 2; i <= maxn; i++) {
S[i] = S[i-1] * i % mod+ L[i-1] * ((1LL * i * (i-1) / 2) % mod) % mod;
L[i] = L[i-1] * i % mod;
}while (scanf("%d", &N) == 1) {
ans = 0;
memset(V, 0, sizeof(V));for (int i = 1; i <= N; i++)
scanf("%d", &A[i]);dfs(1, 1);
printf("%d\n", ans);
}
return 0;
}

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,960
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,484
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,330
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,113
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,745
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,779