5-2 UVA 1594 Ducci Sequence (Ducci序列)

来源:互联网 发布:javaweb报销系统源码 编辑:程序博客网 时间:2024/04/29 20:39

很简单的一道题,直接1Y,本来翘课被抓的失落心情,顿时好转一点点点点。。

题意就不说了,原文和紫书都讲的通俗易懂:

整体思路:

用两个Vector记录数列,第一个记录原始数据,第二个记录计算完成之后的数据,检查是不是都为0,不是0继续循环,直到1000次,保险点可以多加一点!总之不会超时:

#include<cmath>#include<cstdio>#include<vector>using namespace std;vector<int>seq,seq2;int judge(int n){    int time = 1001,flag;    while(time--){            flag = 0;    for (int i = 0; i < n - 1; ++i)        seq2.push_back(max(seq[i],seq[i+1]) - min(seq[i],seq[i+1]));    seq2.push_back(max(seq[n-1],seq[0]) - min(seq[n-1],seq[0]));    seq.clear();    for (int i = 0; i < seq2.size(); ++i){        if (seq2[i] != 0)flag = 1;        seq[i] = seq2[i];    }    seq2.clear();    if (!flag)return 1;    }    return 0;}int main(){    int T,n,k;    scanf("%d",&T);    while(T--){            seq.clear();            seq2.clear();        scanf("%d",&n);        for (int i = 0; i < n; ++i){            scanf("%d",&k);            seq.push_back(k);        }        if (judge(n))printf("ZERO\n");        else printf("LOOP\n");    }    return 0;}



0 0
原创粉丝点击