本文共 1385 字,大约阅读时间需要 4 分钟。
这段代码是用来解决一个典型的状态转换问题。程序通过统计输入字符串中每对字符的转移次数,计算了不同状态之间的转换次数。
#include#include #include #include using namespace std;typedef long long ll;const int maxn = 1e6 + 5;int main() { int n; cin >> n; string a, b; cin >> a >> b; ll num00 = 0, num01 = 0, num10 = 0, num11 = 0; for (int i = 0; i < n; ++i) { char c1 = a[i], c2 = b[i]; if (c1 == c2) { if (c1 == '0') num00++; else num11++; } else { if (c1 == '0' && c2 == '1') num01++; else if (c1 == '1' && c2 == '0') num10++; } } // 输出结果 // ...}
iostream:用于标准输入输出操作string:字符串操作algorithm:算法库cctype:字符分类和常用字符函数using namespace std;:导入标准库typedef long long ll;:定义长长整数类型const int maxn = 1e6 + 5;:定义常量,用于数组大小int main() { int n; cin >> n; string a, b; cin >> a >> b; ll num00 = 0, num01 = 0, num10 = 0, num11 = 0; for (int i = 0; i < n; ++i) { char c1 = a[i], c2 = b[i]; if (c1 == c2) { if (c1 == '0') num00++; else num11++; } else { if (c1 == '0' && c2 == '1') num01++; else if (c1 == '1' && c2 == '0') num10++; } } // ...} 这段代码通过遍历两个字符串,统计每对字符的转移次数,适用于解决状态转换类的问题。
转载地址:http://ifnt.baihongyu.com/