记录编号 |
602360 |
评测结果 |
WWAAAAAWWTA |
题目名称 |
4162.兔子集团军 |
最终得分 |
55 |
用户昵称 |
梧叶已同秋雨去 |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
6.577 s |
提交时间 |
2025-07-03 17:26:54 |
内存使用 |
20.96 MiB |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,c[1000005],v[1000005],f[1000005];
long long b[1000005],e[100005];
long long fa[1000005],h[1000005],sum;
struct tree{
long long l,r,sum,d;
}t[1000005];
int main(){
freopen("RRR.in","r",stdin);
freopen("RRR.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++){
cin>>c[i];
b[c[i]]=i;
if(e[c[i]]==0){
e[c[i]]=i;
}
sum=max(sum,c[i]);
}
for(int i=1;i<=n;i++){
cin>>v[i];
}
for(int i=1;i<=n;i++){
cin>>f[i];
}int cnt=0;
for(int i=1;i<=n;i++){
t[c[i]].l=e[c[i]];
t[c[i]].r=b[c[i]];
}
for(int i=1;i<=n;i++){
if(t[cnt].r<e[c[i]]){
cnt=c[i];
//printf("%d %lld c[i]:%lld %lld cnt %lld %lld\n",i,c[i],t[c[i]].l,t[c[i]].r,t[cnt].l,t[cnt].r);
}
if(t[cnt].l<=i&&t[cnt].r>=i){
if(t[c[i]].l<t[cnt].l||t[cnt].r<t[c[i]].r){
t[cnt].l=min(t[c[i]].l,t[cnt].l);
t[cnt].r=max(t[cnt].r,t[c[i]].r);
t[c[i]].l=t[cnt].l;
t[c[i]].r=t[cnt].r;
//printf("%d %lld c[i]:%lld %lld cnt %lld %lld\n",i,c[i],t[c[i]].l,t[c[i]].r,t[cnt].l,t[cnt].r);
}
if(t[c[i]].l>t[cnt].l&&t[cnt].r>t[c[i]].r){
cnt=c[i];
//printf("%d %lld c[i]:%lld %lld cnt %lld %lld\n",i,c[i],t[c[i]].l,t[c[i]].r,t[cnt].l,t[cnt].r);
}
}
}
int yoyo=0;
for(int i=1;i<=n;i++){
if(t[h[yoyo]].r<i){
h[++yoyo]=c[i];
}
if(t[h[yoyo]].l<=i&&t[h[yoyo]].r>=i){
if(t[h[yoyo]].l<t[c[i]].l&&t[h[yoyo]].r>t[c[i]].r)
h[yoyo]=c[i];
if(t[h[yoyo]].l>t[c[i]].l&&t[h[yoyo]].r<t[c[i]].r){
t[h[yoyo]].l=t[c[i]].l;t[h[yoyo]].r=t[c[i]].r;
}
}
}
long long ans=9223372036854775807;n=sum;
for(int i=1;i<=yoyo;i++){
int xy=h[i];
for(int j=t[xy].l;j<=t[xy].r;j++){
t[xy].sum+=(v[j]*f[j-t[xy].l+1]*f[j-t[xy].l+1]);
}
//cout<<t[xy].l<<" "<<t[xy].r<<" "<<t[xy].sum<<"\n";
if(t[xy].sum){
ans=min(ans,t[xy].sum);
}
}
cout<<ans;
return 0;
}