首页 > 代码库 > codeforces——思路与规律

codeforces——思路与规律

codeforces 804B     http://codeforces.com/problemset/problem/804/B

技术分享
/*题意:给定一个只含ab的序列,每次操作可将ab变为bba问至少变换多少次使序列不含形式为"ab"的子串这题没想出来......唉。  思路:从后往前处理,每次经过一个a,都要将它移到最后,共经过x个b,将ans+=x,同时b的个数翻倍x += x;每经过一个b,x++。 */#include<iostream>#include<cstdio>#include<cstring>#define mod 1000000007#define maxn 1000001using namespace std;int now,ans;char s[maxn];int main(){    scanf("%s",s);    int l=strlen(s);    for(int i=l-1;i>=0;i--)    {        if(s[i]==b) now=(now+1)%mod;        else        {            ans=(ans+now)%mod;            now=(now+now)%mod;        }    }    printf("%d\n",ans);    return 0;} 
难度系数 2

 

codeforces——思路与规律