码迷,mamicode.com
首页 > 其他好文 > 详细

P3952 时间复杂度

时间:2019-08-21 21:46:22      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:ace   --   技术   str   mda   ack   ima   图片   stack   

技术图片

技术图片

 

——————————————————————————————————————————————————

noip罕见的纯模拟题,细节还是很多的

虽然没有看题解,但也错了很多地方

1,Yes与YES

2,ERR与Err,这个真的毒瘤,一个全大写一个却不是

 3,ERR后向栈中添加元素防止RE

4,最后判断栈空、

————————————————————————————————————————-

#include<bits/stdc++.h>
using namespace std;
int t,lne,flg[500],num[500];
char ch[100];
stack<int>st,bl;
int main()
{
    cin>>t;
    while(t--)
    {
        memset(flg,0,sizeof(flg));
        memset(num,0,sizeof(num));
        while(!st.empty())st.pop();
        while(!bl.empty())bl.pop();
        int tag=0,lj=0,tab=0,nowtab=0;
        cin>>lne>>ch;
        if(lne%2!=0)lj=1;
        if(ch[2]-0!=1)for(int i=4;i<strlen(ch)-1;i++)tag=tag*10+ch[i]-0;
        while(lne--)
        {
            char a,b;
            int cc=0,dd=0;
            cin>>a;
            if(a==F){
                cin>>b;
                cin>>ch;
                if(ch[0]<=9&&ch[0]>=0)for(int i=0;i<strlen(ch);i++)cc=cc*10+ch[i]-0;
                cin>>ch;
                if(ch[0]<=9&&ch[0]>=0)for(int i=0;i<strlen(ch);i++)dd=dd*10+ch[i]-0;
                if(flg[b-0])lj=1;
                if(!cc&&!dd)st.push(0);
                if(!cc&&dd)st.push(-1);
                if(!dd&&cc)st.push(1);
                if(dd&&cc){
                    if(cc>dd)st.push(-1);
                    else st.push(0);
                }
                flg[b-0]=1;
                bl.push(b-0);
            }
            if(a==E){
                if(st.empty()){
                lj=1;for(int i=1;i<=100;i++)st.push(i),bl.push(i);    
                }
                int nc=st.top(),nb=bl.top(),val=num[nb];
                st.pop();
                bl.pop();
                flg[nb]=0;
                num[nb]=0;
                if(nc!=-1){
                if(st.empty())tab=max(tab,val+nc);    
                else num[bl.top()]=max(val+nc,num[bl.top()]);
                }
            }
        }
        if(!st.empty())lj=1;
        if(lj)cout<<"ERR";
        else {
            if(tab==tag)cout<<"Yes";
            else cout<<"No";
        }
        cout<<endl;
    }
}

 

P3952 时间复杂度

标签:ace   --   技术   str   mda   ack   ima   图片   stack   

原文地址:https://www.cnblogs.com/SFWR-YOU/p/11391259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!