首页 > 其他分享 >Codeforces Round 671 (Div. 2) A. Digit Game

Codeforces Round 671 (Div. 2) A. Digit Game

时间:2023-10-14 16:23:01浏览次数:24  
标签:Digit 标记 int win 位置 Codeforces 671 偶数 奇数

\(R\) 和 \(B\) 在玩一个数字游戏,给一个含有 \(n\) 位的正整数 \(x\) 。俩人轮流操作, \(R\) 先行动。

在每一步中,\(R\) 可以选择 \(x\) 中一个未被标记的奇数位置并标记,\(B\) 可以选择 \(x\) 中一个未被标记的偶数位置并标记。

当最后只剩下一个未被标记的位置时,让这个数为 \(m\) 。如果 \(m\) 是奇数,则 \(R\) \(win\) ,否则 \(B\) \(win\) 。假设两人都会以最优策略进行游戏。

显然当 \(n\) 为偶数,最后将留下一个偶数位置未标记。于是 \(B\) 可以决定 \(m\) 在哪个位置。若所有偶数位置中存在偶数数字,则 \(B\ win\) ,否则 \(R\ win\) 。

否则最后将留下一个奇数位置未标记。于是 \(R\) 可以决定 \(m\) 在哪个位置。若所有奇数位置中存在奇数数字,则 \(R\ win\) ,否则 \(B\ win\) 。

view
#include <bits/stdc++.h>
typedef long long ll;
void solve(){
	int n; std::cin >> n;
	std::string s;std::cin >> s;s = " " + s;
	if (~n & 1) {
		int ok = 0; for (int i = 2; i <= n; i += 2) if (~(s[i] - '0') & 1) ok = 1;
		std::cout << (ok ? 2 : 1) << '\n';
	}
	else {
		int ok = 0; for (int i = 1; i <= n; i += 2) if ((s[i] - '0') & 1) ok = 1;
		std::cout << (ok ? 1 : 2) << '\n';
	}
}
int main() {
	int _ = 1; std::cin >> _;
	while (_--) {solve();}
	return 0;
}

标签:Digit,标记,int,win,位置,Codeforces,671,偶数,奇数
From: https://www.cnblogs.com/zsxuan/p/17764311.html

相关文章

  • Codeforces Round 748 (Div. 3) B. Make it Divisible by 25
    给一个正整数\(n\),在一步操作中可以移除\(n\)中的一个。当\(n\)只剩下一位时将不能再操作,如果过程中产生了前导\(0\),则会被自动移除且不耗费操作次数。询问最少需要多少次操作可以使得\(n\)被\(25\)整除。显然一个正整数\(x\)若可以被\(25\)整除,只需要考虑最后......
  • Educational Codeforces Round 116 (Rated for Div. 2) A. AB Balance
    给一个长为\(n\)的字符串\(s\),只包含\(0\)\(1\)两种字符。定义\(AB(s)\)是\(s\)中出现的\(01\)子串个数,\(BA(s)\)是\(s\)中出现的\(10\)子串个数。在一步操作中,可以选择一个字符进行异或。询问最小的操作次数使得\(AB(s)=BA(s)\)。显然连续的\(11\)或连......
  • Codeforces Round 903 (Div. 3) E. Block Sequence(DP)
    CodeforcesRound903(Div.3)E.BlockSequence思路:设dp[i]为当i~n为完美的最少删除次数dp[n]=1,dp[n+1]=0;从后至前对于dp[i]更新若直接删除当前点,则为dp[i+1]+1若不删除则为min(dp[i+a[i]+1],dp[i]);i+a[i]+1为a[i]不能覆盖的位置#defineintlonglong#define......
  • Codeforces Round 903 (Div. 3)
    D题被hack了哭了第一题简单的只用把字符串重复的同时尝试匹配,然后判断就好了,只是需要一点代码能力第二题,也很简单最多剪断3次,就先从小到大排序,然后用最小的,看看大的是他的几倍,如果不是几倍的关系就不可能完成,如果是就算要几次就好了第三题,也很简单,很明显,对于一个格子,在它旋转9......
  • Codeforces Round 674 (Div. 3) B. Symmetric Matrix
    有\(n\)块\(2\times2\)的瓷砖,瓷砖上的每个方格包含一个数字,每种瓷砖都有无数种。现在需要用所给瓷砖构造一个\(m\timesm\)的方形矩阵\(a\)满足:每块瓷砖都在方形矩阵内瓷砖之间不能存在覆盖\(a_{i,j}=a_{j,i}\)。输出是否存在这种构造。一:显然合法的\(m\)......
  • Codeforces Round 903 (Div. 3)
    D.DivideandEqualize思路:1.某个数除以x,某个数再乘以x,可发现数组总的乘积没有变化2.也就是说,要使数组中的每一个元素相同,它们总的质因子应该满足:某个质因子的数量%n==0E.BlockSequence简单的dpdp[i],表示删除这个数字后的最小删除次数可以正的枚举,也可以倒着来转移方程......
  • Codeforces Global Round 11 A. Avoiding Zero
    给一个大小为\(n\)的数组\(a_1,a_2,\cdots,a_n\)。你需要构造一个大小为\(n\)的数组\(b\)且满足以下条件:数组\(b\)是数组\(a\)的冲排列对于\(\forallk=1,2,\cdots,n\),\(\sum_{i=1}^{k}b_i\neq0\)。输出任意一组构造,或者回答不可能。若\(\sum_{i......
  • Educational Codeforces Round 96 (Rated for Div. 2) A. Number of Apartments
    有三种建筑:三室厅、五室厅、七室厅。每个房间严格有一扇窗户。现在有\(n\)扇窗户,询问完全用完这些窗户的情况下,\(3,5,7\)室厅各有多少间。输出任意一种答案,或者回答不可能。假设一定有解,显然可以选择\(mod\)任意一个数贪心,不妨选最小的\(3\)。假设答案为\(a,b,c\):......
  • Codeforces Round 677 (Div. 3) C. Dominant Piranha
    有\(n\)只水虎鱼在水族馆,大小为\(a_1,a_2,\cdots,a_n\)。一只水虎鱼被称为是主导的,当它可以吃掉水族馆中其他所有水虎鱼。其他水虎鱼不会有任何行动。一只水虎鱼只可以吃掉当前与它相邻并且体型严格比它小的水虎鱼。当大小为\(x\)的水虎鱼吃掉大小为\(y\)的水虎鱼时,......
  • Codeforces 512D. Fox And Travelling 题解
    FoxAndTravelling题面翻译给定一张\(n\)个点\(m\)条边的无向图。一个点只有当与它直接相连的点中最多只有一个点未被选择过时才可被选择。询问对于每个\(k\in[0,n]\),有序选择\(k\)个点的方案数。\(n\le100\),\(m\le\frac{n(n-1)}2\),答案对\(10^9+9\)取模。......