- 王晨逸 的博客
7.17
- @ 2025-7-17 18:44:41
C. 倒立数对
#include<bits/stdc++.h>
using namespace std;
long long n,sum=0,f[110][110];
int main(){
freopen("number.in","r",stdin);
freopen("number.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++){
int a=i%10,b=i;
while(b/10>0){
b/=10;
}
if(a==b){
sum++;
}
sum+=f[a][b]*2;
f[b][a]++;
}
cout<<sum;
return 0;
}
使用f的一个二维数组来存储第二层循环的内容,因为第二维for会超时,sum加的时候需要乘二来代表a和b交换,错误点在没有想到要使用标记数组