- 浏览: 120422 次
- 性别:
- 来自: 北京
最新评论
#include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <iostream> #include <algorithm> #include <vector> #include <map> #include <set> #define out(v) cout << #v << ": " << (v) << endl #define MP(X,Y) make_pair(X,Y) using namespace std; typedef long long LL; // 整数划分,hit1402 int f1(int n, int t) { if (t == 0 || t == 1) return 1; int sum = 0; for (int i = 1; i <= t; ++i) sum += f1(n - i, min(n - i, i)); return sum; } int f2(int n, int k) { if (n < k) return 0; if (n == k) return 1; int sum = 0; for (int i = 1; i <= k; ++i) sum += f2(n - k, i); return sum; } int f3(int n, int t) { if (t == 0 || t == 1) return 1; int sum = 0; for (int i = 1; i <= t; i += 2) sum += f3(n - i, min(n - i, i)); return sum; } int f4(int n, int t) { if (n == 0) return 1; int sum = 0; for (int i = 1; i <= t; ++i) sum += f4(n - i, min(n - i, i - 1)); return sum; } int main() { int n, k; while (scanf("%d%d", &n, &k) != EOF) { printf("%d\n", f1(n, n)); // 将n划分成若干正整数之和的划分数 printf("%d\n", f2(n, k)); // 将n划分成k个正整数之和的划分数 printf("%d\n", f1(n, k)); // 将n划分成最大数不超过k的划分数 printf("%d\n", f3(n, n)); // 将n划分成若干奇正整数之和的划分数 printf("%d\n", f4(n, n)); // 将n划分成若干不同整数之和的划分数 printf("\n"); } return 0; }
发表评论
-
lower_bound and upper_bound
2012-02-09 00:36 1181/** * @brief Finds the ... -
HDU 3954
2012-02-05 10:43 863线段树变种,也是在2logn段上面做文章 /* * ... -
HDU 4027
2012-02-04 22:09 884线段树变种 在2logn段上面做文章,swap(x, y)太阴 ... -
ICPC编码建议
2011-10-28 09:52 937写代码最重要的是清晰,包括思路的清晰和代码结构的清晰。我们无法 ... -
[转载]TopCoder插件
2011-09-08 22:13 1006转载自:http://acm.cugb.edu.cn/blog ... -
UVALive 5112 - Sales Prediction
2011-01-06 10:19 1219封装了矩阵类 比赛做得很郁闷,为什么别人写得很长、很罗嗦的代码 ... -
hdu 3236
2010-12-12 14:10 825终于能过这道题了,算是背包必做题之一吧 /* * Au ... -
pku 1018
2010-12-11 15:18 645写了两三个版本,最后这个效率最高 #include < ... -
布斯(Booth)乘法
2010-10-07 19:59 1169源自http://watashi.ws/blog/1515/z ... -
高斯消元
2010-10-07 14:18 833import java.util.*; import j ... -
Treap
2010-09-18 22:19 1003// Treap // Tested: bjtu1057 ... -
矩阵快速幂
2010-09-18 14:24 1070typedef LL matrix[55][55]; ... -
maximum clique 最大团
2010-09-02 18:12 1166最大团模板 #include <cstdio> ... -
计算Jacobi符号
2010-08-31 13:15 1332Quadratic reciprocity The Jacob ... -
Java 高效I/O
2010-08-19 16:54 806static BufferedReader cin = ... -
DLX pku 3076
2010-08-11 23:45 918标准数独,精确覆盖 // pku3076.cpp #in ... -
DLX hust 1017
2010-08-11 16:50 878“精确覆盖”问题 #include <cstdio& ... -
DLX hdu 3498
2010-08-11 16:48 1079“多重覆盖”或“重复覆盖”问题 #include < ... -
hdu 3509
2010-08-09 11:22 1024推导公式的题目,矩阵幂关键就在于构造系数矩阵 备忘: S(n, ... -
RMQ模板
2010-07-28 11:04 1217/* * Author: rush * Creat ...
相关推荐
### 整数划分算法解析与实现 #### 一、整数划分的概念 整数划分是组合数学中的一个重要概念,指的是将一个正整数表示为若干个正整数之和的不同方式的数量。例如,数字4可以被划分为1+1+1+1、1+1+2、1+3或4本身等几...
整数划分问题的实现代码 整数划分问题是将一个正整数 n 拆成一组数连加并等于 n 的形式,且这组数中的最大加数不大于 n。这是一种经典的组合数学问题,具有重要的理论价值和实践应用价值。 在解决整数划分问题时,...
整数划分问题是一个经典的计算机科学问题,主要涉及组合优化和图论领域。在数学上,它指的是给定一个正整数n,寻找所有可能的方法将其分成若干个正整数的和,每个正整数称为一个部分。每个不同的部分组合构成一个...
整数划分方法是计算机科学和算法设计中的一个重要概念,它涉及到如何将一个给定的正整数分成若干个正整数的和。在本场景中,我们关注的是“整数划分方法2”,这是一种递归解决方案,特别适用于解决循环游戏问题。 ...
整数划分是计算机科学中的一种经典算法问题,主要研究如何将一个正整数拆分成一组非负整数的和,且这些整数的和恰好等于原数。在本例中,我们关注的是最大加数不超过原数的整数划分。这个问题涉及到递归思想和数学...
整数划分是一个经典的数学问题,它涉及到将一个正整数N划分为若干个正整数的和,且每个部分可以是1到N之间的任意整数,但不允许重复。在计算机科学中,这个问题常用于算法设计和分析,尤其是在动态规划、递归以及...
整数划分方法1是一种在计算机科学和算法设计中常见的问题,它涉及到将一个给定的非负整数拆分为若干个正整数之和,这些正整数的和必须等于原始整数。这个问题通常用于解决各种数学问题,例如在游戏理论中的循环游戏...
整数划分是一个经典的数学问题,它在计算机科学和算法设计中有着广泛的应用。在这个问题中,目标是将一个正整数n分解为若干个正整数的和,这些正整数互不相同,且可以按任意顺序排列。VS2010是Microsoft Visual ...
### 整数划分的回溯法表示 #### 知识点概述 整数划分问题是一个经典的组合数学问题,指的是将一个正整数拆分成若干个正整数之和的方法数。例如,数字6可以被拆分为`6`, `5+1`, `4+2`, `4+1+1`, `3+3`, `3+2+1`, `3...
**整数划分问题** 整数划分是组合优化领域的一个经典问题,源于数学和计算机科学。在整数划分问题中,我们需要找到一个非负整数序列(可以为空),使得这些整数之和等于给定的正整数S,且序列中的每个元素都不相同...
### hutc-整数划分问题 参考代码 #### 整数划分问题概述 整数划分问题是一个经典的组合数学问题,其目标是将一个正整数拆分成若干个正整数之和的不同方式的数量。例如,整数4可以被划分为5种不同的方式:4、3+1、2...
整数划分问题是一个经典的计算机科学中的算法问题,它在数学和计算机科学的多个领域都有应用。在这个Java源码中,我们可以看到如何解决这个问题。中国科学技术大学软件学院的《算法设计与分析》课程通过这个实验,...
### 整数划分问题详解 #### 一、整数划分问题概述 整数划分问题是一个经典的组合数学问题,主要研究如何将一个正整数分解为若干个正整数之和的不同方式。这个问题不仅在数学领域有广泛的应用,在计算机科学、算法...
根据给定的信息,我们可以推断出这是一个与整数划分(Integer Partition)相关的算法问题。整数划分是指将一个正整数表示为多个正整数之和的方法,且这些加数的顺序不重要。例如,数字4可以被划分为4、3+1、2+2、2+1...
算法:整数划分问题,将一个整数n表示成一系列正整数之和。
整数划分是一个经典的数学问题,它涉及到将一个正整数N表示为若干个正整数之和,且每个正整数不重复。这个问题在计算机科学中有多种应用,比如在组合优化、图论以及数据结构等领域。C语言作为基础的编程语言,常常被...
整数划分在计算机科学中是一个经典的数学问题,特别是在算法设计和数据分析领域有着广泛的应用。它涉及到将一个给定的正整数N分解为若干个正整数的和,这些正整数可以是任意顺序,但不能重复。这个问题在C#编程语言...