题目描述
blablabla
样例
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1010;
int dg[N*2][N], udg[N*2][N];
int a[N][N];
int ans;
int main(){
int n, m;
cin >> n >> m;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
int t;
cin >> t;
dg[i+j][t] ++;
udg[j-i+1000][t]++;
}
}
for(int i = 0; i <= n+m+1; i++){
for(int j = 1; j <= 1000; j++){
if(dg[i][j] == 1 || dg[i][j] == 0) continue;
int tmp = 0;
for(int k = 1; k < dg[i][j]; k++){
tmp += k;
}
ans += tmp*2;
// cout << j << " " << dg[i][j] << "!\n";
}
}
for(int i = 0; i <= 2004; i++){
for(int j = 1; j <= 1000; j++){
if(udg[i][j] == 1 || udg[i][j] == 0) continue;
int tmp = 0;
for(int k = 1; k < udg[i][j]; k++){
tmp += k;
}
ans += tmp*2;
// cout << j << " " << udg[i][j] << "?\n";
}
}
cout << ans << "\n";
return 0;
}
算法1
(暴力枚举) O(n2)
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) O(n2)
blablabla
时间复杂度
参考文献
C++ 代码
blablabla