qu (판정 조작 시퀀스) NOIP 시 뮬 레이 션 데이터 구조 판단 시 뮬 레이 션
[입력 형식] 첫 줄 은 정수 입 니까?대표 조작 수.다음?그래, 줄 마다 두 개의 정수?????하면, 만약, 만약...1. 우 리 를 대표 하 는 것 은?데이터 구조 추가;하면, 만약, 만약...2. 우리 가 데이터 구조 에서 원 소 를 꺼 냈 다 는 뜻 입 니 다. 이 요소 의 값 은?
[출력 형식] 출력 세 줄, 첫 번 째 줄 은 데이터 구조 가 스 택 일 수 있 는 지, 두 번 째 줄 은 데이터 구조 가 대기 열 일 수 있 는 지, 세 번 째 줄 은 데이터 구조 가 큰 루트 로 쌓 일 수 있 는 지 를 나타 낸다.모든 줄 의 결 과 는 'YES' 나' No '일 수 있다.
제목 에 따라 세 가지 데이터 구 조 를 구축 합 니 다. 대기 열, 우선 대기 열 (본질 은 큰 뿌리 더미) 과 스 택 을 만 든 다음 에 시 뮬 레이 션 하면 됩 니 다.
구덩이 에 두 개가 있다.
하 나 는 데이터 가 모두 팝 업 된 후에 팝 업 작업 이 있 으 면 임의의 데이터 구 조 를 만족 시 키 지 못 할 것 입 니 다. 세 가 지 는 모두 No 입 니 다.
두 번 째, 제목 의 YES 는 모두 대문자 이지 만 No 의 o 는 소문 자 입 니 다.
코드 를 첨부 하 다
#include
#include
using namespace std;
template<class T> inline void read(T &_a){
bool f=0;int _ch=getchar();_a=0;
while(_ch<'0' || _ch>'9'){if(_ch=='-')f=1;_ch=getchar();}
while(_ch>='0' && _ch<='9'){_a=(_a<<1)+(_a<<3)+_ch-'0';_ch=getchar();}
if(f)_a=-_a;
}
int n,opt,v,stack[10001],head;
bool ansq=true,anspq=true,ansstk=true;
queue<int>q;
priority_queue<int>pq;
int main()
{
freopen("qu.in","r",stdin);
freopen("qu.out","w",stdout);
read(n);
for (register int i=1;i<=n;++i)
{
read(opt); read(v);
if(opt==1)
{
if(ansq) q.push(v);
if(ansstk) stack[++head]=v;
if(anspq) pq.push(v);
} else {
if(ansstk)
{
if(head&&stack[head]==v) --head;
else ansstk=false;
}
if(ansq)
{
if(!q.empty()&&q.front()==v) q.pop();
else ansq=false;
}
if(anspq)
{
if(!pq.empty()&&pq.top()==v) pq.pop();
else anspq=false;
}
}
}
printf("%s
%s
%s",ansstk?"YES":"No",ansq?"YES":"No",anspq?"YES":"No");
return 0;
}
다음으로 전송:https://www.cnblogs.com/jaywang/p/7755945.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.