您的位置:首页 > 产品设计 > UI/UE

UVa 1594(Ducci Sequence)

2016-07-15 20:09 495 查看
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <cctype>       ///里面涉及一些字符变化的函数
#include <string>
#include <queue>
#include <stack>
#include <map>          ///均为容器
#include <set>
#include <vector>
#include <sstream>

#define For(i,a) for(int i=0;i<a;++i)
#define MAX(x,y) ((x)>(y)?(x):(y))
#define MIN(x,y) ((x)<(y)?(x):(y))
#define ALL(x)   x.begin(),x.end()
#define INS(x)   inserter(x,x.begin())

using namespace std;
typedef long long ll            ;
typedef unsigned long long  ull ;

const int maxn=1000+10;
queue<int>pq;
int main()
{
int n;
cin>>n;
while(n--)
{
int m,a,k;
cin>>m;
for(int i=0;i<m;++i)
{
cin>>a;
pq.push(a);
}
for(k=0;k<maxn+10;++k)
{
int num[20];
int k=pq.size();
for(int i=0;i<k;++i)
{
num[i]=pq.front();
pq.pop();
}
for(int i=0;i<k-1;++i)
{
pq.push(fabs(num[i]-num[i+1]));
}
pq.push(fabs(num[0]-num[k-1]));
}
int sum=0;
while(!pq.empty())
{
sum+=pq.front();
pq.pop();
}
if(sum) cout<<"LOOP"<<endl;
else cout<<"ZERO"<<endl;

}
return 0;
}


这是一道简单的有关队列的运用题

怎么个简单法呢?

首先题意就是将前一个减去后一个的绝对值放入队列的末尾,然后最后一个呢是减去之前的第一个的绝对值。

由于数据比较小,中途定义了一个数组存n个数。

然后就是这样了,水题。

哈哈!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  UVa queue