蓝桥杯2025年第十六届省赛真题-水质检测
C语言代码:
#include <stdio.h>
#include <string.h>#define MAX_LEN 1000000int main() {char a[MAX_LEN + 1], b[MAX_LEN + 1];// 使用 scanf 读取字符数组scanf("%s", a);scanf("%s", b);int ans = 0;int pre = -1;int state = -1;int len = strlen(a);for (int i = 0; i < len; i++) {if (a[i] == '.' && b[i] == '.') continue;if (pre != -1) ans += i - pre - 1;if (a[i] == '#' && b[i] == '#') state = 3;else if (a[i] == '#' && b[i] == '.') {if (state == 2) {ans++;state = 3;} else state = 1;} else if (a[i] == '.' && b[i] == '#') {if (state == 1) {ans++;state = 3;} else state = 2;}pre = i;}// 使用 printf 输出结果printf("%d", ans);return 0;
}
C++代码:
#include <iostream>
#include <string>
using namespace std;int main() {string a, b;// 使用 cin 读取 string 类型变量cin >> a >> b;int ans = 0;int pre = -1;int state = -1;for (int i = 0; i < a.size(); i++) {if (a[i] == '.' && b[i] == '.') continue;if (pre != -1) ans += i - pre - 1;if (a[i] == '#' && b[i] == '#') state = 3;else if (a[i] == '#' && b[i] == '.') {if (state == 2) {ans++;state = 3;} else state = 1;} else if (a[i] == '.' && b[i] == '#') {if (state == 1) {ans++;state = 3;} else state = 2;}pre = i;}// 使用 cout 输出结果cout << ans;return 0;
}