首页 技术 正文
技术 2022年11月17日
0 收藏 669 点赞 4,421 浏览 1430 个字

BZOJ 4321: queue2( dp )

dp(i, j, 1)表示前i个, 有j对是不合法的, i和i-1是在一起的.

dp(i, j, 0)表示前i个, 有j对是不合法的, i和i-1不在一起的.

转移我们只需考虑是多了一对不合法的还是少了一对不合法的, 或者是不变, 考虑当前i和i-1,i-2的位置的影响就可以了.

dp(i, j, 1) = 2*dp(i-1, j-1, 0) + dp(i-1, j-1, 1) + dp(i-1, j, 1)

dp(i, j, 0) = (i-j-2)*dp(i-1, j, 0) + (j+1)*dp(i-1, j+1, 0) + (i-j-1)*dp(i-1,j,1) + j*dp(i-1, j+1, 1)

这道题貌似还有递推式….

———————————————————————————

#include<cstdio>#include<cstring>#include<algorithm> using namespace std; typedef long long ll; const int maxn = 1009;const int MOD = 7777777; int dp[2][maxn][2], N; inline void upd(int &x, int t) {if((x += t) >= MOD)x -= MOD;} int main() {scanf(“%d”, &N);int c = 0, p = 1;memset(dp[c], 0, sizeof dp[c]);dp[c][0][0] = 1;for(int i = 2; i <= N; i++) {swap(c, p);memset(dp[c], 0, sizeof dp[c]);for(int j = 0; j < i; j++) {dp[c][j][1] = dp[p][j][1];if(j) {upd(dp[c][j][1], dp[p][j – 1][0]);upd(dp[c][j][1], dp[p][j – 1][0]);upd(dp[c][j][1], dp[p][j – 1][1]);}dp[c][j][0] = (ll(dp[p][j + 1][0]) * (j + 1) + ll(j) * dp[p][j + 1][1]) % MOD;if(i >= j + 2)upd(dp[c][j][0], (ll(dp[p][j][0]) * (i – j – 2) + ll(dp[p][j][1]) * (i – j – 1)) % MOD);}}printf(“%d\n”, dp[c][0][0]);return 0;}

———————————————————————————

4321: queue2

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 104  Solved: 54
[Submit][Status][Discuss]

Description

n 个沙茶,被编号 1~n。排完队之后,每个沙茶希望,自己的相邻的两人只要无一个人的编号和自己的编号相差为 1(+1 或-1)就行; 现在想知道,存在多少方案满足沙茶们如此不苛刻的条件。 

Input

只有一行且为用空格隔开的一个正整数 N,其中 100%的数据满足 1≤N ≤ 1000; 

Output

一个非负整数,表示方案数对 7777777 取模。   

Sample Input

4

Sample Output

2
样例解释:有两种方案 2 4 1 3 和 3 1 4 2

HINT

Source

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