Стеки и очереди [] [] Резюме Упражнения

zoj3210

Идеи: Это название отражает характеристики стека и очереди хороший стек является последним из, очереди FIFO.

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int t,n;
int a[110],b[110];
bool isque,isstk;
int main()
{
	freopen("in.txt","r",stdin);
	cin>>t;
	while(t--)
	{
		isque=true;
		isstk=true;
		cin>>n;
		for(int i=0;i<n;++i)
			cin>>a[i];
		for(int i=0;i<n;++i)
			cin>>b[i];
		for(int i=0;i<n;++i)
		{
			if(a[i]!=b[i])isque=false;
			if(a[i]!=b[n-i-1])isstk=false;
		}
		if(isque&&isstk)cout<<"both\n";
		else if(isque&&!isstk)cout<<"queue\n";
		else if(!isque&&isstk)cout<<"stack\n";
		else cout<<"neither\n";


	}
	return 0;
}

uva10954

Идеи: проблемы Хаффмана алгоритма воды, с приоритетной очередью, сохранение элементов, каждый элемент первой команды из, так как элементы по возрастанию // больше <Int>, поэтому минимален. Хаффмана алгоритм представляет собой бинарное дерево, поэтому он может использовать очередь, чувствовать и широкий поиск расширения узла несколько похоже.

#include <iostream>
#include <queue>
using namespace std;

int main()
{
    int n,x;
    while(cin>>n&&n)
    {
        priority_queue<int,vector<int>,greater<int> >q;
        for(int i=0;i<n;++i){cin>>x;q.push(x);}
        int ans=0;
        for(int i=0;i<n-1;++i)
        {
            int a=q.top();q.pop();
            int b=q.top();q.pop();
            ans+=(a+b);
            q.push(a+b);
        }
        cout<<ans<<endl;
    }
    return 0;
}

HDU1896

Практика использования очереди приоритетов.

#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
struct stone
{
	int p,d;
	bool operator <(const stone &a)const
	{
		if(p==a.p)return d>a.d;
		else return p>a.p;
	}
};
int t,n;
int main()
{
	freopen("in.txt","r",stdin);
	cin>>t;
	while(t--)
	{
		cin>>n;
		stone x;
		priority_queue<stone>q;
		for(int i=0;i<n;++i)
		{
			cin>>x.p>>x.d;
			q.push(x);
		}
		bool flag=true;
		while(!q.empty())
		{
			x=q.top();
			q.pop();
			if(flag)
			{
				x.p+=x.d;
				q.push(x);
			}
			flag=!flag;
		}
		cout<<x.p<<endl;
	}
	return 0;
}

 

Опубликовано 22 оригинальные статьи · вона похвала 3 · Просмотров 1836

рекомендация

отblog.csdn.net/qq_42825058/article/details/86942103