这周有些事,没学什么新的东西,主要是写了点题。
感觉比较有意思的是4504. 字符串消除 - AcWing题库
主要是一点博弈和栈模拟,但一开始真的没想到。当操作为奇数的时候才能获胜,用栈模拟,连续的相同字符就消去,剩下的就是被选剩下的,被移走的字符数/2得到的就是操作数
signed main() {
string s;
cin >> s;
vector<int>l;
for (auto x : s) {
if (l.empty() == 1 or l.back() != x)
l.push_back(x);
else
l.pop_back();
}
if ((int)((s.size() - l.size()) / 2) % 2 == 1)
cout << "Yes";
else
cout << "No";
}
简单数论
当n == 1,无法分解质因子,也无法变小,因此直接输出
当n分解的所有质因子的幂的最大值都只有1,那么无法变小,直接输出
其他情况下,我们需要先找到离质因子的最大幂最近、且大于等于这个最大幂的是2的k次方,然后进行乘法操作补全
使得所有质因子的幂都变为2的k次方,然后进行k次开方,因此结果为k + 1