1 条题解
-
0
自动搬运
来自洛谷,原作者为

Little_x_starTYJ
愿时光能缓,愿故人不散! || 众所周知,如果把灯泡放在嘴里,即使你自己一个人也取得出来灯泡。搬运于
2025-08-24 22:59:16,当前版本为作者最后更新于2024-06-13 14:58:53,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
解题思路
为了不让数字串中出现 的非负整数次幂,那么 必须得删去,于是写出了以下代码:
#include <bits/stdc++.h> using namespace std; #define int long long int ans; signed main() { ios::sync_with_stdio(false); string a; cin >> a; for (int i = 0; i < a.size(); i++) { if (a[i] == '1' || a[i] == '2' || a[i]== '4' || a[i] == '8') ans++; } cout << ans; return 0; }交上去发现只有 分。为什么只有 分?会不会有特殊情况?于是打了一个表,发现 只有 不包含 ,所以我们还需要单独处理 。需要注意的是,对于两个重叠的 ,我们只需要删掉 个数,例如 ,我们只需要删除最中间的 。
AC 代码:
#include <bits/stdc++.h> using namespace std; #define int long long int ans; signed main() { ios::sync_with_stdio(false); string a; cin >> a; for (int i = 0; i < a.size(); i++) { if (a[i] == '6' && a[i + 1] == '5' && a[i + 2] == '5' && a[i + 3] == '3' && a[i + 4] == '6') ans++, i += 4; } for (int i = 0; i < a.size(); i++) { if (a[i] == '1' || a[i] == '2' || a[i]== '4' || a[i] == '8') ans++; } cout << ans; return 0; }
- 1
信息
- ID
- 9183
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 3
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者