主题:承担劳动量问题
LSQ
[专家分:220] 发布于 2006-05-21 12:03:00
根据世贸组织某项规定,现有甲、乙、丙三个国家和A、B、C三个不同的项目,每个国家只能承担一个项目,且一个项目只能由某一个国家承担。下表表示的是甲、乙、丙三个国家分别承担A、B、C三个项目所需的劳动量(X1、X2、X3、Y1、Y2、Y3、Z1、Z2、Z3均由键盘输入,且都小于10000,大于10)。请编程确定如何分配项目(甲、乙、丙三个国家分别承担什么项目),所需要的总劳动量最少,并求出最少劳动量的值。
A B C
甲 X1 X2 X3
乙 Y1 Y2 Y3
丙 Z1 Z2 Z3
回复列表 (共2个回复)
沙发
小小tqw [专家分:40] 发布于 2006-07-23 10:54:00
CLS
DIM A(3, 3)
PRINT "Now,you can input x1,x2...z3.(>10,<10000)"
FOR i = 1 TO 3
FOR j = 1 TO 3
PRINT "<"; i; ","; j; ">:";
DO
INPUT A(i, j)
LOOP UNTIL A(i, j) > 10 AND A(i, j) < 10000
NEXT j
NEXT i
MIN = 300001
FOR JIA = 1 TO 3
FOR YI = 1 TO 3
IF JIA <> YI THEN
BING = 6 - JIA - YI
S = A(1, JIA) + A(2, YI) + A(3, BING)
IF S < MIN THEN MIN = S: MIN1 = JIA: MIN2 = YI: MIN3 = BING
END IF
NEXT YI
NEXT JIA
PRINT "JIA:X"; MIN1; "YI:Y"; MIN2; "BING:Z"; MIN3
END
(本题采用穷举法)
板凳
小小tqw [专家分:40] 发布于 2006-07-23 11:00:00
接上条:
如不对,可以调试一下:
(变量作用)
min:存放工作量最小的和(一开始的30001是为后面的打擂台作基础)
s:临时存放总工作量
min1,min2,min3:存放最小和为min情况下的甲、乙、丙的承担任务
jia:甲承担的任务(循环变量)
yi:乙承担的任务(循环变量)
bing:丙承担的任务(循环变量)
我来回复