尝试用前缀和的方法只得了40分,求助!!
查看原帖
尝试用前缀和的方法只得了40分,求助!!
105493
Mashiro_z楼主2024/7/11 22:43
#include<iostream>
using namespace std;
const long N = 1e4 + 5;
long a[N][N], ans[N][N];
int main() {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int n, m;
	cin >> n >> m;
	int z = 0, f = 0;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= m; j++) {
			a[i][j] = 1;
			ans[i][j] = ans[i][j - 1] + ans[i - 1][j] - ans[i - 1][j - 1] + a[i][j];
			for (int x = 1; x <= i; x++) {
				for (int y = 1; y <= j; y++) {
					bool md = 0;
					int p = ans[i][j] - ans[i][y - 1] - ans[x - 1][j] + ans[x - 1][y - 1];
					for (int t = 1, q = 1; t <= p; t = t + q * 2 + 1, q++) {
						if (p == t) {
							z++; 
							md = 1;
							break;
						}
					}
					if (md == 0)f++;
				}
			}
		}
	}
	cout << z << " " << f << '\n';
	return 0;
}

qwq,大佬帮我看看哪里算错了

2024/7/11 22:43
加载中...