From 7148637cb3007ca2ef8ca54cb1848ba1a593a613 Mon Sep 17 00:00:00 2001 From: Zengtudor Date: Wed, 22 Oct 2025 16:29:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0P11670=E9=A2=98?= =?UTF-8?q?=E7=9B=AE=E7=9A=84=E8=A7=A3=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加算法逻辑来计算题目要求的答案,包括输入处理和结果计算 --- src/10/22/P11670.cpp | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/10/22/P11670.cpp b/src/10/22/P11670.cpp index 4a18b2b..c04f529 100644 --- a/src/10/22/P11670.cpp +++ b/src/10/22/P11670.cpp @@ -1,11 +1,47 @@ +#include #include +#include #include #include +#include using ll = int64_t; - +ll n,ans; +std::vector> anumcnt; +std::vector a; int main(){ std::iostream::sync_with_stdio(false); std::cin.tie(nullptr); + + std::cin>>n; + + a.resize(n+1); + anumcnt.resize(n+1); + + for(ll i=1;i<=n;i++){ + std::cin>>a[i]; + anumcnt[a[i]].push_back(i); + } + for(ll i=1;i<=n;i++){ + ll b,nans=0; + std::cin>>b; + if(a[i]==b){ + ll N=i-1; + nans+=N*(N+1)/2; + N=n-i; + nans+=N*(N+1)/2; + // printf("a[%lld]==b[%lld], +=%lld\n",i,i,nans); + } + ans+=nans; + nans=0; + for(ll ai:anumcnt[b]){ + ll l=std::min(ai,i); + ll r=std::min(n-ai+1,n-i+1); + nans += std::min(l,r); + } + // printf("b[%lld] l to r +=%lld\n",i,nans); + ans+=nans; + } + std::cout<