暴力\(DP\)

考虑暴力\(DP\),我们设\(f_{i,j}\)表示当前覆盖长度为\(i\),上一次折叠长度为\(j\)的方案数。

转移时需要再枚举这次的折叠长度\(k\)(\(k\ge j\)),转移方程如下:

\[f_{i+2k-j,k}+=f_{i,j}
\]

对于左、右两边,根据不同的初始化\(DP\)两遍。

统计时枚举两边覆盖长度计算即可。

优化\(DP\)

实际上,我们可以把这个\(DP\)拆成两个数组,一个表示左端点在\(x\)位的方案数,另一个表示右端点在\(y\)位的方案数。

转移时,方程也是比较简洁的:

\[a_{x+i}+=a_x,b_{x+2i}+=a_x
\]

代码

#include<bits/stdc++.h>
#define Tp template<typename Ty>
#define Ts template<typename Ty,typename... Ar>
#define Reg register
#define RI Reg int
#define Con const
#define CI Con int&
#define I inline
#define W while
#define N 10000
#define X 998244353
#define Inc(x,y) ((x+=(y))>=X&&(x-=X))
using namespace std;
int n,l,r;
class Dper
{
private:
int f[N+5],g[N+5],p[N+5];
public:
I void Solve()
{
#define DP(s,x,y) for(p[0]=i=1,t=n-y;i<=n;++i) p[i]=0;\
for(i=x;2*i<=t;++i) for(j=0;2*i+j<=t;++j) Inc(p[i+j],p[j]),Inc(s[2*i+j],p[j]);++s[x];//用#define简洁表示两次DP
RI i,j,t,ans=0;DP(f,l,r);DP(g,r,l);//DP预处理
for(i=l;i<=n-r;++i) ans=(1LL*f[i]*g[n-i]+ans)%X,Inc(f[i+1],f[i]);printf("%d",ans);//统计答案
}
}D;
int main()
{
freopen("fold.in","r",stdin),freopen("fold.out","w",stdout);
return scanf("%d%d%d",&n,&l,&r),D.Solve(),0;
}

最新文章

  1. 解决“添加远程依赖方式没有效果”的bug
  2. UE4 Windows平台部署游戏到IOS 第二部分
  3. 《Java多线程核心技术》读书摘要
  4. java解析xml文档(dom)
  5. Swift-01 UIWebView加载网页
  6. [转]Oracle hang分析
  7. .NET中IDisposable接口的基本使用
  8. 【原创】无线破解Aircrack-ng套件详解--airmon-ng与airodump-ng
  9. RT5350 OpenWrt 系统移植jsoncpp
  10. (2018干货系列一)最新Java学习路线整合
  11. mysql数据库 调优
  12. Linux 初始环境配置 以及避坑 (详细)
  13. jfinal中,render的时候如何取到view根目录
  14. Android为TV端助力 转载:android MVC设计模式
  15. Gym 101981G - Pyramid - [打表找规律][2018-2019 ACM-ICPC Asia Nanjing Regional Contest Problem G]
  16. VS复制文件到输出目录
  17. ContenteProvider
  18. [转]CMake cache
  19. smarty中调用php内置函数
  20. 4、Redis中对List类型的操作命令

热门文章

  1. Docker学习(六)-Kubernetes - Spring Boot 应用
  2. 如何在 C# 中自定义 Comparer,以实现按中文拼音(a-z)来排序
  3. 第三章 web设计原则:
  4. WPF ValidationRules(MVVM 数据验证)
  5. CSS颜色、单位、文本样式
  6. Redis缓存和MySQL数据一致性方案(转)
  7. 【IDE_IntelliJ IDEA】IDEA中使用Junit插件自动创建测试用例到test目录
  8. SpringBoot整合Fastdfs,实现图片上传(IDEA)
  9. 服务器学习--Linux、CentOS下安装zip与unzip指令
  10. 简单的基于promise的ajax封装