Educational Codeforces Round 90 (Rated for Div. 2) B. 01 Game(字符串博弈)
2024-09-06 05:21:02
题目链接:https://codeforces.com/contest/1373/problem/B
题意
给出一个二进制串 $s$,Alica 和 Bob 每次可以选择移去 $s$ 中的一个 $10$ 或 $01$,无法选择者视为输掉游戏,判断最终谁会胜利。($1 \le t \le 1000, 1 \le |s| \le 100$)
题解一
$s$ 范围较小,$O_{(n^2)}$ 模拟。
代码
#include <bits/stdc++.h>
using namespace std; void solve() {
string s; cin >> s;
int cnt = 0;
while (1) {
bool flag = false;
for (int i = 0; i + 1 < s.size(); i++) {
if (s[i] != s[i + 1]) {
s = s.substr(0, i) + s.substr(i + 2);
++cnt;
flag = true;
}
}
if (!flag) break;
}
cout << (cnt & 1 ? "DA" : "NET") << "\n";
} int main() {
int t; cin >> t;
while (t--) solve();
}
题解二
在移除所有相邻的不同字符后,字符串最终为连续的 $0$ 或 $1$,即移除了 $0$ 和 $1$ 中的较少者,其个数代表着游戏总共可以进行多少步。
代码
#include <bits/stdc++.h>
using namespace std; void solve() {
string s; cin >> s;
int cnt[2] = {};
for (char c : s)
++cnt[c - '0'];
int mi = min(cnt[0], cnt[1]);
cout << (mi & 1 ? "DA" : "NET") << "\n";
} int main() {
int t; cin >> t;
while (t--) solve();
}
最新文章
- [12]APUE:高级 I/O
- javascript与服务器1
- php session 跨页失效问题
- 从零开始学ios开发(十七):Storyboards(上)
- 聊聊动画引擎 pop
- SQL数据库注入防范 ASP.NET Globle警告
- egret命令行编译项目时 版本不对应的问题
- C#函数式程序设计之泛型
- java登录密码效验
- how to add a shared lib in C?
- 数组(Array)资源
- SQL 数据库基本知识
- EFDB 基本规范&;知识
- CentOS7系统卸载自带的OpenJDK并安装SUNJDK
- laravel框架基础知识点
- javascript数据加减问题
- loadrunner之Java Vuser协议脚本编写
- VS快捷键以及Reshaper快捷键
- 关于 Java连接sql的转载
- 将footer固定在页面最下方
热门文章
- HBase的架构设计为什么这么厉害!
- 运行.bat执行sql文件 —— mysql
- 【Android】报错 Please ensure Hyper-V is disabled in Windows Features, or refer to the Intel HAXM 的解决方案
- inode占满导致No space left on device inode快速解决方法
- Ubuntu安装记录
- Docker容器日志清理方案
- js 前端词典对象的属性和值读取
- 将ffmpeg编译为wasm版本且在浏览器中运行
- BBR implements bbr-like limiter 限流
- 解析MySQL中存储时间日期类型的选择问题