'commit'
This commit is contained in:
23
LuoGu/RuMen/P2708.cpp
Normal file
23
LuoGu/RuMen/P2708.cpp
Normal file
@@ -0,0 +1,23 @@
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
/*
|
||||
规律:
|
||||
当这一个硬币与下一个硬币不同时,这一个硬币连同它之前的硬币一起翻转
|
||||
翻转至与下一个硬币相同的一面,直到将所有硬币翻转到同一面
|
||||
但这里还有一个点要注意:题目要求所有硬币正面朝上,也就是所有面都是'1'的情况,才算完成.我们就再把全部硬币翻转一次
|
||||
*/
|
||||
//cin读入优化
|
||||
std::ios::sync_with_stdio(false);
|
||||
string s;
|
||||
int ans = 0;
|
||||
cin >> s; //字符串输入
|
||||
for (int i = 1; i < s.size(); i++) {
|
||||
if (s[i] != s[i - 1]) ans++; //碰到不一样的就反转一下
|
||||
}
|
||||
if (s[s.size() - 1] == '0') cout << ans + 1; // 最后要特判一下 如果最后的是 0 还要多翻一次
|
||||
else cout << ans; //不是0的话直接输出就好
|
||||
return 0; //完结撒花。。。,洛谷专用
|
||||
}
|
||||
Reference in New Issue
Block a user