p2866专题

P2866 [USACO06NOV] Bad Hair Day S

题目描述 农夫约翰有 𝑁 头奶牛正在过乱头发节。 每一头牛都站在同一排面朝右,它们被从左到右依次编号为 1,2,⋯ ,𝑁。编号为 𝑖 的牛身高为 ℎ𝑖。第 𝑁 头牛在最前面,而第 1 头牛在最后面。 对于第 𝑖 头牛前面的第 𝑗 头牛,如果 ℎ𝑖>ℎ𝑖+1,ℎ𝑖>ℎ𝑖+2,⋯ ,ℎ𝑖>ℎ𝑗​,那么认为第 𝑖i 头牛可以看到第 𝑖+1 到第 𝑗 头牛。 定义

JZOJ_7.17C组第一题 乱头发节/洛谷P2866 糟糕的一天Bad Hair Day

题意 给出n头牛的身高。它们都往右边看,只有high[i]>high[j]的情况下,i牛才能看到j牛的头发,如果i牛被挡住了,那么它就看不见后面的牛了。现在我们要求出每只牛可以看见的牛的头发的数量的总和。 思路 一个方向而且有大小限制,我们就可以想到使用单调栈。每次待入栈的牛的身高要和栈顶判断,弹到栈顶<待入栈的牛的身高,之后让答案累加上tot-1,tot代表栈的长度,因为栈里的前tot-1

【洛谷P2866】Bad Hair Day

单调栈版子 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 const int N=80010; 5 int n,a,top=0,zh[N]; 6 int read(){ 7 int sum=0; 8 char ch=getchar(); 9 while (ch<'0

题168.洛谷P2866 单调栈-Bad Hair Day S

文章目录 题168.洛谷P2866 单调栈-Bad Hair Day S一、题目二、题解 题168.洛谷P2866 单调栈-Bad Hair Day S 一、题目 二、题解 题目要你计算牛往右看,每头牛能看到牛顶的数目之和。依题意我们想,往又右看,也就是只要右边的牛都比当前牛严格矮,那么就能看到牛顶,如果碰到一个不满足这个条件的牛直接让当前牛话下一个,不用再