划分硬盘分区
来源:互联网 发布:做淘宝代销什么好 编辑:程序博客网 时间:2024/05/14 12:49
题目描述
小H花10000元买了一台超高低配置的电脑,然而电脑上连分区都没划分,于是,小H准备开始依据《操作员手册》第三篇《电脑配置(10000元机器)》划分分区。
这本书说:这台机器需要被划分成n个分区,其中可以有分区是空的(这并不完全等于没划分)。
因为电脑的奇奇怪怪的问题,所以第i个分区的大小只能是0和a[i]之间的整数
这台电脑的内存为m(n个分区的大小的和为m),小H想知道有多少种划分方案。
结果对1000007取模。
输入
n m
a[i]..a[n]
输出
方案数 mod 1000007
样例输入
2 43 2
样例输出
2
提示
方案1:第一个盘大小为2,第二个盘大小为2
方案2:第一个盘大小为3,第二个盘大小为1
0<n,m<=100
0<=a[i]<=100
/*记忆化搜索*/
附AC码:
#include<iostream>#include<algorithm>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>using namespace std;int s[128],a[128][128];int dfs(int x,int y){ if(x==0 && y>0) return 0; if(x==0) return 1; if(a[x][y])return a[x][y]; int k=min(s[x],y); for(int i=0;i<=k;i++){ a[x][y]+=dfs(x-1,y-i); a[x][y]%=1000007; }return a[x][y];}int main(){ int i,j,k,m,n; scanf("%d%d",&n,&m); for(i=1;i<=n;i++) scanf("%d",&s[i]); printf("%d\n",dfs(n,m)); return 0;}
0 0
- 划分硬盘分区
- 硬盘分区的划分原则
- fdisk 添加新硬盘,划分硬盘分区,挂载流程
- 硬盘分区
- 硬盘分区
- 硬盘分区
- 硬盘分区
- 硬盘分区
- 硬盘分区
- 硬盘分区
- 硬盘分区
- 硬盘分区
- 硬盘分区
- 硬盘分区
- linux服务器挂载硬盘和服务器硬盘分区划分物理卷
- 划分
- 划分
- 关于硬盘分区
- Python 2.7.x 和 3.x 版本的重要区别小结
- javaWeb 项目Http转Https
- 第五周
- c 给字符串赋值
- Linux 下如何安装 zookeeper
- 划分硬盘分区
- [Android]dump调用
- ACM 括号配对问题 (Java)
- 正则表达式30分钟入门教程
- 文章标题
- C++深浅拷贝——实现String类
- SpringBoot学习(一) — 我的第一个SpringBoot工程
- Java 操作符
- 不错的Unity教程