Codeforces 285E Positions in Permutations (dp + 容斥)
来源:互联网 发布:淘宝打包 编辑:程序博客网 时间:2024/05/22 06:21
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <map>#include <vector>using namespace std;#define N 1020#define M 400030#define mod 1000000007#define B 234324#define LL long longint f[N][N][4];int fac[N], nfac[N];int F[N];int n, k;int qpow(int x, int k) {int ret = 1;while(k) {if(k & 1) ret = 1LL * ret * x % mod;k >>= 1;x = 1LL * x * x % mod;}return ret;}void add(int &x, int y) {x += y;if(x >= mod) x -= mod;}int C(int x, int y) {return 1LL * fac[x] * nfac[y] % mod * nfac[x-y] % mod;}void init() {fac[0] = 1; for(int i = 1; i < N; ++i) fac[i] = 1LL * fac[i-1] * i % mod;nfac[N-1] = qpow(fac[N-1], mod - 2);for(int i = N - 2; i >= 0; --i) nfac[i] = 1LL * nfac[i+1] * (i + 1) % mod;f[0][0][2] = 1;for(int i = 1; i <= n; ++i) {for(int j = 0; j < i; ++j) {for(int z = 0; z < 4; ++z) {if(z & 1) add(f[i][j+1][z/2+2], f[i-1][j][z]);if(i < n) add(f[i][j+1][z/2], f[i-1][j][z]);add(f[i][j][z/2+2], f[i-1][j][z]);}}}for(int i = 0; i <= n; ++i) {for(int z = 0; z < 4; ++z) {add(F[i], f[n][i][z]);}F[i] = 1LL * F[i] * fac[n-i] % mod;}for(int i = 0; i <= n; ++i) {int mul = -1;for(int j = i + 1; j <= n; ++j) {int tmp = 1LL * F[j] * C(j, i) % mod;tmp *= mul;if(tmp < 0) tmp += mod;add(F[i], tmp);mul = -mul;}}}int main() {cin >> n >> k;init();cout << F[k] << endl;return 0;}
0 0
- Codeforces 285E Positions in Permutations (dp + 容斥)
- codeforces 285E Positions in Permutations(DP+容斥,hard)
- codeforces 285E. Positions in Permutations (容斥原理+DP)
- Codeforces 285E - Positions in Permutations 【题解待补全】
- Codeforces Round #175 DIV2 E Positions in Permutations
- Codeforces Round #175 (Div. 2) E Positions in Permutations
- [Codeforces285E]Positions in Permutations(dp+容斥原理+组合数学)
- Codeforces 140E New Year Garland (dp + 容斥)
- Codeforces Round #198 (Div. 2) E. Iahub and Permutations —— 容斥原理
- Codeforces 439E 容斥
- Codeforces 340E Iahub and Permutations【思维+错排Dp】
- Codeforces 213E - Two Permutations
- codeforces 479e Riding in a Lift | dp
- [笔记] Codeforces#274 Riding in a Lift (479E) DP
- Codeforces 479E Riding in a Lift(dp)
- Codeforces 479E. Riding in a Lift DP
- Codeforces 479E Riding in a Lift (DP)
- CodeForces 632E Thief in a Shop(DP)
- 【POJ】[1423]Big Number
- jquery基础篇(二)— —属性与样式
- 请放下你的无效社交
- 开发UI控件时遇到的问题(类似于苹果Assistive Touch)
- springframework(八)AOP的相关术语以及实现方式介绍
- Codeforces 285E Positions in Permutations (dp + 容斥)
- Checkbox的只读设置
- jquery时间插件
- springframework(九)AOP的advices,中规中矩的使用方式
- 2016,除了 DevOps,企业还应该知道 CMDB!
- [译]一次负责任的披露:为什么我可以黑Facebook所有帐号
- 架构设计最佳实践之Don’t Repeat Yourself
- Qt教程 第一章:Hello, World!
- springframework(十)AOP之Pointcut、Advisor