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交换,错误点在没有想到要使用标记数组