• New Skateboard


    Max wants to buy a new skateboard. He has calculated the amount of money that is needed to buy a new skateboard. He left a calculator on the floor and went to ask some money from his parents. Meanwhile his little brother Yusuf came and started to press the keys randomly. Unfortunately Max has forgotten the number which he had calculated. The only thing he knows is that the number is divisible by 4.

    You are given a string s consisting of digits (the number on the display of the calculator after Yusuf randomly pressed the keys). Your task is to find the number of substrings which are divisible by 4. A substring can start with a zero.

    A substring of a string is a nonempty sequence of consecutive characters.

    For example if string s is 124 then we have four substrings that are divisible by 4: 12, 4, 24 and 124. For the string 04 the answer is three: 0, 4, 04.

    As input/output can reach huge size it is recommended to use fast input/output methods: for example, prefer to use gets/scanf/printf instead of getline/cin/cout in C++, prefer to use BufferedReader/PrintWriter instead of Scanner/System.out in Java.

    Input

    The only line contains string s (1 ≤ |s| ≤ 3·105). The string s contains only digits from 0 to 9.

    Output

    Print integer a — the number of substrings of the string s that are divisible by 4.

    Note that the answer can be huge, so you should use 64-bit integer type to store it. In C++ you can use the long long integer type and in Java you can use long integer type.

    Examples
    input
    Copy
    124
    output
    Copy
    4
    input
    Copy
    04
    output
    Copy
    3
    input
    Copy
    5810438174
    output
    Copy
    9



    题目问的是子串不是子序列
    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <string>
    #include <set>
    #include <queue>
    #include <map>
    #include <sstream>
    #include <cstdio>
    #include <cstring>
    #include <numeric>
    #include <cmath>
    #include <unordered_set>
    #include <unordered_map>
    #include <xfunctional>
    #define ll long long
    #define mod 998244353
    using namespace std;
    int dir[4][2] = { {0,1},{0,-1},{-1,0},{1,0} };
    const int maxn = 16;
    const long long inf = 0x7f7f7f7f7f7f7f7f;
    
    int main()
    {
        string s;
        cin>>s;
        ll ans = 0;
        for (int i = 0; i < s.size(); i++)
        {
            if (s[i] % 4 == 0)
                ans++;
            if (i >= 1)
            {
                if (((s[i - 1] - '0') * 10 + (s[i] - '0')) % 4 == 0)
                    ans += i;
            }
        }
        cout<<ans;
        return 0;
    }
  • 相关阅读:
    nginx.conf文件
    本地apache 可以正常访问,lnmp服务器访问404错误
    PHP网站从Apache转移到Nginx后产生404错误的原因和解决办法
    CGI,FAST-CGI,PHP-FPM的区别
    Lnmp修改php.ini配置
    APACHE服务器出现No input file specified.的完美解决方案
    EXCEL常用函数详解
    chrome extensions
    C++使用OLE高速读写EXCEL的源码
    C++读写EXCEL文件OLE,java读写excel文件POI 对比
  • 原文地址:https://www.cnblogs.com/dealer/p/12350381.html
Copyright © 2020-2023  润新知