跪求如何拯救TLE,90分,我太菜了

P2866 [USACO06NOV] Bad Hair Day S

用栈做应该就不会TLE了吧
by ewenakioi @ 2020-01-16 11:57:32


@[死海绵宝宝](/user/257009) 你这个做法最差是$O(n^2)$的复杂度,对$n=80000$这么大数肯定会TLE,这题的思路是如果遇到一个比较大的数,那么排在它左边的所有小数都可以扔掉,他们不会对答案再有所贡献,但每一个比它大的数会使得答案+1,我们需要把比它大的数(包括它自己)储存起来,是不是想到栈这个数据结构了? 这个方法的时间复杂度是$O(n)$,肯定不会TLE了。
by nju181840342 @ 2021-08-12 09:27:38


cin前加上ios::sync_with_stdio(false);就可以了。
by jiangwei_0807 @ 2022-08-22 19:28:34


用一手快读
by Andy_Li @ 2022-10-05 14:27:49


模拟居然能90分(惊),还是用栈吧,写起来也简单 不会写栈看这里: ```c stack <int> a;//定义栈 ...... while(!a.empty()&&a.top()<=t) a.pop();//如果栈为空且比这头牛矮,出栈 ...... a.push(t);//最后入栈 ```
by cxzhyf @ 2023-05-29 19:39:17


|