UVa 1594 - Ducci Sequence(模拟)

来源:互联网 发布:c 并发编程指南 pdf 编辑:程序博客网 时间:2024/06/06 08:26

给出Ducci序列定义,输入一个序列,判断它会变成0还是循环。循环次数仅为1000,序列长度最大为15。

就按照给出条件模拟就好,不需要担心超时,可以用来练习STL的使用。

#include<iostream>#include<cstdlib>#include<vector>using namespace std;const int maxn=1010;vector<int>a;int t,n;bool is_zero(){    int p,q=0;    for(int i=0;i<maxn;i++)    {        q=0;        p=a[0];        for(int j=0;j<n-1;j++)        {            a[j]=abs(a[j]-a[j+1]);            if(!a[j])                q++;        }        a[n-1]=abs(a[n-1]-p);        if(!a[n-1])            q++;        if(q==n)            return true;    }    return false;}int main(){    int x;    cin>>t;    while(t--)    {        cin>>n;        for(int i=0;i<n;i++)        {            cin>>x;            a.push_back(x);        }        if(is_zero())            cout<<"ZERO"<<endl;        else            cout<<"LOOP"<<endl;        a.clear();    }    return 0;}


0 0
原创粉丝点击