题解:P11201 [JOIG 2024 Open] たくさんの数字 / Many Digits
除了搬题人之外的首 A,来纪念一下。
Solution P11201
Idea
我们先对
不难发现:对于
不难发现对于每一个
具体实现起来,可以用 lower_bound
快速解决。
讲一下下面代码里的 lpos
和 now
为什么可行:你会发现对于
Code
#include<bits/stdc++.h>
using namespace std;
const int N=150005;
int n,a[N],b[N];
const int mi10[10]={0,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};
long long ans;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
for(int i=1;i<=n;i++)scanf("%d",&b[i]);
sort(b+1,b+n+1);
for(int i=1,lpos,now;i<=n;i++){
lpos=n+1;
for(int j=9;j>=0;j--){
now=lower_bound(b+1,b+n+1,mi10[j]-a[i])-b;
ans=ans+1ll*(lpos-now)*(j+1);
lpos=now;
}
}
printf("%lld",ans);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】