1 条题解

  • 0
    |||
    100:0
  • 1

    首先要明确思路,如果两个数字的数字和等于他们和的数字和,那么就 每一位都不能出现进位的情况。那么我们开始枚举每一位的不进位的情况,最后乘一下,取模即可。

    因为第 11 位不可以是 00 或者 99,所以在这不考虑这种情况,但第 2k12 \sim k-1 位要考虑。

    AA 数第 11 位可以取的数 BB 数第 11 位可以取的数
    11 181 \sim 8
    22 171 \sim 7
    33 161 \sim 6
    44 151 \sim 5
    55 141 \sim 4
    66 131 \sim 3
    77 121 \sim 2
    88 11

    一共 (8+1)×8÷2=36(8+1)×8÷2=36 种选择。

    同理 ,可以推出 2k12 \sim k-1 位的情况。

    AA 数第 2k12 \sim k-1 位可以取的数 BB 数第 2k12 \sim k-1 位可以取的数
    00 090 \sim 9
    11 080 \sim 8
    22 070 \sim 7
    33 060 \sim 6
    44 050 \sim 5
    55 040 \sim 4
    66 030 \sim 3
    77 020 \sim 2
    88 010 \sim 1
    99 00

    (10+1)×10÷2=55(10+1)×10÷2=55 种。

    那么,ans=36+(k1)×55ans=36+(k-1)×55%10007

    #include<bits/stdc++.h>
    using namespace std;
    int t,k,ans=0;
    int main()
    {
        freopen("sum.in","r",stdin);
        freopen("sum.out","w",stdout);
        scanf("%d",&t);
        while(t--)
        {
            ans=36; 
            scanf("%d",&k);
            for(int i=1; i<k; i++)
                ans=ans*55%10007;
            printf("%d\n",ans);
        }
        return 0;
    }
    
  • 1

信息

ID
1589
难度
4
分类
数学 点击显示
标签
递交数
3
已通过
1
通过率
33%
上传者