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 1000001

using 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

时间: 2024-12-21 18:10:01

codeforces——思路与规律的相关文章

CodeForces 776E 数学规律,欧拉

CodeForces 776E 题意:定义f(n)为(x,y)的对数,x和y要满足 x>0, y>0, x+y=n, x与y互质. 定义g(n)为f(x1)+f(x2)+......+f(xk),xi为n的因子. 再定义Fk(n)为     给定n和k,求Fk(n). tags: 好假的题..推理或者找规律,f(n)=phi(n), g(n)=n... #include<bits/stdc++.h> using namespace std; #pragma comment(link

CodeForces - 964A(找规律)

原题 题意:给你个数N,问你能得到多少种权重不同的分解(权重指将数分解成一个不上升的正整数序列后,序列中等于序列第一个数的个数) 思路:看到题感觉就是规律题,但是开始一直没搞懂输入8为啥出来5,如果能够简单将前几个数模拟一下,就会发现规律 n ans 1 1 2 2 3 2 4 3 5 3 6 4 7 4 所以 ans=n/2-1 代码: #include<iostream> #include<cstdio> using namespace std; int main() { in

C - Splits CodeForces - 964A(规律)

我们定义一个不上升的且和为 n 的正整数序列,叫做 n 的分解. 比如, 下面是8的分解: [4, 4], [3, 3, 2], [2, 2, 1, 1, 1, 1], [5, 2, 1]. 而这些则不是8的分解: [1, 7], [5, 4], [11, -3], [1, 1, 4, 1, 1]. 一个分解的权值等于第一个数的个数. 例如, [1, 1, 1, 1, 1] 的权值是 5, [5, 5, 3, 3, 3] 的权值是 2, [9] 的权值是 1. 给定一个 n, 找到不同权值的分解

2017-03-19 codeforces 664C 找规律,水

C. International Olympia 题意:从1989年起,每一年记作IAO'y,其中y为该年份的第一个没有被占用过的后缀,比如1989记作IAO'9,1990记作IAO'0,1991记作IAO'1 ,给出n个IAO'y,求它们分别代表的年份. tags:好纠结的题,要理清楚.. 可以发现一开始的10年(1989-1998)会缩成一位数,接下来100年(1999-2098)会缩成两位数,接下来1000年(2099-3098)会缩成三位数,接下来10000年(3099-13098)会缩

codeforces B. Strongly Connected City(dfs水过)

题意:有横向和纵向的街道,每个街道只有一个方向,垂直的街道相交会产生一个节点,这样每个节点都有两个方向, 问是否每一个节点都可以由其他的节点到达.... 思路:规律没有想到,直接爆搜!每一个节点dfs一次,记录每个节节点被访问的次数!如果每个节点最终的访问次数 和所有节点的数目相同,则输出“YES", 否则输出”NO“ 1 #include <queue> 2 #include <string> 3 #include <cstdio> 4 #include &

ACdream1187(简单找规律)

C - Problem C Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) SubmitStatus Problem Description Consider an infinite complete binary tree where the root node is 1/1 and left and right childs of node p/q are p/(p+q) and

UVA - 11774 Doom&#39;s Day (规律)

We all know about the legend oftower of Hanoi. It is said that the world will end after finishing the puzzle.What we don't know is another legend about when the world will end which is verifiedby the scientists. It is all about a 3^n * 3^m grid.Initi

ACM_无聊者序列(斐波那契数列大数+同余+规律)

Problem Description: 瓜瓜在玩着由红色和蓝色的大理石做成的玻璃珠,他将n个玻璃珠从左到右排成一个序列叫做无聊者序列.一个非空的红色和蓝色玻璃珠组成的序列是一个无聊者序列.这个序列的玻璃珠颜色是交替的,例如:序列(红色:蓝色:红色)和(蓝色)是一个无聊者序列.(红色:红色)不是无聊者序列.现在,瓜瓜想知道,从这个序列中选出一个无聊者子序列有多少种方法.并将它mod(1000000007). Input: 输入有多组数据,输入一个整数n(1 <= n <= 10^6),代表这个

Codeforces 1163E Magical Permutation [线性基,构造]

codeforces 思路 我顺着图论的标签点进去的,却没想到-- 可以发现排列内每一个数都是集合里的数异或出来的. 考虑答案的上界是多少.如果能用小于\(2^k\)的数构造出\([0,2^k-1]\)内所有的数,那么答案就对这个\(k\)取\(\max\).很显然这一定是上界. 考虑能不能构造出一组解.把\([1,2^k-1]\)的数拎出来插入线性基里得到一组极大线性无关组,那么显然它的\(size\)就是\(k\).由于它线性无关,所以任意选取一个子集得到的异或和都不会相同,所以考虑把\(0