51Nod - 1289

题意:

中文题

思路:

模拟题

用一个栈来模拟,然后从左到右扫一遍,如果当前扫到的鱼方向是向右,就进栈,否则就依次与栈中的鱼比较,如果比栈顶元素大,则弹栈。

代码:

#include 
using namespace std;
const int MAXN = 1e5 + 10;int w[MAXN], d[MAXN];int main() {//freopen("in.txt", "r", stdin);int n;cin >> n;for (int i = 1; i <= n; i++) {scanf("%d%d", &w[i], &d[i]);}stack  sta;int ans = 0;for (int i = 1; i <= n; i++) {if (d[i] == 1) sta.push(i);else {while (!sta.empty() && w[sta.top()] < w[i]) sta.pop();if (sta.empty() || w[sta.top()] == w[i]) ++ans;}}printf("%d\n", sta.size() + ans);return 0;
}



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部