标签:
题解:
没想到是直接暴力求解。。。。。
使用前缀和加速
代码:
#include<bits/stdc++.h> #define ll long long using namespace std; const int maxn=1000100; int a[maxn],num[maxn]; int n,x; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&x); a[x]++; } for(int i=200000;i>=1;i--) num[i]=num[i+1]+a[i]; ll sum=0; for(int i=1;i<=200000;i++) { if(a[i]) { ll cnt=0; for(int j=i;j<=200000;j+=i) cnt+=(ll)(num[j]-num[j+i])*j; sum=max(sum,cnt); } } printf("%lld\n",sum); }
Codeforces Round #376 (Div. 2) F. Video Cards
标签:
原文地址:http://www.cnblogs.com/byene/p/5969344.html