update
This commit is contained in:
parent
2708eb8dab
commit
4848df60e5
@ -1,7 +1,54 @@
|
||||
#include<bits/stdc++.h>
|
||||
using namespace std;
|
||||
#define int long long
|
||||
|
||||
const int MAX_N = 2e8+5;
|
||||
int a[MAX_N];
|
||||
int n,amax=INT_MIN,ans=0;
|
||||
int readint();
|
||||
|
||||
int main(){
|
||||
|
||||
signed main(signed argc,char *argv[]){
|
||||
#ifdef OITEST
|
||||
#define AS_EQ(a,b){if((a)!=(b)){cerr<<"assert eq faild:"<<endl<<#a<<":"<<(a)<<endl<<#b<<":"<<(b)<<endl;exit(-1);}}
|
||||
#define AS_NE(a,b){if((a)==(b)){cerr<<"assert not eq faild:"<<endl<<#a<<":"<<(a)<<endl<<#b<<":"<<(b)<<endl;exit(-1);}}
|
||||
AS_EQ(argc,3)
|
||||
auto fin = freopen(argv[1],"r",stdin);
|
||||
AS_NE(fin,NULL)
|
||||
ifstream afile(argv[2]);
|
||||
AS_EQ(afile.is_open(),true);
|
||||
|
||||
#endif
|
||||
n=readint();
|
||||
for(int i=1;i<=n;i++){
|
||||
int input=readint();
|
||||
a[input]++;
|
||||
amax=max(amax,input);
|
||||
}
|
||||
for(int i=2;i<=amax;i++){
|
||||
int nans = 0;
|
||||
for(int j=1;(i*j)<=amax;j++){
|
||||
nans+=a[i*j]*i*j;
|
||||
}
|
||||
ans=max(ans,nans);
|
||||
}
|
||||
cout<<ans<<endl;
|
||||
#ifdef OITEST
|
||||
int cans;
|
||||
afile>>cans;
|
||||
AS_EQ(ans,cans)
|
||||
#endif
|
||||
}
|
||||
|
||||
int readint(){
|
||||
int x=0,w=1;
|
||||
char ch=0;
|
||||
while(!isdigit(ch)){
|
||||
if(ch=='-')w=-1;
|
||||
ch=getchar();
|
||||
}
|
||||
while(isdigit(ch)){
|
||||
x=x*10+(ch-'0');
|
||||
ch=getchar();
|
||||
}
|
||||
return x*w;
|
||||
}
|
@ -0,0 +1,98 @@
|
||||
# 因子
|
||||
|
||||
## 题目描述
|
||||
|
||||
今天是$ YQH $的生日,她得到了一个长度为$ n $的正整数序列$ a_1,a_2,\dots,a_n $作为生日礼物。
|
||||
|
||||
然而,$YQH $并不对这个序列满意,因为这个序列可能不合法。
|
||||
|
||||
具体地,一个序列合法,当且仅当存在一个大于$ 1 $的整数$ k$,使得序列里每个元素都是$ k $的倍数。
|
||||
|
||||
为了让$ YQH $满意,你需要找到一个$ a_1,a_2,\dots,a_n $的子序列,使得这个子序列是合法的。$b_1,b_2,\dots,b_m $称为$ a_1,a_2,\dots,a_n $的子序列当且仅当,你可以从$ a_1,a_2,\dots,a_n $删去若干个(可以是$ 0 $个)元素后得到$ b_1,b_2,\dots,b_m$。
|
||||
|
||||
符合条件的子序列可能很多,所以$ YQH $只想要你找到,总和最大的合法子序列的总和。注意,子序列可以取空集,且空集是合法的。
|
||||
|
||||
## 输入格式
|
||||
|
||||
第一行一个正整数$ n$。
|
||||
|
||||
接下来$ n $行,每行一个正整数。第$ i $行的数表示$ a_{i-1}$。
|
||||
|
||||
## 输出格式
|
||||
|
||||
输出一个整数表示答案。
|
||||
|
||||
## 样例 #1
|
||||
|
||||
### 样例输入 #1
|
||||
|
||||
```
|
||||
4
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
```
|
||||
|
||||
### 样例输出 #1
|
||||
|
||||
```
|
||||
0
|
||||
```
|
||||
|
||||
## 样例 #2
|
||||
|
||||
### 样例输入 #2
|
||||
|
||||
```
|
||||
6
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
```
|
||||
|
||||
### 样例输出 #2
|
||||
|
||||
```
|
||||
12
|
||||
```
|
||||
|
||||
## 样例 #3
|
||||
|
||||
### 样例输入 #3
|
||||
|
||||
```
|
||||
10
|
||||
28851
|
||||
8842
|
||||
9535
|
||||
2311
|
||||
25337
|
||||
26467
|
||||
12720
|
||||
10561
|
||||
8892
|
||||
6435
|
||||
```
|
||||
|
||||
### 样例输出 #3
|
||||
|
||||
```
|
||||
56898
|
||||
```
|
||||
|
||||
## 提示
|
||||
|
||||
| 子任务编号 | $n\le$ | $a_i\le $| 特殊限制 | 分值 |
|
||||
| :--------: | :--: | :----: | :------: | :--: |
|
||||
| 1 | $18 $ | $10^9 $ | 无 | 20 |
|
||||
| 2 | $1000$ | $10^5 $ | 无 | 20 |
|
||||
| 3 | $1000$| $10^9 $ | A | 20 |
|
||||
| 4 | $1000$ | $10^9$ | 无 | 40 |
|
||||
|
||||
特殊限制$A$:保证所有$ a_i $都是质数。
|
||||
|
||||
对于所有数据,保证$ 1\le n\le 1000,1\le a_i\le 10^91\le n\le 1000,1\le a_i\le 10^9$。
|
11
xmake.lua
11
xmake.lua
@ -3,6 +3,7 @@ if is_mode("debug")then
|
||||
add_defines("OIPRINT")
|
||||
end
|
||||
set_warnings("all")
|
||||
set_languages("c++17")
|
||||
|
||||
target("st_raw")
|
||||
set_kind("binary")
|
||||
@ -124,4 +125,12 @@ target("P3374")
|
||||
|
||||
target("P3608")
|
||||
set_rundir("./day11/P3608")
|
||||
add_files("./day11/P3608/*.cpp")
|
||||
add_files("./day11/P3608/*.cpp")
|
||||
|
||||
target("U466180")
|
||||
set_rundir("day12/U466180")
|
||||
add_files("day12/U466180/*.cpp")
|
||||
for v=1,5 do
|
||||
local s=tostring(v)
|
||||
add_tests(s,{files="day12/U466180/*.cpp",defines="OITEST",run_timeout=1000,runargs={"ex_divisor"..s..".in","ex_divisor"..s..".ans"}})
|
||||
end
|
Loading…
Reference in New Issue
Block a user