06 2011 档案
摘要:装配一辆汽车,有两条装配线分别有n个装配点,每条装配线在进出所花时间为e[i],x[i] (i=0,1),每个装配点所需时间a[i][j](i=0,1;j=0,1,...,n-1),从一条装配线i的第j个装配点到另一条装配线的第j+1个装配点所需时间t[i][j]。对于图来说(截至《算法导论》)::S1,1 处所需时间 = e1 + a1,1;S1,j(2<=j<=n)处所需时间min {到S1,j-1 所需时间 + a1,j, 到S2,j-1 所需时间 + t2,j-1 + a1,j};出口处所需时间 min {到S1,n所需时间 + x1, 到S2,n所需时间 + x2}。于是
        阅读全文
                
摘要:sizeof 返回一个对象或类型名的字节长度。注意几点:1、一个string的大小与它所指的字符串的长度无关;2、应用在指针类型上的sizeof操作符返回的是包含该类型地址所需的内存长度;3、应用在引用类型上的sizeof操作符返回的是包含被引用对象所需的内存长度。int *pi = new int[13];cout << "pi:\t" << sizeof(pi) << endl;cout << "*pi:\t" << sizeof(*pi) << endl;string st1(
        阅读全文
                
摘要:给出一个矩阵链,A1A2...An。求最小的相乘运算次数。如:n*k 的 Ai 和 k*m 的A(i+1),则相乘运算次数为n*k*m。给AiA(i+1)...A加括号(1≤i≤j≤n),求最小代价,用m[i][j]来记录Ai...Aj最小的矩阵乘法运算次数,那么A1...An的最优解就是m[1][n]。当只有一个矩阵时,m[i][i] = 0 (i = 1,2...,n);当多个矩阵时,即 i<j,通过加括号来构造子结构。在Ak处把一个矩阵链划分成两个链,即Ai...Aj划分成Ai...Ak, A(k+1)...Aj(i≤k<j)。Ai...kA(k+1)...j的乘法运算次数就是p[
        阅读全文
                
摘要:今天终于把0-1背包搞懂了,随笔记下。关于0-1背包问题的算法,资料上写得再详细不过了。阐述下问题:有n种物品,每种只有一个。第i种物品的体积为Vi,重量为Wi。选一些物品装到一个容量为C的背包,使得背包内物品在总体积不超过C的前提下重量尽可能大。1≤n≤100,1≤Vi≤C≤10000,1≤Wi≤10^6。推导出状态转移方程:f[i][j] = max(f[i-1][j], f[i-1][j-Vi]+Wi)f[i][j] 表示在放好第 i 个物品,总占用背包体积大小为 j 时,可装下最大质量 f[i][j]。如果对于 f[i][j] 和 f[i-1][j-Vi] 的关系不是很清楚,那可以想成
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号