codeforces.com/contest/805

来源:互联网 发布:疯狂java培训班 编辑:程序博客网 时间:2024/06/07 03:58

URL: http://codeforces.com/contest/805

就写了前4个水题

A. Fake NP

#include<stdio.h>#include<math.h>#include<vector>#include<queue>#include<algorithm>using namespace std;int main(){    int l,r;    scanf("%d%d",&l,&r);    if(l==r) printf("%d\n",l);    else puts("2");    return 0;}

B. 3-palindrome

#include<stdio.h>#include<math.h>#include<vector>#include<queue>#include<algorithm>using namespace std;int main(){    int n;    scanf("%d",&n);    for(int i=0;i<n;++i){        putchar(i/2%2==0?'a':'b');    }    putchar('\n');    return 0;}

C. Find Amir

#include<stdio.h>#include<math.h>#include<vector>#include<queue>#include<algorithm>using namespace std;int main(){    int n;    scanf("%d",&n);    printf("%d\n",(n-1)/2);    return 0;}

D. Minimum number of steps

多想一下就可以了,不难发现就是个一维dp问题

#include<stdio.h>#include<string.h>const int MAXN=1e6+5;const long long MOD = 1e9+7;char s[MAXN];int main(){    gets(s);    int len=strlen(s);    long long k=0,ans=0;    for(int i=len-1;i>=0;--i){        if(s[i]=='b') ++k;        else {            ans+=k;            ans%=MOD;            k<<=1;            k%=MOD;        }    }    printf("%lld\n",ans);    return 0;}