专栏文章

CF2093B Expensive Number

CF2093B题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mipjuoto
此快照首次捕获于
2025/12/03 13:11
3 个月前
此快照最后确认于
2025/12/03 13:11
3 个月前
查看原文

题目传送门

思路

不难发现,一个数的最小花费一定为 11。所以我们只需要删除除了前导 00 和最低位的非 00 数的数之外的所有数即可。换句话说,我们只需要保留前导 00 和唯一一个非 00 数的数。

AC Code:

CPP
#include <bits/stdc++.h>
using namespace std;
int main()
{
	int t;
	cin >>t;
	while(t--)
	{
		string s;
		cin >>s;
		int len=s.size();
		bool flag=1;
		int cnt=0;
		for(int i=len-1;i>=0;i--)
		{
			if(flag)
			{
				if(s[i]=='0') cnt++;
				else flag=0;
			}
			else
			{
				if(s[i]!='0') cnt++;
			}
		}
		cout <<cnt<<'\n';
	}
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...