有一个二维数组A(m,6)
其中A(n,1)~A(n,6)的值,形式为:23,43,35,0,0,0 或
77,33,0,0,0,0 或
55,22,56,88,44,98 或
556,111,667,888,435,0 或
…………也就是说同一行中末几列数值可能为0,最多4个0,最少没有,前面至少2位都是正数,行数不限。还有一个一维数组B(f)
其中每一个值都大于A中任意数值
行数不限
现在给出另一个结构数组:
C(g)C的结构为
{
max //最大值
min //最小值
}max,min 都是正数,相差不大
要求:给出A,B, C, 要求在A中找出尽量少的几行,用B中任意数值减去其中的数值使符合C的范围,即以最少的行数满足C给出的全部范围。B,C中的行不能重复使用,即已经用来减去A中某一行的B行不能再次减另一行,C中已经满足的一组范围不要再次满足。列出所有可能。
然后得到相减结果最接近min值的那一组选择。可能说的不清楚,大家多帮忙。编写语言用vb ,c++,pb都可以。
其中A(n,1)~A(n,6)的值,形式为:23,43,35,0,0,0 或
77,33,0,0,0,0 或
55,22,56,88,44,98 或
556,111,667,888,435,0 或
…………也就是说同一行中末几列数值可能为0,最多4个0,最少没有,前面至少2位都是正数,行数不限。还有一个一维数组B(f)
其中每一个值都大于A中任意数值
行数不限
现在给出另一个结构数组:
C(g)C的结构为
{
max //最大值
min //最小值
}max,min 都是正数,相差不大
要求:给出A,B, C, 要求在A中找出尽量少的几行,用B中任意数值减去其中的数值使符合C的范围,即以最少的行数满足C给出的全部范围。B,C中的行不能重复使用,即已经用来减去A中某一行的B行不能再次减另一行,C中已经满足的一组范围不要再次满足。列出所有可能。
然后得到相减结果最接近min值的那一组选择。可能说的不清楚,大家多帮忙。编写语言用vb ,c++,pb都可以。
解决方案 »
- 在二个WORD中加入页脚页码,却只有一个WORD有,不知为什么?
- 喜得千金,左手再散300,出院后与以前一贴一起揭
- listview的finditem对搜索字符串长度的限制是多少??
- 怎么得到另一应用程序的高度与宽度?
- 请问:有谁知道袁飞打印控件3.0在WIN2000下如何使用自定义纸张
- OUTLOOK中用vba如何找到一特定的日历(AppointmentItem),Set myitem = objApp.Session.GetDefaultFolder(olFolderCalendar).Items.GetLast
- 如何在vb中通过程序获取计算机一系列硬件信息?
- VB 编程中如何使窗口右上角的关闭按钮(X)失效
- 如何绘制点线
- 哪位知道madc2.6在哪里能下到???
- 如何监视Word的打印份数
- 帮忙啊。VB如何从数据库里取出空格啊?
其中每一个值都大于A中任意数值
行数不限
看到这里我已经蒙了
1. C中每个元素的取值范围必须全部满足,如果最后任何组合都无法满足C中全部范围则提示错误;
2. 如果1可以满足则求出相减使用的B行数(即A行数)最少的组合方式。
随便写点数据A(5,6)
7.3,7.4,8.5,8.3,7.5,8.1
2.1,8.4,0 ,0 ,0 ,0
5.4,5.1,5.9,5.5,0 ,0
6.5,6.3,6.1,5.3,7.5,0
8.1,7.2,6.9,8.5,6.7,8.3B(8)
10.2
9.6
9.8
10.2
10.3
10.1
9.7
9.8C(7)
4.2~5.1
3.3~4.1
1.5~2
2.3~2.6
3~3.5
4.5~5
3.6~4.3用B中的某一个值,分别减去A中某一行的每一个值(0不算),得到的差值与C中范围作比较,如果至少有一个差值能满足C中的至少一个范围,则B的这个值和A的这一行暂定为可选,已被满足的C条件(1个或几个)被标记不再用来判断。然后在A,B剩下的行中依此尝试直到C中剩下的所有条件被满足。
显然有很多种排列组合方式。要求选出一种使用A行数最少同时C中所有范围能被差值满足的组合方式。
A 1 2 3 4 3 4 1 2
B 1.1 1.3 0.9 3.2 5.1 4.5 0.8 2.3 2.4 3.2 4.3 4.6 2.0 以A为标准从B中选出元素与之配对,要求: 0.5 >= (A-B) >=0 ,绝对值尽量小,并且A中所有元素都必须得到配对,否则给出提示。求最佳搭配方式。