题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5230

解题思路:

这是一个整数划分的模型:

将n划分为k个整数的划分数

设dp[i][j]为将i划分为j个整数的划分数。

  (1) i<j为不可能出现的情况,dp[i][j]=0;

  (2) 若i=j,有一种情况:i可以划分为i个1之和,dp[i][j]=1;

  (3) 若i>j,可以根据划分数中是否含有1分为两类:若划分数中含有1,可以使用“截边法”将j个划分分别截去一个1,把问题转化为i-j的j-1个划分数,为dp[i-j][j-1]; 若划分中不包含1,使用“截边法”将j个划分数的最下面一个数截去,将为题转化为求i-j的j个划分数,为dp[i-j][j]。所以i>j时dp[i][j]=dp[i-j][j-1]+dp[i-j][j]。

这道题是一样的,dp[i][j]表示将i划分成j个不同的数,与上面不同的是,这里当i=j时我们是不处理的,即我们不能出现i=j的情况。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;const int maxn = 100005;
const int mod = 998244353;
int n,L,R,C,dp[2][maxn];int main()
{int t;scanf("%d",&t);while(t--){scanf("%d%d%d%d",&n,&C,&L,&R);L -= C,R = min(R-C,n-1);memset(dp,0,sizeof(dp));dp[0][0] = 1;int ans = L <= 0 ? 1 : 0;for(int i = 1; (1 + i) * i / 2 <= R; i++) //枚举人数{for(int j = (1 + i) * i / 2; j <= R; j++) //枚举分数{dp[i & 1][j] = (dp[i & 1][j - i] + dp[(i - 1) & 1][j - i]) % mod;  if(L <= j && j <= R)ans = (ans + dp[i & 1][j]) % mod;}memset(dp[(i - 1) & 1],0,sizeof(dp[(i - 1) & 1]));  }printf("%d\n",ans);}return 0;
}

hdu 5230(整数划分,dp)相关推荐

  1. 大概是:整数划分||DP||母函数||递推

    整数划分问题 整数划分是一个经典的问题. Input 每组输入是两个整数n和k.(1 <= n <= 50, 1 <= k <= n) Output 对于每组输入,请输出六行. ...

  2. 51nod 1201:整数划分 超级好的DP题目

    1201 整数划分 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 将N分为若干个不同整数的和,有多少种不同的划分方式,例如:n = 6,{6} { ...

  3. Acwing900. 整数划分[计数类dp]:完全背包解法

    文章目录 题目分析 完全背包解法 题目链接 题目分析 完全背包解法 请复习完全背包模板完全背包dp优化内有完整标准完全背包的推导过程 状态表示: f[i][j]f[i] [j]f[i][j] 表示从 ...

  4. NYOJ90 整数划分(经典递归和dp)

    整数划分 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 将正整数n表示成一系列正整数之和:n=n1+n2+-+nk,  其中n1≥n2≥-≥nk≥1,k≥1.  正整数 ...

  5. Gym - 100952H--H. Special Palindrome--dp整数划分(模板)

    题目地址 A sequence of positive and non-zero integers called palindromic if it can be read the same forw ...

  6. HDOJ1028-Ignatius and the Princess III(整数划分)

    整数划分: 整数N划分问题是一个组合数学的问题,要求将N划分成多个数的和,实际是将N个1切分成几块的问题,也可以说是在N个1的N-1个空档中插入K块挡板分割. 动态规划: dp[i][j],将i划分为 ...

  7. NYOJ-571 整数划分(三)

    此题是个非常经典的题目,这个题目包含了整数划分(一)和整数划分(二)的所有情形,而且还增加了其它的情形,主要是用递归或者说是递推式来解,只要找到了递推式剩下的任务就是找边界条件了,我觉得边界也是非常重 ...

  8. codevs1085数字游戏(环形DP+划分DP )

    1085 数字游戏  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在 ...

  9. ACM 整数划分(四)

    整数划分(四) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 暑假来了,hrdv 又要留学校在参加ACM集训了,集训的生活非常Happy(ps:你懂得),可是他最近遇到 ...

最新文章

  1. Python高级编程(二)
  2. jvm:虚方法与非虚方法
  3. [@Controller]4 详解@ModelAttribute
  4. Smartform中负号提前解决方法
  5. 工作55:对v-model的理解
  6. 零基础入门│带你理解Kubernetes
  7. JAVA多线程售票问题
  8. 直接插入排序中的监视哨问题
  9. Adobe Acrobat Pro 2017安装
  10. 北洋园pt---一个好用的pt网站
  11. Overture五线谱乐理小课堂——音程 (上)
  12. 辽宁教师计算机能力提升,辽宁省中学教师信息化教学能力的现状分析与提升策略研究...
  13. 动态图解实例 ConstraintLayout Chain
  14. 秒懂Android属性动画
  15. 工具收集 - 搜索工具
  16. java语言程序设计教程课后题答案魏永红_《Java语言程序设计教程》习题参考答案...
  17. 深度学习 情感分析_使用深度学习进行情感分析
  18. 7时过2小时是几时_餐后2小时血糖正常值是多少?
  19. Scratch的克隆体
  20. 全爱科技发布边缘计算主板QA200PCIE

热门文章

  1. 赛程一览 | 2019 上海国际创客大赛
  2. SPringBoot+mybatis 框架搭建例子
  3. TPYBoard:一款可以发挥无限创意的MicroPython开发板
  4. 从比特大陆AI芯片入局智慧城市看阿里腾讯的城市“攻坚战”...
  5. 大型分布式C++框架《四:netio之请求包中转站 上》
  6. 不是你无法入门自然语言处理(NLP),而是你没找到正确的打开方式
  7. css中的一些常用选择器
  8. [C#] C# 知识回顾 - 装箱与拆箱
  9. tomcat 域名的配置
  10. Hadoop---在window下配置安装之cygwin的安装