C_plus_plus_12345 @ 2024-11-29 20:18:35
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
#pragma G++ optimize(3)
// 翻转二进制字符串,直接修改输入字符串
void flip(string& s)
{
reverse(s.begin(), s.end());
}
// 取反二进制字符串,直接修改输入字符串
void bitNot(string& s)
{
for (char& c : s)
{
c = c == '0' ? '1' : '0';
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr); // nullptr其实就是0的一种体现。
int n, s;
string t, y;
// 输入二进制字符串的长度 n 和操作次数 s
cin >> n >> s;
cin.ignore(); // 忽略换行符
// 输入二进制字符串 t
cin >> t;
// 输入操作字符串 y
cin >> y;
// 对字符串 t 进行操作
for (char op : y)
{
if (op == '1')
{
flip(t);
}
else if (op == '2')
{
bitNot(t);
}
}
// 输出结果
cout << t << endl;
return 0;
}
by zyr2011 @ 2024-11-29 20:19:38
AI
by liyuanxi_0214 @ 2024-11-29 20:27:29
函数前面加上inline
by Lionel_Messi_10 @ 2024-11-29 20:36:50
@C_plus_plus_12345 超级快读?
by C_plus_plus_12345 @ 2024-11-29 20:38:43
@liyuanxi_0214 感谢您的回复。但是,这么做依然无法优化我的情况。
by wanshuhao @ 2024-11-29 20:40:18
显然\ flip(flip(s))=s\ bitNot(bitNot(s))=s
by wanshuhao @ 2024-11-29 20:40:31
@C_plus_plus_12345
by wanshuhao @ 2024-11-29 20:42:21
flip 与 bitNot 均满足无后效性
by wanshuhao @ 2024-11-29 20:43:39
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
#pragma G++ optimize(3)
// 翻转二进制字符串,直接修改输入字符串
void flip(string& s)
{
reverse(s.begin(), s.end());
}
// 取反二进制字符串,直接修改输入字符串
void bitNot(string& s)
{
for (char& c : s)
{
c = c == '0' ? '1' : '0';
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr); // nullptr其实就是0的一种体现。
int n, s;
string t, y;
// 输入二进制字符串的长度 n 和操作次数 s
cin >> n >> s;
cin.ignore(); // 忽略换行符
// 输入二进制字符串 t
cin >> t;
// 输入操作字符串 y
cin >> y;
bool t1 = 0, t2 = 0;
for (char op : y)
{
if (op == '1')
{
t1 ^= 1;
}
else if (op == '2')
{
t2 ^= 1;
}
}
if (t1)
flip(t);
if (t2)
bitNot(t);
// 输出结果
cout << t << endl;
return 0;
}
by C_plus_plus_12345 @ 2024-11-29 20:47:39
@wanshuhao 感谢您的回复。等下我会去测试。
by C_plus_plus_12345 @ 2024-11-29 20:54:09
@wanshuhao 感谢您为我提供的方法!已关注!