
九度&天勤OJ
文章平均质量分 64
sjf0115
Stay Hungry, Stay Foolish---我们必须用谦虚者的自觉,饥饿者的渴望的求职态度,来拥抱我们的未来。
展开
-
最少硬币问题
/*日期:2011-10-21 作者:xiaosi 题目: 最少硬币问题*/问题描述: 设有n 种不同面值的硬币,各硬币的面值存于数组T〔1:n〕中。现要用这些面值的硬 币来找钱。可以使用的各种面值的硬币个数存于数组Coins〔1:n〕中。 对任意钱数0≤m≤20001,设计一个用最少硬币找钱m的方法。 ?编程任务: 对于给定的1≤n≤10,硬币面值数组T和原创 2011-10-21 21:34:20 · 1191 阅读 · 0 评论 -
最少重量机器设计问题
#include#define N 1000using namespace std;int n,m,d,cp=0,cw=0,sum=0;int c[N][N],w[N][N];void backtrack(int i){ if(i>n){ if(cw sum = cw; return ; }转载 2011-11-15 18:10:28 · 1045 阅读 · 0 评论 -
回溯法之子集和问题
/* 时间:2011-11-21 作者:xiaosi 题目:子集和问题*/#include#includeusing namespace std;#define M 100class SumOfSub{ friend void sumofsub(); private: void Backtrack(int t); int co原创 2011-11-21 15:34:09 · 6363 阅读 · 0 评论 -
回溯法之工作分配问题
#includeusing namespace std;int n,cost=0;int x[100],c[100][100];void work(int i,int count){ if(i>n && count<cost){ cost = count; return ; } if(count<cost) for(int j转载 2011-11-20 13:17:49 · 3064 阅读 · 0 评论 -
回溯法之最少重量机器设计问题
#include#includeusing namespace std;#define Z 100class MinMechine{ friend void Mechine(); private: void Backtrack(int t); int N; //部件个数 int M; //供应商个数 int原创 2011-11-15 18:09:29 · 4709 阅读 · 0 评论 -
回溯法之n皇后问题
/* 时间:2011-11-21 作者:xiaosi 题目:n皇后问题*/#include#include#includeusing namespace std;#define M 100class Queen{ friend void nQueen(); private: void Backtrack(int t); b原创 2011-11-21 22:11:19 · 1267 阅读 · 0 评论 -
P04: 混合三种背包问题
P04: 混合三种背包问题问题如果将P01、P02、P03混合起来。也就是说,有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包)。应该怎么求解呢?01背包与完全背包的混合考虑到在P01和P02中给出的伪代码只有一处不同,故如果只有两类物品:一类物品只能取一次,另一类物品可以取无限次,那么只需在对每个物品应用转移方程时,根据转载 2011-11-25 11:09:45 · 791 阅读 · 0 评论 -
P08: 泛化物品
P08: 泛化物品定义考虑这样一种物品,它并没有固定的费用和价值,而是它的价值随着你分配给它的费用而变化。这就是泛化物品的概念。更严格的定义之。在背包容量为V的背包问题中,泛化物品是一个定义域为0..V中的整数的函数h,当分配给它的费用为v时,能得到的价值就是h(v)。这个定义有一点点抽象,另一种理解是一个泛化物品就是一个数组h[0..V],给它费用v,可得到价值h[V]。一个转载 2011-11-25 11:14:23 · 865 阅读 · 0 评论 -
P11: 背包问题的搜索解法
P11: 背包问题的搜索解法《背包问题九讲》的本意是将背包问题作为动态规划问题中的一类进行讲解。但鉴于的确有一些背包问题只能用搜索来解,所以这里也对用搜索解背包问题做简单介绍。大部分以01背包为例,其它的应该可以触类旁通。简单的深搜对于01背包问题,简单的深搜的复杂度是O(2^N)。就是枚举出所有2^N种将物品放入背包的方案,然后找最优解。基本框架如下:procedure Sear转载 2011-11-25 11:15:30 · 1178 阅读 · 0 评论 -
P02: 完全背包问题
P02: 完全背包问题题目有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路这个问题非常类似于01背包问题,所 不同的是每种物品有无限件。也就是从每种物品的角度考虑,与它相关的策略已并非取或不取两种,而是有取0件、取1件、取2件……等很多种。如果仍然转载 2011-11-25 11:07:07 · 901 阅读 · 0 评论 -
P09: 背包问题问法的变化
P09: 背包问题问法的变化以上涉及的各种背包问题都是要求在背包容量(费用)的限制下求可以取到的最大价值,但背包问题还有很多种灵活的问法,在这里值得提一下。但是我认为,只要深入理解了求背包问题最大价值的方法,即使问法变化了,也是不难想出算法的。例如,求解最多可以放多少件物品或者最多可以装满多少背包的空间。这都可以根据具体问题利用前面的方程求出所有状态的值(f数组)之后得到。还有,如果要转载 2011-11-25 11:14:53 · 905 阅读 · 0 评论 -
P01: 01背包问题
P01: 01背包问题题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{f[i-1][v],f转载 2011-11-25 11:06:17 · 821 阅读 · 0 评论 -
P03: 多重背包问题
P03: 多重背包问题题目有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本算法这题目和完全背包问题很类似。基本的方程只需将完全背包问题的方程略微一改即可,因为对于第i种物品有n[i]+1种策略:取0件,取1件……取n[i]件。令f[i][v]表示前i种转载 2011-11-25 11:09:09 · 836 阅读 · 0 评论 -
P05: 二维费用的背包问题
P05: 二维费用的背包问题问题二维费用的背包问题是指:对于每件物品,具有两种不同的费用;选择这件物品必须同时付出这两种代价;对于每种代价都有 一个可付出的最大值(背包容量)。问怎样选择物品可以得到最大的价值。设这两种代价分别为代价1和代价2,第i件物品所需的两种代价分别为a[i]和 b[i]。两种代价可付出的最大值(两种背包容量)分别为V和U。物品的价值为w[i]。算法费用加了一转载 2011-11-25 11:10:21 · 888 阅读 · 0 评论 -
P06: 分组的背包问题
P06: 分组的背包问题问题有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。算法这个问题变成了每组物品有若干种策略:是选择本组的某一件,还是一件都不选。也就是说设f[k][v]表示前k组物品花费费用v能取得的最大权值,则有转载 2011-11-25 11:10:50 · 1112 阅读 · 0 评论 -
P07: 有依赖的背包问题
P07: 有依赖的背包问题简化的问题这种背包问题的物品间存在某种“依赖”的关系。也就是说,i依赖于j,表示若选物品i,则必须选物品j。为了简化起见,我们先设没有某个物品既依赖于别的物品,又被别的物品所依赖;另外,没有某件物品同时依赖多件物品。算法这个问题由NOIP2006金明的预算方案一题扩展而来。遵从该题的提法,将不依赖于别的物品的物品称为“主件”,依赖于某主件的物品称为“附件”转载 2011-11-25 11:13:54 · 754 阅读 · 0 评论 -
P10: USACO中的背包问题
附:USACO中的背包问题USACO是USA Computing Olympiad的简称,它组织了很多面向全球的计算机竞赛活动。USACO Trainng是一个很适合初学者的题库,我认为它的特色是题目质量高,循序渐进,还配有不错的课文和题目分析。其中关于背包问题的那篇课文 (TEXT Knapsack Problems) 也值得一看。另外,USACO Contest是USACO常年组织转载 2011-11-25 11:16:21 · 1076 阅读 · 0 评论 -
动态规划之最长公共子序列问题
由最长公共子序列问题的最优子结构性质建立子问题最优值的递归关系。 用c[i][j]记录序列X和Y的最长公共子序列的长度,其中, Xi={x1,x2,…,xi};Yj={y1,y2,…,yj}。当i=0或j=0时,空序列是Xi和Yj的最长公共子序列。故此时C[i][j]=0。其他情况下,由最优子结构性质可建立递归关系如下:void LCSLength( int m,int原创 2011-11-26 22:13:44 · 1515 阅读 · 1 评论 -
动态规划之最大子段和问题
问题描述:给定由n个整数(包含负整数)组成的序列a1,a2,...,an,求该序列子段和的最大值。当所有整数均为负值时定义其最大子段和为0。依此定义,所求的最优值为: 例如,当(a1,a2 , a3 , a4 , a5 ,a6)=(-2,11,-4,13,-5,-2)时,最大子段和为:11+(-4)+13 =201、最大子段和问题的简单算法:代码:#incl原创 2011-11-26 22:23:49 · 2805 阅读 · 1 评论 -
动态规划之最少硬币问题
/******************************************************************** ** @file test.cpp ** @author liuke ** @date Fri Apr 22 23:50:50 2011 ** @brief **************************动态规划实现****转载 2011-11-26 22:35:24 · 2385 阅读 · 0 评论 -
动态规划之编辑距离问题
题目描述:要求两字符串有差异的字符个数。例如: aaaaabaaaaa aaaaacaabaa 这两个字符串,最大公共字串长度是5,但它们只有两个字符不同,函数输出值应为2。 如果是: aaabbbcccddd aaaeeeddd 函数的输出值应该是6。 比较形象地形容一下,把两个字符串排成上下两行,每个字符串都可以在任何位置插入空格以便上下对齐,每个列上至转载 2011-11-26 22:53:44 · 1558 阅读 · 0 评论 -
九度1003 A+B
/********************************* * 日期:2012-6-23 * 作者:SJF0115 * 题号: 九度1003 * 题目:A+B * 结果:AC * 题意: * 总结:**********************************/#include#includeusing namespa原创 2012-06-23 20:15:37 · 2235 阅读 · 3 评论 -
九度1004
/********************************* * 日期:2012-6-23 * 作者:SJF0115 * 题号: 九度1004 * 题目:Median * 结果:AC * 题意: * 总结:**********************************/#include#includelong int N原创 2012-06-25 07:52:13 · 1736 阅读 · 1 评论 -
九度1002 Grading
/********************************* * 日期:2012-6-23 * 作者:SJF0115 * 题号: 九度1002 * 题目:Grading * 结果:AC * 题意: * 总结:**********************************/#include#includeint main(原创 2012-06-23 18:55:08 · 1875 阅读 · 0 评论 -
九度1001 A+B for Matrices
/********************************* * 日期:2012-6-23 * 作者:SJF0115 * 题号: 九度1001 * 题目:A+B for Matrices * 结果:AC * 题意: * 总结:**********************************/#includeint main(原创 2012-06-23 18:06:01 · 1993 阅读 · 0 评论 -
__INT64的用法
__INT64的用法(一)C中,int 和long的范围一样,只能表示(-2^31~2^31)整数,即(-20亿~20亿)unsignedint 与unsignedlong 范围是(0~2^32),40亿多一点。如果要表示更大一些的整数,这两种数据类型就不好用了,在ACM中经常要处理这样的数据类型,以前我的笨方法是做一个整形数组,每个a[i]存一位,这样加减乘除运算都要自己原创 2012-06-24 12:45:48 · 6128 阅读 · 0 评论 -
九度1010 A + B
/********************************* * 日期:2012-6-28 * 作者:SJF0115 * 题号: 九度1010 * 题目:A + B * 结果:AC * 题意: * 总结:**********************************/#include#include#includeus原创 2012-06-28 12:38:27 · 1942 阅读 · 0 评论 -
九度1015 还是A+B
/********************************* * 日期:2012-6-28 * 作者:SJF0115 * 题号: 九度1015 * 题目:还是A+B * 结果:AC * 题意: * 总结:**********************************/#include#include#includev原创 2012-06-28 13:15:24 · 1432 阅读 · 0 评论 -
九度1014 排名
/********************************* * 日期:2012-6-29 * 作者:SJF0115 * 题号: 九度1014 * 题目:排名 * 结果:AC * 题意: * 总结:**********************************/#include#include#includetype原创 2012-06-29 10:29:46 · 1392 阅读 · 0 评论 -
九度1013 开门人和关门人
/********************************* * 日期:2012-6-29 * 作者:SJF0115 * 题号: 九度1013 * 题目:开门人和关门人 * 结果:AC * 题意: * 总结:**********************************/#include#include#include原创 2012-06-29 11:20:47 · 1917 阅读 · 0 评论 -
九度1020 最小长方形
/********************************* * 日期:2012-6-30 * 作者:SJF0115 * 题号: 九度1020 * 题目:最小长方形 * 结果:AC * 题意: * 总结:**********************************/#include#include#includei原创 2012-06-30 23:41:38 · 1245 阅读 · 0 评论 -
九度1023 EXCEL排序
/********************************* * 日期:2012-7-1 * 作者:SJF0115 * 题号: 九度1023 * 题目:EXCEL排序 * 来源:http://ac.jobdu.com/problem.php?pid=1023 * 结果:AC * 题意: * 总结:**************原创 2012-07-01 11:17:27 · 2026 阅读 · 3 评论 -
九度1011 最大连续子序列
/********************************* * 日期:2012-6-30 * 作者:SJF0115 * 题号: 九度1011 * 题目:最大连续子序列 * 结果:AC * 题意: * 总结:**********************************/#include#include#include原创 2012-06-30 12:44:27 · 1422 阅读 · 0 评论 -
九度1018 统计同成绩学生人数
/********************************* * 日期:2012-6-30 * 作者:SJF0115 * 题号: 九度1018 * 题目:统计同成绩学生人数 * 结果:AC * 题意: * 总结:**********************************/#include#include#includ原创 2012-06-30 23:18:02 · 1127 阅读 · 0 评论 -
九度1021 统计字符
/********************************* * 日期:2012-6-30 * 作者:SJF0115 * 题号: 九度1021 * 题目:统计字符 * 结果:AC * 题意: * 总结:**********************************/#include #include using nam原创 2012-06-30 23:49:19 · 1354 阅读 · 0 评论 -
九度1046 求最大值
/********************************* * 日期:2013-1-9 * 作者:SJF0115 * 题号: 九度1046 * 题目:求最大值 * 来源:http://ac.jobdu.com/problem.php?pid=1046 * 结果:AC * 题意: * 总结: ********原创 2013-01-09 21:41:33 · 1093 阅读 · 0 评论 -
九度1031 xxx定律
/********************************* * 日期:2013-1-9 * 作者:SJF0115 * 题号: 九度1031 * 题目:xxx定律 * 来源:http://ac.jobdu.com/problem.php?pid=1031 * 结果:AC * 题意: * 总结: ********原创 2013-01-09 22:16:44 · 1116 阅读 · 0 评论 -
九度1020 最小长方形
/********************************* * 日期:2013-1-25 * 作者:SJF0115 * 题号: 九度1020 * 题目:最小长方形 * 来源:http://ac.jobdu.com/problem.php?pid=1020 * 结果:AC * 题意: * 总结:***************原创 2013-01-25 18:53:41 · 1605 阅读 · 0 评论 -
九度1057 众数
/********************************* * 日期:2013-1-26 * 作者:SJF0115 * 题号: 九度1057 * 题目:众数 * 来源:http://ac.jobdu.com/problem.php?pid=1057 * 结果:AC * 题意: * 总结:******************原创 2013-01-26 12:17:06 · 1445 阅读 · 0 评论 -
九度1051 数字阶梯求和
/********************************* * 日期:2013-1-26 * 作者:SJF0115 * 题号: 九度1051 * 题目:数字阶梯求和 * 来源:http://ac.jobdu.com/problem.php?pid=1051 * 结果:AC * 题意: * 总结:n位数相加用n+1位数组存储,原创 2013-01-26 20:16:11 · 2011 阅读 · 0 评论