某dp题
【NOI联考by ysy】庆典
2016年6月17日1,1040
【题目描述】
战狂在昌和帝国的首都法法城召开了庆典,向一万名最杰出的士兵分发了用魔法猪做的猪肉饺子,士兵们吃了猪肉饺子后,战斗力大幅提高。
为了保护战狂的安全以及维护现场秩序,大预言家抽调了n名普通士兵组成了m个小队完成一些不同的任务。由于一些特殊的原因,所有小队的人数都互不相同。
你需要求出有多少种可能的组队方案。注意士兵是相同的,而小队是不同的。
【输入数据】
第一行两个个整数n,m。
【输出数据】
一行一个数表示答案。对998244353取模。
【样例输入】
16 4
【样例输出】
216
【数据范围】
对于20%的数据,n,m<=20。
对于50%的数据,n,m<=3000。
对于100%的数据,n,m<=100000。
这个题目就比较简单
首先所有小队的人都不相同
那就先给每个位置\(i\)分配\(i\)个队员
对于剩下的人就分配给这m个小队
所以就\(O(nm)\)递推
这个递推有点熟悉(整数拆分问题)
递推法
根据n和m的关系,考虑下面几种情况:
(1)当n=1时,不论m的值为多少(m>0),只有一种划分,即\({1}\);
(2)当m=1时,不论 的值为多少(n>0),只有一种划分,即\({1,1,....1,1,1}\);
(3)当n=m时,根据划分中是否包含n,可以分为两种情况:
(a)划分中包含n的情况,只有一个,即\({n}\);
(b)划分中不包含n的情况,这时划分中最大的数字也一定比n小,即n的所有\((n-1)\)划分;
因此,\(f(n,n)=1+f(n, n-1)\)。
(4)当n时,由于划分中不可能出现负数,因此就相当于f(n,n);
(5)当n>m时,根据划分中是否包含m,可以分为两种情况:
(a)划分中包含 的情况,即{m,{x1,x2,x3,...,xi}},其中{x1,x2,x3,...,xi}的和为n-m,可能再次出现m,因此是(n-m)的m划分,因此这种划分个数为f(n-m,m;
(b)划分中不包含m的情况,则划分中所有值都比m小,即n的(m-1)划分,个数为f(n,m-1;
因此,f(n,m)=f(n-m,m)+f(n,m-1) 。
综合以上各种情况,可以看出,上面的结论具有递归定义的特征,其中(1)和(2)属于回归条件,(3)和(4)属于特殊情况,而情况(5)为通用情况,属于递归的方法,其本质主要是通过减少n或m以达到回归条件,从而解决问题。
详细递推公式描述如下:
那么
#include<iostream>
#include<cstdio>
#define N 100005
#define mod 998244353
using namespace std;
int dp[N];
int main(){
	int n,m;
	cin>>n>>m;
	n-=m*(m+1)/2;
	dp[0]=1;
	for(int i=1;i<=m;++i)
		for(int j=i;j<=n;++j)
			dp[j]=(dp[j]+dp[j-i])%mod;
	for(int i=2;i<=m;++i)
		dp[n]=(dp[n]*i)%mod;
	printf("%d",dp[n]);
	return 0;
}
												
											某dp题的更多相关文章
- Codeforces Round #369 (Div. 2)---C - Coloring Trees (很妙的DP题)
		
题目链接 http://codeforces.com/contest/711/problem/C Description ZS the Coder and Chris the Baboon has a ...
 - 4817 江哥的dp题d
		
4817 江哥的dp题d 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 已知1-N的排列P的LIS(最长上 ...
 - 4809 江哥的dp题c
		
4809 江哥的dp题c 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有两个数x,y,一开始x=1,y= ...
 - 4816 江哥的dp题b
		
4816 江哥的dp题b 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给出两个1-N的随机排列A,B.若 ...
 - 4815 江哥的dp题a
		
4815 江哥的dp题a 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给出一个长度为N的序列A(A1,A ...
 - HDU 2577 How to Type(dp题)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2577 解题报告:有一个长度在100以内的字符串,并且这个字符串只有大写和小写字母组成,现在要把这些字符 ...
 - codevs4817 江哥的dp题d
		
4817 江哥的dp题d 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold [题目描述] Description 已知1-N的排列P的LIS(最长上升子序列)不超 ...
 - 古韵之乞巧 题解 dp题
		
[noip模拟赛1]古韵之乞巧 描述 闺女求天女,更阑意未阑. 玉庭开粉席,罗袖捧金盘. 向月穿针易,临风整线难. 不知谁得巧,明旦试相看. ——祖咏<七夕> 女子乞巧,是七夕的重头戏 ...
 - cf1061c 普通dp题
		
题解见https://blog.csdn.net/godleaf/article/details/84402128 这一类dp题是可以压缩掉一维空间的,本题枚举a1到an,枚举到ai时枚举ai的每个约 ...
 - HDU 4472 Count  DP题
		
解题报告:题目大意,给你n个球,要将这n个球从下到上按层次排列,要求同一个层次的的每一个分支的数量都必须相等,问有多少种排列的方法. 此题的一个DP题,假设现在有n个球,要将这n个球排列好,我们就必须 ...
 
随机推荐
- Week2 Teamework from Z.XML 软件分析与用户需求调查(二)应用助手功能评测
			
评测人:薛亚杰 周敏轩. 说明:言辞激烈,请勿介意. 软件使用概述 我们团队这次评测的必应助手是必应缤纷桌面的一个小功能,根据评测人员试用几天后发现,它的作用大概就是能够用一种看上去比较生动的形式来给 ...
 - Extjs的API阅读方式(整理)
			
原文链接:http://www.cnblogs.com/gaojun/archive/2013/05/28/3103908.html
 - el-upload怎么拿到上传的图片的base64格式
			
这里只是本地上传,拿图片的base64,并不向后台直接上传,拿到base64后手动上传 上传前效果: 上传后效果: .vue <el-form-item label="礼品封面&quo ...
 - Kafka数据辅助和Failover
			
数据辅助与Failover CAP理论(它具有一致性.可用性.分区容忍性) CAP理论:分布式系统中,一致性.可用性.分区容忍性最多只可同时满足两个.一般分区容忍性都要求有保障,因此很多时候在可用性与 ...
 - Windows 64下elasticsearch-1.7.1集群 安装、启动、停止
			
elasticsearch-1.7.1 (es Windows 64) 安装.启动.停止的详细记录 https://blog.csdn.net/qq_27093465/article/details/ ...
 - sqoop将oracle数据导入hdfs集群
			
使用sqoop将oracle数据导入hdfs集群 集群环境: hadoop1.0.0 hbase0.92.1 zookeeper3.4.3 hive0.8.1 sqoop-1.4.1-incubati ...
 - Xcode 6.0中彻底关闭ARC
			
对整个项目关闭ARCproject -> Build settings -> Apple LLVM complier 3.0 - Language -> objective-C Au ...
 - 【算法】01分数规划 ---  HNOI2009最小圈 & APIO2017商旅 & SDOI2017新生舞会
			
01分数规划:通常的问法是:在一张有 \(n\) 个点,\(m\) 条边的有向图中,每一条边均有其价值 \(v\) 与其代价 \(w\):求在图中的一个环使得这个环上所有的路径的权值和与代价和的比率最 ...
 - [Leetcode] spiral matrix ii 螺旋矩阵
			
Given an integer n, generate a square matrix filled with elements from 1 to n 2 in spiral order. For ...
 - BZOJ3671 [Noi2014]随机数生成器  【贪心】
			
题目链接 BZOJ3671 题解 模拟题意生成矩阵贪心从小选择即可 每选择一个,就标记其左下右上矩阵 由于每次都是标记一个到边界的矩阵,所以一旦遇到标记过就直接退出即可,可以保证复杂度 还有就是空间和 ...
 
			
		