CF_91B】的更多相关文章

题目意思是这样的:给定n个整数,求第i个数右边的距离它最远的比它小的数的下标之差然后再减1. 这里既然是需要知道距离该数最远的下标,可以从右至左扫描一遍,然后按照单调递减的顺序入栈,即只把比栈顶元素小的整数入栈,等于或大于对于后面的数查找比自己小的值没什么意义.然后遇到比栈顶元素大,而又比不大于栈底元素的情况二分搜索就可以了. #include<stdio.h> #define N 100010 int a[N],ans[N],stack[N]; int main(void) { ; scan…