• PAT12-012【建最小堆】


    卧槽。。没看清 值 还有负的。。

    PS: 注意他说是一个一个插入的,也就是插在完全二叉树的最末位置,然后向上更新。

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    
    int a[1010];
    
    void BuildMinHeap(int n)
    {
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%d",&a[i]);
    		int j=i;
    		while(a[j]<a[j/2]&&j>1)
    		{
    			swap(a[j],a[j/2]);
    			j/=2;
    		}
    	}
    }
    
    int main()
    {
    	int x,y,len,k,n;
    	char s[110];
    	scanf("%d%d",&n,&k);
    	BuildMinHeap(n);
    	
    	while(k--)
    	{
    		int flag,ff=0;
    		scanf("%d",&x);
    		gets(s);
    		len=strlen(s);
    		y=0;
    		for(int i=0;i<len;i++)
    		{
    			if(s[i]=='-') ff=1;
    			if(i+1<len&&s[i]=='r'&&s[i+1]=='o') flag=1;
    			if(i+1<len&&s[i]=='s'&&s[i+1]=='i') flag=2;
    			if(i+1<len&&s[i]=='p'&&s[i+1]=='a') flag=3;
    			if(i+1<len&&s[i]=='c'&&s[i+1]=='h') flag=4;
    			if(s[i]>='0'&&s[i]<='9') y=y*10+s[i]-'0';
    		}
    		if(ff) y=-y;
    		if(flag==1)
    		{
    			if(x==a[1]) puts("T");
    			else puts("F");
    		}
    		else if(flag==2)
    		{
    			bool f=false;
    			for(int i=1;(2*i+1)<=n;i++)
    				if((a[2*i]==x&&a[2*i+1]==y)||(a[2*i]==y&&a[2*i+1]==x)) 
    					{puts("T");f=true;break;}
    			if(!f) puts("F");
    		}
    		else if(flag==3)
    		{
    			bool f=false;
    			for(int i=1;i<=n;i++)
    			{
    				if(a[i]==x)
    					if(2*i<=n&&a[2*i]==y){puts("T");f=true;break;}
    				if(a[i]==x)
    					if((2*i+1)<=n&&a[2*i+1]==y){puts("T");f=true;break;}
    			}
    			if(!f) puts("F");
    		}
    		else if(flag==4)
    		{
    			bool f=false;
    			for(int i=1;i<=n;i++)
    			{
    				if(a[i]==y)
    					if(2*i<=n&&a[2*i]==x){puts("T");f=true;break;}
    				if(a[i]==y)
    					if((2*i+1)<=n&&a[2*i+1]==x){puts("T");f=true;break;}
    			}
    			if(!f) puts("F");		
    		}
    	}
    	return 0;
    }
    


  • 相关阅读:
    SSM整合redis
    正则表达式验证
    175. 组合两个表
    SQL高级教程2
    SQL高级教程1
    数据可视化
    SQL基础
    SQL函数
    数据分析
    python数据分析-连接mysql
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/6777371.html
Copyright © 2020-2023  润新知