ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#246 | #7. 「WyOJ Round 1」归 · 星穗垂野 | lgvc | 40 | 52ms | 9868kb | C++23 | 1.1kb | 2025-04-18 14:46:57 | 2025-04-18 18:01:37 |
answer
#include <bits/stdc++.h>
#define LL long long
int T,N,C,qq,a[200009],b[200009];
struct n_t{
int l,r,va;
} tp[10000009];
LL dp[10000009],s[200009];
bool cmp(n_t x,n_t y) {
if(x.r-x.l!=y.r-y.l) return x.r-x.l<y.r-y.l;
return x.l<y.l;
}
signed main(void) {
scanf("%d",&T);
while(T--) {
scanf("%d %d",&N,&C);
int w=0;
dp[0]=0;
for(int i=1;i<=N;i++) {
scanf("%d",&a[i]);
dp[i]=0;
}
for(int i=1;i<=N;i++) {
scanf("%d",&b[i]);
s[i]=s[i-1]+b[i];
}
int qq=0;
for(int i=1;i<=N;i++) {
int l=i,gg=0,la=-1;
for(int j=i;j<=N;j++) {
gg=std::__gcd(gg,a[j]);
if(gg<=j-i+1) {
if(la!=gg) {
tp[++qq]=(n_t){i,j,gg};
}
la=gg;
}
}
}
std::sort(tp+1,tp+qq+1,cmp);
tp[0]=(n_t){0,0,0};
for(int i=0;i<=qq;i++) dp[i]=0x3f3f3f3f3f3f3f3f;
LL ans=0x3f3f3f3f3f3f3f3f;
dp[0]=0;
for(int i=0;i<=qq;i++) {
if(i) ans=std::min(ans,dp[i]);
for(int j=i+1;j<=qq;j++) {
if(tp[i].r<tp[j].l&&tp[j].va>=tp[i].r-tp[i].l+1) {
dp[j]=std::min(dp[j],dp[i]+1ll*tp[j].va*(s[tp[j].r]-s[tp[j].l-1])+C);
}
}
}
printf("%lld\n",ans);
}
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 9ms
memory: 9868kb
input:
1000 10 -759451753 8 10 5 7 5 10 6 10 2 1 5 6 5 4 9 8 5 4 1 3 10 -953033990 4 10 10 8 8 2 1 7 4 1 0 ...
output:
-2278355214 -2859101918 -21349075 -1203387136 -1290642033 -851981042 -648655823 -1699966984 -1493814...
result:
ok 1000 numbers
Test #2:
score: 0
Time Limit Exceeded
input:
5 94253 6998801 88374 94432 21568 79110 3746 94223 86214 12083 54743 1622 16110 18595 18994 3665 547...
output:
result:
Test #3:
score: 10
Accepted
time: 0ms
memory: 7640kb
input:
5 120 -848255662 53358 95098 92852 36846 80052 83050 44071 22632 50005 52339 7339 38495 66618 6337 5...
output:
-11025209476 -3953017107 -5975377615 -2466586019 -5823678268
result:
ok 5 number(s): "-11025209476 -3953017107 -5975377615 -2466586019 -5823678268"
Test #4:
score: 10
Accepted
time: 5ms
memory: 9688kb
input:
5 100 -964452256 94167 36596 60051 82090 55625 56197 94589 29844 14929 68497 81714 90264 66283 96767...
output:
-7714370390 -19569375783 -554464800 -1059581333 -6827008162
result:
ok 5 number(s): "-7714370390 -19569375783 -554464800 -1059581333 -6827008162"
Test #5:
score: 10
Accepted
time: 38ms
memory: 9484kb
input:
5 984 -715414516 65632 15191 55392 53178 88695 20308 44882 16528 12986 81169 76880 2239 81264 13866 ...
output:
-72952473687 -64021627506 -700730085 -994178012 -1624804963
result:
ok 5 number(s): "-72952473687 -64021627506 -700730085 -994178012 -1624804963"
Test #6:
score: 0
Time Limit Exceeded
input:
5 83593 -175988991 46605 26358 5204 30137 41225 11710 75224 14130 56433 62524 29873 59483 22318 2619...
output:
result:
Test #7:
score: 0
Time Limit Exceeded
input:
5 96302 -451340376 2672 47391 49737 61648 38099 10679 28316 91168 97182 40556 20560 89630 45931 9187...
output:
result:
Test #8:
score: 0
Time Limit Exceeded
input:
5 82075 -915749780 41503 94470 21657 60519 10090 65640 80911 29436 63096 68715 79609 87499 26240 606...
output:
result:
Test #9:
score: 0
Time Limit Exceeded
input:
5 86206 -158351237 12910 53574 97622 75378 61116 40492 87106 60678 72614 2146 43673 15147 23123 7469...
output:
result:
Test #10:
score: 0
Time Limit Exceeded
input:
5 87683 -236086252 88768 76878 54808 98282 70961 83599 48353 34381 40413 95288 24241 74500 52966 994...