1 条题解

  • 0
    @ 2025-12-2 17:24:20

    此题直接使用STL的stack模拟即可,但是有如下一些细节: 1、这题需要加速cin或者用scanf,同时栈内元素要用unsigned long long 2、每次需要清空stack,一个比较好的方法是直接用空的stack去swap

    stack<unsigned long long>().swap(save);
    

    代码如下:

    #include<bits/stdc++.h>
    
    using namespace std;
    
    stack<unsigned long long> save;
    int t,n;
    void solve(){
    	stack<unsigned long long>().swap(save);
    	cin>>n;
    	string opt;
    	for(int i=1;i<=n;i++){
    		cin>>opt;
    		if(opt=="push"){
    			unsigned long long x;cin>>x;
    			save.push(x);
    		}else if(opt=="pop"){
    			if(!save.empty())save.pop();
    			else cout<<"Empty"<<'\n';
    		}
    		else if(opt=="query"){
    			if(save.empty())cout<<"Anguei!";
    			else cout<<save.top();
    			cout<<'\n';
    		}else cout<<save.size()<<'\n';
    	}
    }
    
    int main()
    {
    	ios::sync_with_stdio(false);
    	cin>>t;
    	while(t--)solve();
    	return 0;
    }
    
    
    • 1

    信息

    ID
    5555
    时间
    1000ms
    内存
    512MiB
    难度
    3
    标签
    递交数
    214
    已通过
    25
    上传者