N^2 lj算法没有TLE但是只有70 不知道怎么回事
查看原帖
N^2 lj算法没有TLE但是只有70 不知道怎么回事
204606
Origami_Tobiichi楼主2020/7/8 19:33

如题,下了第6个点发现多了一种情况,这就很难受了,手玩没玩出来,静态查也查不出,不知道多在哪里 代码如下,求教

#include <iostream>
using namespace std;

int n, k, p;
int color[200009], price[200009], cortmp[59][200009], cnt[59], tmp;
bool ext = false;
unsigned long long ans;

int main() {
	cin >> n >> k >> p;
	for (int i = 1; i <= n; ++i) {
		cin >> color[i] >> price[i];
	}

	for (int i = 1; i <= n; ++i) {
		if (!cnt[color[i]]) cortmp[color[i]][++cnt[color[i]]] = i;	//记录位置
		else {
			cortmp[color[i]][++cnt[color[i]]] = i;
			for (int j = cnt[color[i]] - 1; j >= 1; --j) {
				for (int k = cortmp[color[i]][j]; k <= cortmp[color[i]][j + 1]; ++k) {	// 枚举位置
					if (price[k] <= p) {
						tmp = j;
						ext = true;	
						break;
					}
				}
				if (ext) {
					ext = !ext;
					break;
				}
			}
			ans += tmp;
		}
	}
	cout << ans;
	return 0;
}
2020/7/8 19:33
加载中...