mirror of
https://gitcode.com/Zengtudor/alg2025.git
synced 2026-02-03 17:27:18 +00:00
feat: 添加P1559.cpp和P9978.cpp的初始代码实现
P1559.cpp包含一个空的主函数框架 P9978.cpp实现了一个涉及数组处理和计算的算法
This commit is contained in:
parent
5a9d1efd5d
commit
a43a4849c6
3
src/11/17/P1559.cpp
Normal file
3
src/11/17/P1559.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
int main(){
|
||||||
|
|
||||||
|
}
|
||||||
55
src/11/17/P9978.cpp
Normal file
55
src/11/17/P9978.cpp
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
#include <algorithm>
|
||||||
|
#include <cstdint>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <iostream>
|
||||||
|
#include <istream>
|
||||||
|
#include <set>
|
||||||
|
#include <unordered_map>
|
||||||
|
#include <vector>
|
||||||
|
using ll = int64_t;
|
||||||
|
|
||||||
|
ll n,k,ans;
|
||||||
|
std::vector<ll> ap,bp,cnt;
|
||||||
|
std::unordered_map<ll, ll> ans1,ans2;
|
||||||
|
std::set<ll> vis;
|
||||||
|
#define printf
|
||||||
|
int main(){
|
||||||
|
std::iostream::sync_with_stdio(false);
|
||||||
|
std::cin.tie(nullptr);
|
||||||
|
|
||||||
|
std::cin>>n>>k;
|
||||||
|
ap.resize(n+1),bp.resize(n+1),cnt.resize(n+1);
|
||||||
|
for(ll i=1;i<=k;i++){
|
||||||
|
ll tmp;
|
||||||
|
std::cin>>tmp;
|
||||||
|
ap[tmp]=i;
|
||||||
|
cnt[tmp]++;
|
||||||
|
vis.emplace(tmp);
|
||||||
|
}
|
||||||
|
for(ll i=1;i<=k;i++){
|
||||||
|
ll tmp;
|
||||||
|
std::cin>>tmp;
|
||||||
|
cnt[tmp]++;
|
||||||
|
bp[tmp]=i;
|
||||||
|
if(cnt[tmp]==2){
|
||||||
|
printf("cnt[%lld]=%lld\n",tmp,cnt[tmp]);
|
||||||
|
ll diff=ap[tmp]-bp[tmp];
|
||||||
|
if(diff<0)diff+=k;
|
||||||
|
printf("diffa=%lld\n",diff);
|
||||||
|
ans1[diff]++;
|
||||||
|
ans=std::max({ans1[diff],ans});
|
||||||
|
|
||||||
|
diff=ap[tmp]-(k-bp[tmp]+1);
|
||||||
|
if (diff<0) {
|
||||||
|
diff+=k;
|
||||||
|
}
|
||||||
|
printf("diffb=%lld\n",diff);
|
||||||
|
ans2[diff]++;
|
||||||
|
ans=std::max({ans2[diff],ans});
|
||||||
|
}
|
||||||
|
vis.emplace(tmp);
|
||||||
|
}
|
||||||
|
printf("ans=%lld, vis.size()=%lld\n",ans,vis.size());
|
||||||
|
std::cout<<n-vis.size()+ans<<"\n";
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user