建议加强数据(5e5 平方暴力最优解)
查看原帖
建议加强数据(5e5 平方暴力最优解)
498779
Transfixion_楼主2024/9/1 21:29

可以看到代码写的是优化后的平方暴力。

本来正着枚举 jj 80pts 就 T 最后一个点,抱着试一试的心态倒着枚举 jj 直接过了。。。

inline void solve() {
	read(n);
	memset(buc + 1, 0, sizeof(int) * n);
	memset(dp + 1, 0, sizeof(bool) * n);
	for(int i = 1; i <= n; i++) read(a[i]);
	for(int i = 1; i <= n; i++) pre[i] = buc[a[i]], buc[a[i]] = i;
	int ans = 0;
	for(int i = 1; i <= n; i++) {
		if(!pre[i]) { dp[i] = 1; continue; }
		if(dp[i] |= dp[pre[pre[i]]]) ;
		else for(int j = i - 1; j > pre[i]; j--) {
			if(pre[j] && (dp[i] |= dp[pre[j]])) break;
		}
		if(dp[pre[i]]) ans = i;
	}
	printf("%d\n", ans);
}

在 Luogu Subtask 用时计算制下跑的比我的正解还要快:暴力 25ms 正解 27ms。

2024/9/1 21:29
加载中...