博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ4321: queue2
阅读量:7282 次
发布时间:2019-06-30

本文共 1705 字,大约阅读时间需要 5 分钟。

题面

Sol

先设一个套路的状态:\(f[i][j]\)表示到第\(i\)个人,有\(j\)对冲突

但是我们不能确定\(i-1\),所以不好决策i的位置
所以再加一维\(0/1\)\(f[0/1][i][j]\)表示\(i\)\(i-1\)是否有冲突
每枚举一个人,我们就要把它插入到之前的队列中
转移:
\(f[0][i][j]\)

乘上\(j\),转移给\(f[0][i+1][j-1]\),表示消除一个冲突

乘上\(i+1-j-2\),转移给\(f[0][i+1][j]\),表示不消除冲突,并且在剩下的\(i+1-j\)选一个不与\(i\)相邻的位置插入\(i+1\),所以减去\(2\)
乘上\(2\):转移给\(f[1][i+1][j+1]\),即选一个与\(i\)相邻的位置插入\(i+1\)

\(f[1][i][j]\):类似,四种情况自己\(yy\)去吧

# include 
# define RG register# define IL inline# define Fill(a, b) memset(a, b, sizeof(a))using namespace std;typedef long long ll;const int Zsy(7777777);IL ll Input(){ RG ll x = 0, z = 1; RG char c = getchar(); for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1; for(; c >= '0' && c <= '9'; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48); return x * z;}int n, f[2][1005][1005];IL void Up(RG int &x, RG int y){ x += y; if(x >= Zsy) x -= Zsy;}int main(RG int argc, RG char* argv[]){ n = Input(); f[0][1][0] = 1; for(RG int i = 1; i < n; ++i) for(RG int j = 0; j < i; ++j){ if(f[0][i][j]){ if(j) Up(f[0][i + 1][j - 1], 1LL * f[0][i][j] * j % Zsy); if(i - j - 1 > 0) Up(f[0][i + 1][j], 1LL * f[0][i][j] * (i - j - 1) % Zsy); Up(f[1][i + 1][j + 1], 1LL * f[0][i][j] * 2 % Zsy); } if(f[1][i][j]){ Up(f[1][i + 1][j], f[1][i][j]); Up(f[1][i + 1][j + 1], f[1][i][j]); if(j > 1) Up(f[0][i + 1][j - 1], 1LL * f[1][i][j] * (j - 1) % Zsy); if(i - j > 0) Up(f[0][i + 1][j], 1LL * f[1][i][j] * (i - j) % Zsy); } } printf("%d\n", f[0][n][0]); return 0;}

转载于:https://www.cnblogs.com/cjoieryl/p/8364833.html

你可能感兴趣的文章
Android jni 中打印logcat日志
查看>>
SSL和keystore生成、导入等配置
查看>>
The Eagles Hotel California Lyrics
查看>>
软件工程——课程评价
查看>>
OpenStack Placement Project
查看>>
微信支付问题
查看>>
购买类目的概率预测
查看>>
Ajax Step By Step2
查看>>
codeforces 701 B. Cells Not Under Attack
查看>>
当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用)
查看>>
Creating a Custom Page Layout in SharePoint 2013
查看>>
mysql foreignkey
查看>>
Django 中的自定义分页标签
查看>>
[转]ASP.NET自定义控件复杂属性声明持久性浅析
查看>>
PAT (Basic Level) Practise (中文)-卡拉兹(Callatz)猜想
查看>>
第八周进度总结
查看>>
axios 注意点
查看>>
刷新ListView刷新时的闪烁问题
查看>>
cuda c例程学习——eigenvalues(1)
查看>>
通过本地文件数据库查询手机归属地
查看>>