[BZOJ4488][JSOI2015] 최대 공약수 DP+STL
#include
#include
#include
#include
#define ll long long
#define chkmax(a,b) a=max(a,b)
#define chkmin(a,b) a=min(a,b)
using namespace std;
typedef mapint > mpli;
int n;
ll a[100010],ans;
mpli mp,tmp;
mpli::iterator it;
ll gcd(ll a,ll b)
{
if(aif(!b) return a;
else return gcd(b,a%b);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%lld",&a[i]);
for(int i=1;i<=n;i++)
{
chkmax(ans,a[i]);
for(it=mp.begin();it!=mp.end();it++)
{
ll g=gcd(a[i],it->first);
chkmax(ans,g*(i-it->second+1));
if(tmp.count(g)==0) tmp[g]=it->second;
else chkmin(tmp[g],it->second);
}
if(tmp.count(a[i])==0) tmp[a[i]]=i;
mp=tmp;
tmp.clear();
}
printf("%lld",ans);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【경쟁 프로 전형적인 90문】008의 해설(python)의 해설 기사입니다. 해설의 이미지를 봐도 모르는 (이해력이 부족한) 것이 많이 있었으므로, 나중에 다시 풀었을 때에 확인할 수 있도록 정리했습니다. ※순차적으로, 모든 문제의 해설 기사를 들어갈 예정입니다. 문자열...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.