同余的思想进行贪心
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
char s[200010];
int main(){
cin>>s+1;
int d=strlen(s+1);
int flag=0,cnt=0;
int sum=0;
for(int i=1;i<=d;i++){
int k=s[i]-'0';
if(k%3==0){
cnt=0;
flag++;
sum=0;
// cout<<i<<endl;
}
else{
sum+=k;cnt++;
if(sum%3==0||cnt==3){
sum=0;flag++;cnt=0;
// cout<<i<<endl;
}
}
}
cout<<flag<<endl;
}

本文探讨了使用同余思想进行贪心算法的实现方法,通过C++代码示例展示了如何处理数字串,以确定满足特定条件的子串数量。算法通过对数字串的遍历,利用同余性质来优化计算过程。
377

被折叠的 条评论
为什么被折叠?



