zoukankan      html  css  js  c++  java
  • 2015 HUAS Summer Training#1 B

    题目:

    A Ducci sequence is a sequence of n-tuples of integers. Given an n-tuple of integers (a1a2, ... an), the next n-tuple in the sequence is formed by taking the absolute differences of neighboring integers:

                                                                            ( a1a2... an$displaystyle 
ightarrow$ (| a1 - a2|,| a2 - a3|, ... ,| an - a1|)

    Ducci sequences either reach a tuple of zeros or fall into a periodic loop. For example, the 4-tuple sequence starting with 8,11,2,7 takes 5 steps to reach the zeros tuple:

    (8, 11, 2, 7) $displaystyle 
ightarrow$ (3, 9, 5, 1) $displaystyle 
ightarrow$ (6, 4, 4, 2) $displaystyle 
ightarrow$ (2, 0, 2, 4) $displaystyle 
ightarrow$ (2, 2, 2, 2) $displaystyle 
ightarrow$ (0, 0, 0, 0). 

    The 5-tuple sequence starting with 4,2,0,2,0 enters a loop after 2 steps:

    (4, 2, 0, 2, 0) $displaystyle 
ightarrow$ (2, 2, 2, 2, 4) $displaystyle 
ightarrow$ ( 0, 0, 0, 2, 2$displaystyle 
ightarrow$ (0, 0, 2, 0, 2) $displaystyle 
ightarrow$ (0, 2, 2, 2, 2) $displaystyle 
ightarrow$ (2, 0, 0, 0, 2) $displaystyle 
ightarrow$
    (2, 0, 0, 2, 0) $displaystyle 
ightarrow$ (2, 0, 2, 2, 2) $displaystyle 
ightarrow$ (2, 2, 0, 0, 0) $displaystyle 
ightarrow$ (0, 2, 0, 0, 2) $displaystyle 
ightarrow$ (2, 2, 0, 2, 2) $displaystyle 
ightarrow$ (0, 2, 2, 0, 0) $displaystyle 
ightarrow$
    (2, 0, 2, 0, 0) $displaystyle 
ightarrow$ (2, 2, 2, 0, 2) $displaystyle 
ightarrow$ (0, 0, 2, 2, 0) $displaystyle 
ightarrow$ (0, 2, 0, 2, 0) $displaystyle 
ightarrow$ (2, 2, 2, 2, 0) $displaystyle 
ightarrow$ ( 0, 0, 0, 2, 2$displaystyle 
ightarrow$ ...

    Given an n-tuple of integers, write a program to decide if the sequence is reaching to a zeros tuple or a periodic loop.

     Input 

    Your program is to read the input from standard input. The input consists of T test cases. The number of test cases T is given in the first line of the input. Each test case starts with a line containing an integer n(3$ le$n$ le$15), which represents the size of a tuple in the Ducci sequences. In the following line, n integers are given which represents the n-tuple of integers. The range of integers are from 0 to 1,000. You may assume that the maximum number of steps of a Ducci sequence reaching zeros tuple or making a loop does not exceed 1,000.

     Output 

    Your program is to write to standard output. Print exactly one line for each test case. Print `LOOP' if the Ducci sequence falls into a periodic loop, print `ZERO' if the Ducci sequence reaches to a zeros tuple.

    The following shows sample input and output for four test cases.

    题目大意:给你N个数,用( a1a2... an$displaystyle 
ightarrow$ (| a1 - a2|,| a2 - a3|, ... ,| an - a1|)在1000次计算里找它的是否循环 是输出LOOP 否输出ZERO;

    解题思路:用vector数组存储这些数  在进行比较;

    代码:

     1 #include<iostream>
     2 #include<math.h>
     3 #include<vector>
     4 using namespace std;
     5 const  int l=1000+10;
     6 
     7 int main()
     8 {
     9     vector<int> a[l];
    10     vector<int> b;
    11     int    T,n,i,t,j,d,p;
    12     cin>>T;
    13     while(T--)
    14     {
    15         cin>>n;
    16         if(n>=3&&n<=15)
    17         {
    18             d=0;
    19             b.resize(n);
    20             for(i=0;i<l;i++)
    21                 a[i].resize(n);
    22             for( i=0;i<n;i++)
    23             {
    24                 scanf("%d",&a[0][i]);
    25                 b[i]=0;
    26                 if(a[0][i]<0||a[0][i]>1000)
    27                     scanf("%d",&a[0][i]);
    28             }
    29             for(i=0;i<1000;i++) 
    30             {
    31                 t=a[i][0];
    32                 for(j=0;j<n;j++) 
    33                 {        
    34                     if(j==(n-1))
    35                         a[i+1][j]=abs(a[i][n-1]-t); 
    36                     else 
    37                         a[i+1][j]=abs(a[i][j]-a[i][j+1]);
    38                 }
    39                 if(a[i+1]==b)
    40                 {
    41                     printf("ZERO
    ");
    42                     d=i;
    43                     break;
    44                 }
    45             }
    46             if(d==0)
    47                 printf("LOOP
    ");        
    48         }                
    49     }
    50     return 0;

     

  • 相关阅读:
    SIP穿越NAT SIP穿越防火墙-SBC
    安卓SAX解析XML文件
    C#进阶系列——WebApi 异常处理解决方案
    C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
    C#进阶系列——WebApi 接口参数不再困惑:传参详解
    C#进阶系列——WebApi 身份认证解决方案:Basic基础认证
    C#进阶系列——WebApi 跨域问题解决方案:CORS
    C#进阶系列——WebApi 接口测试工具:WebApiTestClient
    微信公众平台向特定用户推送消息
    JSONP跨域的原理解析
  • 原文地址:https://www.cnblogs.com/huaxiangdehenji/p/4655645.html
Copyright © 2011-2022 走看看