基本上问题是有一系列山峰点,我们只能从一个山峰点移动到下一个更高的山峰点。请参见下面的图像以了解情况。
在上面的图片中,黑色点是山顶,每个山顶都有一些香料和一些味道价值。我们可以从一个山顶移动到另一个山顶品尝其中的香料。
请参见下面的图像以了解有效的移动方式。绿色线条表示有效的移动。
现在,我们将得到一个查询,其中包含2个整数b和c,对于每个查询,我们需要找出是否可以从b山点移动到c山点。如果可以,我们就必须输出旅程的总美味程度。
假设有一个查询,其中b = 1,c = 10。
因此,我们需要找出是否可能从山1到山10移动,如果是,则输出旅程的美味程度。
如果查询很少,问题就很简单,因为对于每个查询,我们只需在循环中迭代并找出是否可以从1到10到达,如果可以,我们将对味道进行求和。
对于这个特定的问题,我们的路径将是1->2->6->7->9->10。
但如果出现查询,例如b=1,c=11。
因此,我们无法从1到11,因此没有路径可行,答案为-1。
但是当有非常大的查询时,我们可以为每个查询迭代循环。我的意思是,我们必须预处理数据,以便在每个查询中我们只需在恒定时间内计算结果。
我特别想知道什么?
如何在恒定时间内知道是否可以从b到c达到。
如果路径可行,则如何在恒定时间内计算路径总和。
请参见下面的图像以了解有效的移动方式。绿色线条表示有效的移动。
现在,我们将得到一个查询,其中包含2个整数b和c,对于每个查询,我们需要找出是否可以从b山点移动到c山点。如果可以,我们就必须输出旅程的总美味程度。
假设有一个查询,其中b = 1,c = 10。
因此,我们需要找出是否可能从山1到山10移动,如果是,则输出旅程的美味程度。
如果查询很少,问题就很简单,因为对于每个查询,我们只需在循环中迭代并找出是否可以从1到10到达,如果可以,我们将对味道进行求和。
对于这个特定的问题,我们的路径将是1->2->6->7->9->10。
但如果出现查询,例如b=1,c=11。
因此,我们无法从1到11,因此没有路径可行,答案为-1。
但是当有非常大的查询时,我们可以为每个查询迭代循环。我的意思是,我们必须预处理数据,以便在每个查询中我们只需在恒定时间内计算结果。
我特别想知道什么?
如何在恒定时间内知道是否可以从b到c达到。
如果路径可行,则如何在恒定时间内计算路径总和。