关闭

codeforces628b

60人阅读 评论(0) 收藏 举报
分类:

题意,就是给你一个字符串,然后就是,其中的字串,看看有没有字串能被4整除。
题解那个看最后两个数字是否能被4整除。然后,看每一个字符能不能被4整除。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

const int MaxN = 3e5 + 10;
char a[MaxN];
int dp[MaxN];
int main()
{
    long long ans = 0;
    scanf("%s",a);
    memset(dp , 0 , sizeof(dp) );
    for(int i = 0 ; i < strlen(a) ; i++)
        if( (a[i] - '0') % 4 == 0) ans++;
    for(int i = 1 ; i < strlen(a) ; i++){
    //    printf("ceshi = %d", 10 * ( a[i - 1] - '0') + a[i] - '0');
        if(( 10 * ( a[i - 1] - '0') + a[i] - '0') % 4 == 0){
      //      printf("*");
            dp[i] = i;
        }
    }
    //for(int i= 0 ; i < strlen(a) ; i++) printf("dp[%d] = %d\n",i , dp[i]);
    for(int i = 0 ; i < strlen(a) ; i++){
        ans += dp[i];
    }
    printf("%I64d\n",ans);
    return 0;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:14749次
    • 积分:1859
    • 等级:
    • 排名:千里之外
    • 原创:178篇
    • 转载:3篇
    • 译文:0篇
    • 评论:5条
    最新评论