mirror of
https://gitcode.com/Zengtudor/alg2025.git
synced 2025-10-25 17:42:46 +00:00
feat: 实现P11670题目的解法
添加算法逻辑来计算题目要求的答案,包括输入处理和结果计算
This commit is contained in:
parent
40fbda7ec8
commit
7148637cb3
@ -1,11 +1,47 @@
|
||||
#include <algorithm>
|
||||
#include <cstdint>
|
||||
#include <cstdio>
|
||||
#include <iostream>
|
||||
#include <istream>
|
||||
#include <vector>
|
||||
using ll = int64_t;
|
||||
|
||||
|
||||
ll n,ans;
|
||||
std::vector<std::vector<ll>> anumcnt;
|
||||
std::vector<ll> 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<<ans<<"\n";
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user