Related
In following contests:
No testdata at current.
区间覆盖模板题目,这道题和区间覆盖的区别在于区间固定,我们使用贪心去解决对应的问题。
对于地址i,假设地址小于i的都已经被覆盖,那么如果我们需要覆盖它,我们可以选择的基站位置在范围[i−R,i+R]内。假设现在存在两个基站x和y(y>x)都满足对应的要求,那么我们更偏向于选择y基站,因为y>x,这样y的基站可以比x基站覆盖更多后面的地址。
因此,我们对于每一个地址i,我们都要进行for j=min(N,i+R) to i−R+1,j−=1的循环(这里枚举到i−R+1,而不枚举到i−R的原因在于一旦选择i−R这个基站,那么肯定存在大于j的部分实数地址无法被覆盖),从min(N,i+R)开始找基站,一旦找到就调用对应的基站。调用基站j后,那么我们范围[j−R,j+R]的所有地址都会被覆盖,因此,下一次我们需要枚举的地址应该从j+R开始(不是j+R+1,因为我们需要保证所有实数地址被覆盖,而不是所有整数地址被覆盖)。
In following contests:
本题属于以下题库,请选择所需题库进行购买