C++ #include<stack> 用法
阿新 • • 發佈:2018-11-18
C++ #include 用法
c++ stl棧stack的標頭檔案為:
#include < stack >
stack< int > S;//宣告一個物件
S.empty();//棧空返回true 否則false
int x=S.size();//返回棧中元素個數於x
S.pop();//移除棧頂元素
S.push(x);將x置於棧頂
x=S.top();返回棧頂元素
其中51nod中 1289 大魚吃小魚題目用stack函式直接呼叫棧直接呼叫會比較方便。
而這道題,規定一個方向壓棧,然後與棧頂元素比較,如果大於棧頂元素則ans++,最後N-sum就是剩下的魚。
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<stack> using namespace std; int main(){ stack<int> s; int n; scanf("%d",&n); int ans=0; for(int i=0;i<n;i++) { int x,y; scanf("%d%d",&x,&y); if(y==1) s.push(x);//向右壓棧 if(y==0) { while(!s.empty()&&s.top()<x) { s.pop(); ans++; } if(!s.empty())ans++; } } printf("%d",n-ans); return 0; }