【51NOD】1201 整数划分

【题意】将n划分成不同正整数的和的方案数。

【算法】动态规划

【题解】

暴力:f[i][j]:只用前1..i的数字,总和为j的方案数

本质上是01背包,前i个物体,总质量为j的方案数

f[i][j]=f[i-1][j]+f[i-1][j-i]

复杂度O(n^2)

优化:

我们发现,因为要求数字不同,那么数字最多也小于sqrt(n*2)个。

极端情况:1+2+3+...+mx=n mx<sqrt(n*2)

所以可以改一下状态的设计

f[i][j]:用了i个数字,总和为j的方案数。

转移状态:

①如果i个数里没有1:那么把i个数字都-1,就对应“取了i个数字,总和为j-i”的,i个数都+1

②i个数字里有1:对应"取了i-1个数字,总和为j-i"的情况,再加一个新的数字1,其他i-1个数也都+1啊

f[i][j]=f[i-1][j-i]+f[i][j-i]

初始状态f[0][0]=1

#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=50010;
const long long MOD=1000000007;
int f[350][maxn],n;
int main()
{scanf("%d",&n);f[0][0]=1;for(int i=1;i*i<=n*2;i++)for(int j=1;j<=n;j++)if(j-i>=0)f[i][j]=(f[i-1][j-i]+f[i][j-i])%MOD;long long ans=0;for(int i=1;i*i<=n*2;i++)ans=(ans+f[i][n])%MOD;printf("%lld",ans);return 0;
}
View Code

 

总结一下几种情况:

1.$f_{n,m}$表示将数字n分成m个非负整数的方案。

$$f_{i,j}=f_{i,j-1}+f_{i-j,j}$$

如果方案中有0就去掉,否则整体-1。

 

2.$f_{n,m}$表示将数字n分成m个正整数的方案。

$$f_{i,j}=f_{i-1,j-1}+f_{i-j,j}$$

如果方案中有1就去掉,否则整体-1。

 

3.$f_{n,m}$表示将数字n分成m个不同正整数的方案数。

$$f_{i,j}=f_{i-j,j-1}+f_{i-j,j}$$

强制递增,如果方案第一位是1那么去掉后整体-1,否则整体-1。

转载于:https://www.cnblogs.com/onioncyc/p/6295938.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux c之assert函数使用总结

1、assert函数介绍 assert宏的原型定义在<assert.h>中&#xff0c;其作用是如果它的条件返回错误&#xff0c;则终止程序执行&#xff0c;原型定义&#xff1a;#include <assert.h> void assert( int expression ); assert的作用是现计算表达式 expression &#x…

Activity加载View调用顺序

2019独角兽企业重金招聘Python工程师标准>>> 在Activity的onCreate方法中&#xff0c;可以通过setContentView()方法来设置此Activity要显示的界面。在xml中的布局文件需要先解析成View树才能加载显示&#xff0c;通过View的onMeasure,onLayout,onDraw方法完成View的…

使用 kube-bench 和 kube-hunter 对 Kubernetes 集群风险评估

点击上方蓝字关注 &#x1f446;&#x1f446;↓推荐关注↓随着 Kubernetes 越来越受欢迎&#xff0c;门槛也越来越低。但是安全问题仍然存在&#xff0c;下面介绍两个审计集群安全的开源工具。kube-benchkube-bench[1] 是一个 Go 应用程序&#xff0c;拥有 4.5k star。用于检查…

实验 4 操作、输出值和数据表实验报告--软件功能测试与性能测试实验

下载链接&#xff1a; https://download.csdn.net/download/qq_44872173/20031742

easyui 排序实现

1.对easyui datagrid 返回的数据&#xff0c;进行排序处理&#xff0c;便于搜索到我们的有用的信息。 例如&#xff1a; 2.datagrid 需要设置 sortable : true {field : crtTime,title : 创建时间,width : 100,sortable :true,align : center,formatter : crtTimeFtt}, 3.F12…

hm编码工具使用_H.265视频编码与技术全析(下)

H.265视频编码与技术全析&#xff08;下&#xff09;四&#xff0e;帧内预测模式共35个&#xff08;h264有9个&#xff09;&#xff0c;包括Planar&#xff0c;DC&#xff0c;33个方向模式&#xff1a;除了Intra_Angular预测外&#xff0c;HEVC还和H.264/MPEG-4 AVC一样&#x…

redmine安装指引

为什么80%的码农都做不了架构师&#xff1f;>>> 1 前言 本文记录了在window7下面安装redmine的操作过程&#xff0c;同时也为其他有兴趣安装redmine的同学提供帮助。 2 环境说明 操作系统&#xff1a;window7 64位 数据库&#xff1a;mysql-5.5.36-winx64 Red…

.NET 诞生已20周年,您的 .NET 技能是否还停留在2010 年?

20年来&#xff0c;我们见证了超过上千万.NET 开发员&#xff0c;当前有600万.NET 开发者正在使用.NET技术构建各类解决方案。今天&#xff0c;IT市场对.NET 开发人员的需求达到了前所未有的程度,特别是在中国&#xff0c;各大公司对.NET 程序员的需求用火爆来形容都不为过&…

实验 5 性能测试脚本录制和开发实验报告--软件功能测试与性能测试实验

实验内容&#xff1a; 下载链接&#xff1a; https://download.csdn.net/download/qq_44872173/20031769

MySQL-5.5.33主从复制

搭建主从同步需要在两个电脑上分别安装 MySQL &#xff0c;我这里安装的是 CentOS6.7 64位&#xff0c;MySQL-5.5.33。MySQL 是二进制包安装的&#xff1a;http://aby028.blog.51cto.com/5371905/1892818两台的操作是一样的&#xff0c;要求能够登陆 mysql 数据库即可。主从地址…

C#中的数据字典Dictionary

前言今天上午和往常一样在网上冲浪,看到码甲哥微信群里面在聊一个面试题&#xff0c;比较有意思&#xff0c;这里简单分享下结论中的Dictionary字典。有50w个int类型的数字&#xff0c;现在需要判断一下里面是否存在重复的数字&#xff0c;请简要说明下。假如这个题目让我做&am…

实验 6 场景创建与执行 实验报告--软件功能测试与性能测试实验

下载链接&#xff1a; 下载链接&#xff1a; https://download.csdn.net/download/qq_44872173/20031798 内容&#xff1a;

改成中文版的_lol手游怎么改成中文版?英雄联盟手游中文版更改教程

阅读本文前&#xff0c;请您先点击上面的蓝色字体&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到文章了。每天都有分享&#xff0c;完全是免费订阅&#xff0c;请放心关注&#xff01; 【免责声明】本文部分文字与图片资源来自于网络&#xff0c…

dotnet 替换 ASP.NET Core 的底层通讯为命名管道的 IPC 库

这是一个用于本机多进程进行 IPC 通讯的库&#xff0c;此库的顶层 API 是采用 ASP.NET Core 的 MVC 框架&#xff0c;其底层通讯不是传统的走网络的方式&#xff0c;而是通过 dotnetCampus.Ipc 开源项目提供的基于 NamedPipeStream 命名管道的方式进行通讯。相当于替换掉 ASP.N…

好想写点儿什么,但是不知道怎么写

自己已经上班了&#xff0c;但是有好多的时候还是做起事情没有一点毅力&#xff0c;不论是学习&#xff0c;还是追女生&#xff0c;还是想学习音乐。就像没有毕业的时候看C语言的书籍&#xff0c;看了一个星期&#xff0c;不想看了然后就不看了。书上面自己做的笔记过不了几天也…

上帝的玩偶:haXe语言

在动画片《我叫MT》中&#xff0c;有个“五火球神教”&#xff0c;五火球神教的口号是“征服世界”。在小说《风姿物语》中疯狂的白家的某代家主白拉登&#xff0c;他手中的扇子上写着“世界征服”四个大字。 疯狂&#xff01;只能用疯狂来形容。少年们&#xff0c;下面请看一群…

实验 7 场景运行监控及性能测试结果分析_实验报告--软件功能测试与性能测试实验

下载链接&#xff1a; 下载链接&#xff1a; https://download.csdn.net/download/qq_44872173/20031824 内容&#xff1a;

中yeti不能加载_将 PQ 查询加载到 Excel 中进行分析的三种常用的方式

点击上方蓝字 关注星标★不迷路岁月本长&#xff0c;忙者自促虽然大部分时候经过PQ清洗的数据都是加载到Excel工作表中&#xff0c;但是PQ中还有另外两种将数据返回Excel中进行分析的方法。三种不同的数据加载方式&#xff1a;Excel 智能表格仅限链接PowerPivot 数据模型一、加…

SQLite3.8.4.2在Windows平台下的编译和使用

2019独角兽企业重金招聘Python工程师标准>>> SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The …