题目简化和分析:

k叉树,乍一看好像是树论,但我们通过分析条件,发现它每个阶段要做的事情一样,皆为:\(1\sim k\) 中选数字,这就很明显是DP。

\(\mathit{f}_{i,0}\) 表示和为 \(i\),但不满足至少一边 \(\ge d\)。

\(\mathit{f}_{i,1}\) 表示和为 \(i\),并且满足至少一边 \(\ge d\)。

\[\mathit{f}_{i,1}=\mathit{f}_{i,1}+\mathit{f}_{i-j,1}(j\le k)
\]
\[\mathit{f}_{i,0}=\mathit{f}_{i,0}+\mathit{f}_{i-j,0}(j < d)
\]
\[\mathit{f}_{i,1}=\mathit{f}_{i,1}+\mathit{f}_{i-j,0}(j\ge d)
\]
  • 方程一:因为已经满足,所以当 \(j\le k\) 都满足。
  • 方程二:当不满足,并且 \(j < d\),那么依旧不满足。
  • 方程三:当不满足,但是 \(j\ge d\),那么即可变为满足。

Solution:

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef double db; const int N=1e2+50;
const int M=1e5+50;
const int Mod=1e9+7; inline ll read(){
ll x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
} ll n,k,d;
ll f[N][2];
int main()
{
n=read(),k=read(),d=read();
f[0][0]=1;
for(int i=1;i<=n;++i){
for(int j=1;j<=min((ll)i,k);++j){
f[i][1]+=f[i-j][1],f[i][1]%=Mod;
if(j<d)f[i][0]+=f[i-j][0],f[i][0]%=Mod;
if(j>=d) f[i][1]+=f[i-j][0],f[i][1]%=Mod;
}
}
printf("%lld\n",f[n][1]%Mod);
return 0;
}

CF431C的更多相关文章

  1. CF431C k-Tree dp

    Quite recently a creative student Lesha had a lecture on trees. After the lecture Lesha was inspired ...

  2. [CF431C]k-Tree

    题目描述 Quite recently a creative student Lesha had a lecture on trees. After the lecture Lesha was ins ...

  3. dp入门30题

    前言:本文章主要记录一些 \(dp\) 入门题,都是我做过的,希望读者能从这些基础题中打好 \(dp\) 扎实的基础,有不足的地方也欢迎指出.大部分是 \(CodeFoces\) 和 \(Atcode ...

随机推荐

  1. 详解Django请求与响应:深入理解Web Http交互的核心机制

    本文深入探讨了 Django 中的请求与响应处理,从 Django 请求和响应的基础知识.生命周期,到 HttpRequest 和 HttpResponse 对象的详细介绍.同时,讨论了 Django ...

  2. 即构SDK新增焦点语音功能,可实现特定用户语音的聚焦

    2021年,即构SDK每月迭代如期而至.今年,我们会着重介绍每月SDK的重要新增功能,让大家更清晰的了解到这些新功能的特性及应用场景. 重点新增功能 多人语音通话场景下的焦点语音功能 功能介绍 即构S ...

  3. Hexo博客Yilia主题添加相册功能,丰富博客内容,Next等其他主题可以参考

    实现思路 1.在主页上必须有一个可供点击的相册连接 2.要用 hexo 生成一个photos.html文件 3.photos.html中的图片数据来源?因为这是一个静态页面所有要有一个 json文件 ...

  4. DLL注入-Windows消息钩取

    0x01 钩子 钩子,英文Hook,泛指钓取所需东西而使用的一切工具.后来延伸为"偷看或截取信息时所用的手段或工具". 挂钩:为了偷看或截取来往信息而在中间设置岗哨的行为 钩取:偷 ...

  5. 使用Docker+PHP搭建苹果Maccms的影视站详细教程

    自己做博客站太难了,SEO太差自己都搜不到,原文地址求你点进去看:https://typecho.hanzhe.site/archives/88 说在前面 很早之前还没参加工作的时候,手头没钱,想要看 ...

  6. SEO相关配置 HTML meta标签总结与属性使用介绍

    HTML meta标签总结与属性使用介绍 <!-- 声明文档使用的字符编码 --> <meta charset='utf-8'> <!-- 优先使用 IE 最新版本和 C ...

  7. org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://localhost:9000/usr/local/spark/zytdemo

    意思说在 hdfs://localhost:9000/usr/local/spark/zytdemo找不到响应的文件,我们可以分析的得到他并不是加载本地文件,而是区hdfs上查找. 这是由于我们在之前 ...

  8. zabbix 可计算监控项使用 last() 与 avg() 的区别

    使用zabbix的可计算监控项时遇到的问题 在agent异常退出的情况下,使用last()的监控项依然在产出数据! 分析解决 last()函数会跳过空值,取最后一个有效值计算.遍查文档,只有用avg( ...

  9. 删除 /tmp 目录下长时间未访问的文件

    #!/bib/bash DIR=/tmp cd $DIR || { echo "Dir not Found: $Dir" exit } echo "Delete a fi ...

  10. NativeBuferring&mdash;&mdash;一种零分配的数据类型[上篇]

    之前一个项目涉及到针对海量(千万级)实时变化数据的计算,由于对性能要求非常高,我们不得不将参与计算的数据存放到内存中,并通过检测数据存储的变化实时更新内存的数据.存量的数据几乎耗用了上百G的内存,再加 ...