zoukankan      html  css  js  c++  java
  • <<信息学奥赛一本通>> 位数问题 题解

    1313:【例3.5】位数问题


    时间限制: 1000 ms         内存限制: 65536 KB
    提交数: 3907     通过数: 2025 

    【题目描述】

    在所有的N位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345取余的值。

    【输入】

    读入一个数N(N1000)

    【输出】

    输出有多少个数中有偶数个数字3。

    【输入样例】

    2

    【输出样例】

    73

    题解:
    0 0 0 
    1 1 1
    2 2 2
    3 3 3
    4 4 4
    5 5 5
    6 6 6
    7 7 7
    8 8 8
    9 9 9
    仔细观察,嗯....
    !!!! 我知道了,当位数是 1 的时候 , 有 9 个符合条件的。只有1个 数字3 不符合。
    (因为根据题意,含有0个3也是含有偶数个3)
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    

      那么接下来,数字3 是含有奇数个3(不符条件 false) 的 但是 数字33 是含有 偶数个3 (符合条件 true)

      又就是说 数字3 在增加了一位数后 变成了符合条件数字33

      符合条件的数的个数 为 T[0]

      不符合条件的数的个数为 F[0]

      T[0] 与 F[1] 是有关联的,我们就需要2个数组。

      再由于要记录是第N位数。

      所以引入二维数组,F[i][0] 表示 第 i 位数的时候,符合条件的数的个数。

      再仔细观察,发现 1(true) 分别和 0,1,2,4,5,6,7,8,9 结合 可以变成 10,11,12,14,15,16,17,18,19 ( true ) (9个)

                          和 3 结合变成 13 ( false ) (1个)

      同理:

        3 (false) 与 3 -> 33 (true) (1个)

           与除3外的其他数结合 -> (false) (9个)

      就可以列出递推式:

        T[i] = (T[i-1]*9 + F[i-1])%12345;
        F[i] = (T[i-1] + F[i-1]*K=9)%12345;

     等等...然后...
     因为012不构成三位数,也就是说 第 N 位(最后一位的时候),不能把0算进去。
     所以要把 *9 变成 *8
    #include <iostream>
    using namespace std;
    long long T[1001],F[1001];
    int N;
    int main(){
        int K = 9; 
        cin >> N;
        T[1] = 9;
        F[1] = 1;
        for(int i=2;i<=N;i++){
            if(i==N)
                --K;
            T[i] = (T[i-1]*K + F[i-1])%12345;
            F[i] = (T[i-1] + F[i-1]*K)%12345;
        }
        cout << T[N] << endl;
        return 0;
    }
     
  • 相关阅读:
    E230的Android历程
    Web.config
    程序集和命名空间 转载
    CSS 得到图片 为什么是负 值。
    JQUERY中 GET与POST方法的区别 Request.QueryString Request.Form区别
    JS中scrollLeft(right,top,bottom)的用法和特点
    ashx是什么文件
    自己写了个 logO图片上 显示问题则CSS样式。CSS可是真强大啊。
    jquery + ashx DropDownList 二级
    CSS与超链接<a><A>的恩怨情仇。。。
  • 原文地址:https://www.cnblogs.com/--zz/p/10452859.html
Copyright © 2011-2022 走看看