特点 数据规模大 并且每个元素有两个属性(变量) 能互相影响 对题目要求有两方面
分析方法 考虑两个元素 i j ,比较i-j顺序和j-i顺序的差距 求最优解
1)假设只有 2 头奶牛:
按照 1,2 顺序,损坏花朵的数量为: C12 = 2*cow[1].T * cow[2].D;
按照 2,1 顺序,损坏花朵的数量为: C21 = 2*cow[2].T * cow[1].D;
因此,如果 C12<=C21,则按 1,2 顺序优,否则 2,1 顺序优。
2)、假设只有 3 头牛
若 1 应最先被赶走,则需要满足:C12<=C21,C13<=C31
若 2 应最先被赶走,则需要满足:C21<=C12,C23<=C32
若 3 应最先被赶走,则需要满足:C31<=C13,C32<=C23
确定了最先被赶走的牛,则剩下的两头牛转换为 1)的分析(相同子问题)
故有比较函数(排序)
bool cmp(data x,data y)
{
int Cxy=2*x.t*y.d;
int Cyx=2*y.t*x.d;
return Cxy<Cyx;
}
再计算即可
#inc