D.polycarp and div3

贪心的策略。贪心策略一定是针对有限范围内的原则。

这里三个数之内一定会出答案。

需要找到规律,就找到了贪心的策略

#include<bits/stdc++.h>
using namespace std;
string s;
int a[200010];
int main()
{
    cin>>s;
    int n=s.size();
    for(int i=0;s[i];i++)
    {
        a[i+1]=s[i]-'0';
        a[i+1]%=3;
    }
    int sum=0;
    int ans=0;
    int num=0;
    for(int i=1;i<=n;i++)
    {
        sum+=a[i];
        num++;
        if(a[i]==0||sum==3||num==3)
        {
            sum=0;
            num=0;
            ans++;
        }
    }
    printf("%d\n",ans);
}

 

上一篇:#C++初学记录(算法考试1)


下一篇:【优化求解】基于matlab遗传算法遗优化电动汽车有序充电【含Matlab源码 792期】