BZOJ2800: [Poi2012]Leveling Ground
题目大意:给定n个数和a,b每次可以选择一段区间+a,-a,+b或-b,问最少操作几次能把他们都变成0
首先应该能想到差分,这样就相当于在n+1个数每次选两个数,一个+a一个-a(或b),最后把他们都变成0
首先我们对于每个差分之后的B[i]先用exgcd构造出一组用a,b表示的解,即a*x[i]+b*y[i]=B[i]
最后这个点的解一定形如X[i]=x[i]+k*b,Y[i]=y[i]-
原创
2016-07-02 09:55:38 ·
1186 阅读 ·
0 评论