(File IO): Eingang: camphor.in Ausgang: camphor.out
Zeitlimit: 1000 ms Platzbeschränkungen: 131072 KB spezifische Beschränkungen
Goto ProblemSet
Titel Beschreibung
Kampferholz bekannt als einer der vier berühmten Jiangnan sehr einzigartig, seine rauen Rinde, die Textur ist sehr gleichmäßig, nie gespalten fleckige Stelle von Pappel, Weide Knötchen Tumor nicht, ein Unterzweig Stamm zwei, zwei in vier langen Weg zu gehen, werden nicht geschnitten Ecken nicht überflüssig sein; Kronenform sphärisch ist , und den eleganten Bogen am Himmel ziehen. Zusätzlich zu den oben genannten Vorteilen hat Kampferbaum eine Geheimwaffe. Das heißt ........................ Mit seinem einfachen, schweren gutem Charakter , die Gunst eines kleinen Fuchses zu gewinnen! ! ! Zu sagen , dass ein Tag ein kleiner See Fuchs geht, ganz plötzlich Windstoß weht, eilte sie die Augen zu schließen. Als sie öffnete die Augen wieder und fand schönen See mehr aus einer ordentlichen Reihe von Kampfer. Kleiner Fuchs ist sehr aufgeregt, sie von jedem Baum, und die Anzahl der Anzahl der Blätter aufmerksam ist. Sie fühlte , dass , wenn die Anzahl der Blätter von zwei Bäumen neben prime zu schrill. So wird ein kleiner Fuchs wie Zeile aus der Vielzahl von Kampferbäumen ausgewählt, unter den Bedingungen , die Anzahl benachbarter Blätter der zwei Bäume erfüllen , ist coprime nicht, so dass der Baum so viel wie möglich.
Geben Sie
die erste Linie eine positive ganze Zahl
, ausgedrückt
Kampferbäume. Die zweite Zeile
eine positive ganze Zahl, die
die Zahl i stehtdie Anzahl der Blätter der Kampferbäume.
Ausgabe
eine positive ganze Zahl angibt , wie viele Bäume die Wahl auf.
Probeneingabe
. 6
. 6. 8 15 5 2 3
Beispielausgabe
4
Datenbereichsgrenzen
für
% -Angaben
Für
% der Daten
, die Anzahl der Blätter
Anmerkung: ihre Position nicht ändern kann,heißt die gewählte Baum, wenn das erste ausgewählte
Baum, wobei
betrachtet
与
Nachbar.
Tipp
Selection
,die erste
, erster
Summe zuerst
Baum
Ideen zur Problemlösung
können wir nicht finden , dass dies eine der längsten Drop - Sequenz! ! ! Wir werden nur Bedingungen
in
ist der größte gemeinsame Teiler größer als eins, aber nur
Punkte. . InTat können wir
‚s
geändert
, wird es nichtZeit, aber fragen Sie mich nichtwarum. .
gehen von ~
Code
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
int a[100010],n,f[100010],ans;
int check(int x,int y)
{
if(x%y==0)
return y;
else
return check(y,x%y);
}
int log(int x){
int t=0;
while(x>0)
{
x=x/2;
t++;
}
return t;
}
int main(){
freopen("camphor.in","r",stdin);
freopen("camphor.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
f[i]=1;
}
for(int i=2;i<=n;i++)
{
for(int j=i-log(i)*2;j<=i-1;j++)
if (j>0)
if(check(a[i],a[j])>1)
f[i]=max(f[i],f[j]+1);
}
for(int i=1;i<=n;i++)
if(f[i]>ans)
ans=f[i];
printf("%d",ans);
}