UVa1594 - Ducci Sequence (暴力搜尋 Brute force)

題目大意:

給你一個隊列,每一次計算後生成新的隊列,隊列規則如下:

[a1,a1, ...., an]
更新為:
[|a1-an|, |a1-a2|, ...., |an-1-an|]

最多不生成超過1000個隊列

分析:

暴力、枚舉,唯一信仰

每一次生成隊列後,總計它的序列,要是為 0 輸出 “ZERO” ,不是的話,輸出 “LOOP”

複雜度最多 o(1000) 很安全

備註:

這位大神的網站寫得很棒,要是看不懂可以看她的

http://glj8989332.blogspot.com/2019/12/uva-1594-ducci-sequence.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <bits/stdc++.h>
#define LOCAL


using namespace std;

int main()
{
#ifdef LOCAL
freopen("in1.txt" , "r" , stdin );
#endif // LOCAL

int intCase , n , intTemp , intNum[25] , isFlag , intSum ;
cin >> intCase ;
while(intCase--){
cin >> n ;
for(int i = 0 ; i < n ; i++)
cin >> intNum[i] ;

isFlag = 0 ;

for(int i = 0 ; i < 1010 ; i++){
intSum = 0 ;
intNum[n] = intNum[0] ;
for(int j = 0 ; j < n ; j++ )
intNum[j] = abs(intNum[j] - intNum[j+1]) ;

for(int i = 0 ; i < n ; i++){
//debug
//cout << intNum[i] << ' ' ;

intSum += intNum[i] ;
}

//debug
//cout << '\n' ;

if(!intSum){
isFlag = 1 ;
break ;
}

}
if(isFlag)
cout << "ZERO" << '\n' ;
else
cout << "LOOP" << '\n' ;
}

return 0;
}
  • 版權聲明: 本部落格所有文章除有特別聲明外,均採用 Apache License 2.0 許可協議。轉載請註明出處!
  • © 2020-2024 John Doe
  • Powered by Hexo Theme Ayer
  • PV: UV: