关于 S T2
查看原帖
关于 S T2
857626
_RainCappuccino_楼主2024/11/4 21:33

这是对于 n <= 20 的特判,但是这部分分全 WA

	if (n <= 20 && m <= 20) {
		int j = 1, suc = 0, tot = 0;
		for (int i = 0; i < (1 << n); i ++) s[i] = cnt[i] = 0;
		for (int i = 1; i <= n; i ++) {
			bool flag = 0;
			for (int j = 1; j <= m; j ++) {
				if(p[j] >= d[i] && getv(v[i], p[j] - d[i], a[i]) > 1ll * V * V) s[1 << j - 1] |= (1 << i - 1), flag = 1;
			}
			if(flag) suc += (1 << i - 1), tot ++;
		}
		int ans = m;
		for (int i = 0; i < (1 << m); i ++) {
			s[i] = s[i - (i & -i)] | s[i & -i];
			if(i != 0) cnt[i] = cnt[i - (i & -i)] + 1;
			if(s[i] == suc) ans = min(ans, cnt[i]);
		}
		cout << tot << ' ' << m - ans << endl;
	}
2024/11/4 21:33
加载中...