UVA - 1594 Ducci Sequence
https://vjudge.net/problem/UVA-1594

set
#include<iostream>
#include<algorithm>
#include<set>
#include<vector>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
int n,x;
cin>>n;
vector<int> h;
set<vector<int>> q;
int f=0;
for(int i=0;i<n;i++) h.push_back(0);
q.insert(h);
for(int i=0;i<n;i++) cin>>h[i];
if(q.find(h)!=q.end())
f=1;
else
{
q.insert(h);
while(1)
{
int t=h[0];
for(int i=0;i<n-1;i++) h[i]=abs(h[i]-h[i+1]);
h[n-1]=abs(t-h[n-1]);
auto it=q.find(h);
if(it!=q.end())
{
if(it==q.begin()) f=1;
else f=0;
break;
}
q.insert(h);
}
}
if(f)
cout<<"ZERO\n";
else
cout<<"LOOP\n";
}
return 0;
}
循环
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
int n,x;
vector<int> h;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>x;
h.push_back(x);
}
int cnt=0;
while(cnt<=1000)
{
cnt++;
int t=h[0],f=0;
for(int i=0;i<n-1;i++)
{
h[i]=abs(h[i]-h[i+1]);
if(h[i]) f=1;
}
h[n-1]=abs(t-h[n-1]);
if(!f && !h[n-1]) break;
}
if(cnt<=1000)
cout<<"ZERO\n";
else
cout<<"LOOP\n";
}
return 0;
}
本文来自博客园,作者:斯文~,转载请注明原文链接:https://www.cnblogs.com/zhiweb/p/15483268.html

浙公网安备 33010602011771号