【OpenJ_Bailian - 4117】简单的整数划分问题(dp)
题干:
将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。
正整数n 的这种表示称为正整数n 的划分。正整数n 的不同的划分个数称为正整数n 的划分数。
Input
标准的输入包含若干组测试数据。每组测试数据是一个整数N(0 < N <= 50)。
Output
对于每组测试数据,输出N的划分数。
Sample Input
5
Sample Output
7
Hint
5, 4+1, 3+2, 3+1+1, 2+2+1, 2+1+1+1, 1+1+1+1+1
解题报告:
dp[i][j]代表将i划分成最大整数为j的方案数。
AC代码:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define F first
#define S second
#define ll long long
#define pb push_back
#define pm make_pair
using namespace std;
typedef pair<int,int> PII;
const int MAX = 55 + 5;
vector<int> vv;
ll dp[MAX][MAX];
ll ans[MAX];
int main()
{ int n=50;for(int i = 1; i<=n; i++) dp[0][i] = 1;for(int i = 1; i<=n; i++) {for(int j = 1; j<=n; j++) {if(i<j) dp[i][j] = dp[i][j-1];else dp[i][j] = dp[i-j][j] + dp[i][j-1];}}for(int i = 1; i<=n; i++) {ans[i] = dp[i][50];} while(~scanf("%d",&n)) {printf("%lld\n",ans[n]);}return 0 ;
}
或者这么写也可以:
for(int i = 1; i<=n; i++) {for(int j = 1; j<=n; j++) {if(i<j) dp[i][j] = dp[i][j-1];else if(i==j) dp[i][j] = dp[i][j-1]+1;else dp[i][j] = dp[i-j][j] + dp[i][j-1];}}
【OpenJ_Bailian - 4117】简单的整数划分问题(dp)相关推荐
- Bailian4117 简单的整数划分问题【整数划分+记忆化递归】
4117:简单的整数划分问题 总时间限制: 100ms 内存限制: 65536kB 描述 将正整数n 表示成一系列正整数之和,n=n1+n2+-+nk, 其中n1>=n2>=->=n ...
- c++矩阵连乘的动态规划算法并输出_算法交流: 7215 简单的整数划分问题 【2.7基本算法之算法效率】...
[题目描述]7215:简单的整数划分问题 by Oler17WA 将正整数n 表示成一系列正整数之和,n=n1+n2+-+nk, 其中n1>=n2>=->=nk>=1 ,k&g ...
- 百练 04 简单的整数划分问题
百练 04 简单的整数划分问题 总时间限制: 内存限制: 100ms 65536kB 描述 将正整数nn表示成一系列正整数之和,n=n1+n2+-+nkn=n_1+n_2+-+n_k, 其中n1> ...
- 整数划分问题的递归算法-c语言,简单的整数划分问题(递归)
描述 将正整数n 表示成一系列正整数之和,n=n1+n2+-+nk, 其中n1>=n2>=->=nk>=1 ,k>=1 . 正整数n 的这种表示称为正整数n 的划分.正整 ...
- 整数划分问题 递归 动态规划 openjudge 百练 python
4117:简单的整数划分问题 http://bailian.openjudge.cn/practice/4117 4119:复杂的整数划分问题 http://bailian.openjudge.cn/ ...
- Bailian4119 复杂的整数划分问题【DP】
4119:复杂的整数划分问题 总时间限制: 200ms 内存限制: 65536kB 描述 将正整数n 表示成一系列正整数之和,n=n1+n2+-+nk, 其中n1>=n2>=->=n ...
- 【生成函数】五边形数定理与整数划分问题详解
Part 0. 前置知识 简单的公式推导 生成函数 大量数学公式警告 Part 1. 什么是五边形数 五边形数 看一张图吧: XP 系统带的画图真的挺好用! 我们不难得出五边形数的数列: P = { ...
- 递归--整数划分问题
问题描述: 将正整数n表示成一系列正整数之和:n=n1+n2+-+nk,其中n1≥n2≥-≥nk≥1,k≥1.正整数n的这种表示称为正整数n的划分. 问题1: 输出整数n的所有可能的划分,如: 输入: ...
- 百练 03 复杂的整数划分问题
百练 03 复杂的整数划分问题 总时间限制: 内存限制: 200ms 65536kB 描述 将正整数nn表示成一系列正整数之和,n=n1+n2+-+nkn=n_1+n_2+-+n_k, 其中n1> ...
最新文章
- 关系数据库范式(1)
- Linux程序移植到Android上
- SAP UI5对mobile touch事件的支持
- 基于verilog贪吃蛇游戏设计
- 深入剖析Redis系列(四) - Redis数据结构与全局命令概述
- 【C++深度剖析教程35】函数模板的概念和意义
- android主流技术框架,android开发现在流行什么IDE和开发框架?
- 你可真行呀的飞鸽传书
- 【ASM C/C++】 Makefile 规则说明
- RabbitMQ学习之ConntectionFactory与Conntection的认知
- Atitit 常用二维码对比(QR、PDF417、DM、汉信码 Aztec code maxicode
- 关于Android中开机启动服务
- 使用腾讯云DNSPod实现动态域名解析DDNS(测试可以用)
- codeforce 760 B Frodo and pillows 二分搜索
- 房屋租赁合同法律规定是怎样的
- 解决eWebEditor上传图片提示:请选择一个有效的文件,支持的格式有(GIF|JPG|JPEG|BMP|PNG)!
- 花落谁家---再见熊节
- 网红超火罗马桌面时钟效果
- Android基础整合项目之节日群发助手(二)
- Springboot中使用@Value无法取到application.properties值
热门文章
- CruiseControl.NET ----- mail 配置
- where 1=1低效?
- 学PHP的嫌弃什么歌,抖音再见了互相嫌弃的老同学是什么歌
- php.ini 老薛,出现Allowed memory size of 134217728 bytes exhausted怎么办?
- wpf的listbox循环数据滚动_滚动版 CentOS Stream 和 Fedora 的关系
- css3 transform matrix 深入理解
- mysql change index_MySQL · 引擎特性 · Innodb change buffer介绍
- esxi usb插口_酷暑大作战 | USB-C风扇新体验
- linux ps 进程组,linux进程管理(2)---进程的组织结构
- git 合并冲突_GIT提交记录和Revert commit过程分析