第二个样例输出有误还是发生了什么???
查看原帖
第二个样例输出有误还是发生了什么???
759274
Stevehim楼主2022/8/17 23:39

我的AC代码如下:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <string>
using namespace std;
int n, m;

int main() {
	cin >> m >> n;
	int a[m * n + 1];
	int John[n + 1];
	for (int i = 1; i <= n; i++) {
		cin >> John[i];
	}
	sort(John + 1, John + n + 1);
	int j = 1;
	for (int i = 1, aa = 1; i <= m * n; i++) {
		if (i == John[aa]) {
			aa++;
		} else {
			a[j] = i;
			j++;
		}
	}
//	for (int i = 1; i <= j - 1; i++) {
//		cout << a[i] << " ";
//	}
	int sum = 0;
	int node = 0;
	for (int i = n; i >= 1; i--) {
		int sum2 = 0;
		for (int b = 1 + (n - i); b <= j - 1; b++) {
//			cout << a[b] << "  " << John[i] << endl;
			if (a[b] < John[i]) {
				sum2++;
			} else {
				cout << sum;
				return 0;
			}
		}
		if (sum2 == j - 1 - (n - i)) {
			sum++;
		}
	}
	return 0;
}

按我的代码样例2会输出2,然后输出给了个四。。。 再然后,我找了最顶层的题解试了一下发现这篇题解的输出是4. 这是为什么。。。。。。。

2022/8/17 23:39
加载中...