1641A - Great Sequence

首先,我们可以用 2101024 的复杂度暴搜,然后再来判断当前这种情况的结束时刻。

现在我们通过爆搜获得了一个长度为 1010 的由 01 组成的字符串。然后维护两个数组 abai维护的是 i 队在当前时刻进球数量之后最多进球的数量,bi 维护的是 i 队在当前时刻已经进球的数量,显然当有一队的当前进球数量比另外一队的预测数量还要多的时候结束。

代码:



#include <iostream>
using namespace std;
int n,ans = 11;
string s;
int stk[15],top = 0;
void dfs (int u) {
	if (u > top) {
		int a[2] = {5,5},b[2] = {0,0};
		for (int i = 1;i <= 10;i++) {
			int j = (i & 1);
			if (s[i] == '0') a[j]--;
			else b[j]++;
			if (b[j] > a[j ^ 1] || b[j ^ 1] > a[j]) {
				ans = min (ans,i);
				break;
			}
		}
		return ;
	}
	s[stk[u]] = '0';
	dfs (u+1);
	s[stk[u]] = '1';
	dfs (u+1);
}
int main () {
	cin >> n;
	while (n--) {
		ans = 10,top = 0;
		cin >> s;
		s = ' '+s;
		for (int i = 1;i <= 10;i++) {
			if (s[i] == '?') stk[++top] = i;
		}
		dfs (1);
		cout << ans << endl;
	}
	return 0;
}
posted @   incra  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示