QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#518644 | #4229. GCD Harmony | kng | TL | 0ms | 3852kb | C++17 | 1.2kb | 2024-08-13 23:34:05 | 2024-08-13 23:34:06 |
Judging History
answer
#include<bits/stdc++.h>
#define For(i,n) for(int i=1;i<=n;++i)
#define maxn 5005
#define fi first
#define se second
#define inf 2000000000
#define lnf 2000000000000000000
#define _ push_back
#define ll long long
#define II pair<int,int>
#define III pair<II,int>
#define ve vector<int>
#define task
using namespace std;
int d[maxn][105];
vector<int> adj[maxn];
int a[maxn];
int n;
void dfs(int u, int dad) {
for(int v:adj[u]) if(v!=dad) {
dfs(v,u);
}
for(int i=2;i<=2*n;++i) {
if(i!=a[u])
d[u][i]+=i;
for(int v:adj[u]) if(v!=dad) {
int kq=d[v][i];
for(int x=2;x<=2*n;++x) if(__gcd(x,i)>1) kq=min(kq,d[v][x]);
d[u][i]+=kq;
}
}
}
void inp(){
cin >> n;
For(i,n)
cin >> a[i];
for(int i=1;i<n;++i) {
int u, v;
cin >> u >> v;
adj[u]._(v);
adj[v]._(u);
}
}
void outp(){
dfs(1,0);
int ds=d[1][2];
int cmin=2;
for(int i=3;i<=2*n;++i) if(ds>d[1][i]) ds=d[1][i], cmin=i;
cout << ds;
}
int main(){
if(fopen(task".inp","r")) {
freopen(task".inp","r",stdin);
freopen(task".out","w",stdout);
}
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
inp();
outp();
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3796kb
input:
6 5 6 3 4 9 12 1 2 1 3 1 4 1 6 3 5
output:
6
result:
ok single line: '6'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3852kb
input:
3 1 2 3 3 1 2 3
output:
4
result:
ok single line: '4'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3816kb
input:
13 2 5 5 5 5 5 5 3 3 3 3 3 3 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13
output:
15
result:
ok single line: '15'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3736kb
input:
9 2 5 5 5 5 3 3 3 3 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9
output:
14
result:
ok single line: '14'
Test #5:
score: 0
Accepted
time: 0ms
memory: 3732kb
input:
8 13 13 13 2 13 13 13 13 1 2 1 3 1 4 1 5 1 6 1 7 1 8
output:
13
result:
ok single line: '13'
Test #6:
score: -100
Time Limit Exceeded
input:
5000 59 25 51 26 33 99 2 13 29 58 5 47 96 83 63 22 69 89 41 90 20 97 85 90 55 17 54 75 54 24 90 54 74 78 81 77 2 47 68 18 60 81 99 86 7 6 76 43 17 43 92 25 36 26 47 100 63 66 2 16 47 25 48 86 24 2 10 42 44 80 92 48 49 21 49 40 32 85 53 88 15 30 4 27 77 16 6 80 50 56 46 14 3 48 92 50 93 35 69 29 48 4...