Codeforces Round #551 (Div. 2) F. Serval and Bonus Problem (DP/FFT)
2024-09-04 10:12:26
这线段期望好神啊。。。
还有O(nlogn)FFTO(nlogn)FFTO(nlogn)FFT的做法 Freopen大佬的博客
本蒟蒻只会O(n2)O(n^2)O(n2)
CODE
#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
typedef long long LL;
const int MAXN = 4005;
inline void add(int &x, int y) { x += y; if(x >= mod) x -= mod; }
inline int qpow(int a, int b) {
int res = 1;
while(b) {
if(b & 1) res = 1ll * res * a % mod;
a = 1ll * a * a % mod; b >>= 1;
}
return res;
}
int n, l, k, f[2][MAXN][2];
int main () {
scanf("%d%d%d", &n, &k, &l);
int now = 0, N = 2*n+1;
f[0][0][0] = 1;
for(int i = 1; i <= N; ++i) {
now ^= 1; memset(f[now], 0, sizeof f[now]);
for(int j = 0; j < i; ++j) {
add(f[now][j+1][0], f[now^1][j][0]),
add(f[now][j+1][1], f[now^1][j][1]);
if(j)
add(f[now][j-1][0], 1ll * f[now^1][j][0] * j % mod),
add(f[now][j-1][1], 1ll * f[now^1][j][1] * j % mod);
if(j >= k)
add(f[now][j][1], f[now^1][j][0]);
}
}
int ans = 1ll * f[now][0][1] * l % mod * qpow(2, n) % mod;
for(int i = n+1; i <= N; ++i) ans = 1ll * ans * qpow(i, mod-2) % mod;
printf("%d\n", (ans + mod) % mod);
}
最新文章
- 在配有英特尔&#174; Iris™ 显卡的系统上通过优化对 Just Cause 3 进行增强
- 仿花田:相亲网站 意中人 已在GitHub上开源
- css sprite简便方法切 《评分五角星》
- 【社招】来杭州吧,阿里国际UED招前端~~
- 黑马程序员——JAVA基础之多态与Object
- cacti
- linux环境下,利用tc限制两台服务器间的网速,非常简单。
- PHP 增删改查 import!!
- MDM基于IOS设备管控功能的所有命令介绍
- POJ3273-Monthly Expense (最小化最大值)
- html5应用程序标签
- Delphi XE7下 Intraweb 发布为ASP.NET应用程序
- 【Python脚本】Eclipse IDE扩展PyDev插件安装
- DIV+CSS规范命名
- 基于Socket的UDP和TCP编程介绍
- 有关extern的用法
- AT&T汇编语言学习:利用c库、文件读写
- 深入了解Android蓝牙Bluetooth——《进阶篇》
- mybatis 中使用 in 查询
- Keepalived详解(五):Keepalived集群中MASTER和BACKUP角色选举策略【转】
热门文章
- [转帖]java的编译器,解释器和即时编译器概念
- Jmeter 跨线程组传递参数 之两种方法(转)
- WUSTOJ 1282: Start(Java)
- Java坑人面试题之自动装箱和拆箱后的引用数据类型和基本数据类型的计算
- Warning: popen() has been disabled for security reasons in OS/Guess.php on line 241
- Java Convention 公约数计算
- 十一、微信小程序-var、let、const用法详解
- [转载]JDK、SDK、J2EE、J2SE、J2ME的区别
- js中prototype与__proto__的关系详解
- react中key值的理解