2011年11月13日
摘要: HDU_3474 我们可以把C看成1,J看成-1,那么原问题就转化成了对于任意一种情况,如果序列从左往右加或者从右往左加,存在其一使得在加的过程中中间结果始终不为负数,那么这种断开的情况就是符合要求的。 我们不妨把环处理成两个相同的序列,并计算出其前缀和A[i],那么对于任意一种左端点为i,右端点为j的情况,如果min{A[k]}-A[i-1]>=0或者A[j]-max{A[k]}>=0,那么这种情况就是符合要求的,其中i-1<=k<=j,于是两个单调队列分别维护A[k]的最小值及最大值即可。#include<stdio.h>#include<stri 阅读全文
posted @ 2011-11-13 22:24 Staginner 阅读(224) 评论(0) 推荐(0) 编辑