zoukankan      html  css  js  c++  java
  • [Luogu 1160] 队列安排

    Luogu 1160 队列安排

    <题目链接>


    链表H2O H2O H2O模板。

    太久不写链表,忘干净了,竟调了半个晚上。

    保留备用。

    #include <cstdio>
    #include <cstring>
    const int MAXN=100010;
    int n,m;
    class LinkedList
    {
    	public:
    		LinkedList(void)
    		{
    			memset(a,0,sizeof a);
    			memset(s,0,sizeof s);
    			a[1]=1,s[0].c[1]=cnt=1,s[cnt].v=1;
    		}
    		void Insert(int n,int x,bool flag)
    		{
    			int i=a[n],j=s[i].c[flag],p=a[x]=++cnt;
    			s[p].v=x,s[i].c[flag]=p,s[p].c[!flag]=i,s[p].c[flag]=j,s[j].c[!flag]=p;
    		}
    		void Delete(int x)
    		{
    			if(a[x])
    			{
    				int i=a[x],p=s[i].c[0],q=s[i].c[1];
    				a[x]=0,s[p].c[1]=q,s[q].c[0]=p;
    			}
    		}
    		void Print(void)
    		{
    			for(int i=s[0].c[1];i;i=s[i].c[1])
    				printf("%d ",s[i].v);
    			putchar('
    ');
    		}
    	private:
    		int cnt,a[MAXN];
    		struct node
    		{
    			int v,c[2];
    		}s[MAXN];
    }T;
    int main(int argc,char *argv[])
    {
    	scanf("%d",&n);
    	for(int i=2,k,p;i<=n;++i)
    	{
    		scanf("%d %d",&k,&p);
    		T.Insert(k,i,p);
    	}
    	scanf("%d",&m);
    	for(int i=1,x;i<=m;++i)
    	{
    		scanf("%d",&x);
    		T.Delete(x);
    	}
    	T.Print();
    	return 0;
    }
    

    谢谢阅读。

  • 相关阅读:
    JAVA 高级特性 JDBC
    C3P0 连接池
    JAVA WEB Servlet
    JAVAWEB JSP
    sed 命令
    shell 简单脚本编程
    从首页问答标题到问答详情页
    首页列表显示全部问答,完成问答详情页布局
    制作首页的显示列表
    发布功能完成
  • 原文地址:https://www.cnblogs.com/Capella/p/8270425.html
Copyright © 2011-2022 走看看