1035神奇的数字9

来源:互联网 发布:ubuntu 15.10 163源 编辑:程序博客网 时间:2024/06/10 23:28


1305: 神奇的数字9 [数学]

时间限制: 1 Sec 内存限制: 128 MB

提交: 163 解决: 22 统计

题目描述

给定一个数N(没有前导0)和Q次操作,每次操作修改第i位数字 为 v(保证不会把第一位修改为0),对每次操作判定新数能否被9整除。

若满足被9整除输出1,反之输出0。

输入

有多组测试数据,请处理到文件结束。

每组数据有两个整数N和Q,接下来有Q行代表Q次操作,每行有两个整数i和v。

后台数据保证0 <= N <= 10^1000000,1 <= Q <= 10^6,1 <= i <= |N|,0 <= v <= 9。

输出

每组数据输出Q行,代表对Q次操作后的判定。

样例输入

999 32 03 02 910000000000000000000000000000000000000000000000 12 810000000000000000000000000000000000000000000000 42 93 84 95 9

样例输出

11110111

来源


刚开始看N的取值范围这么大以为大数处理结果时间超限

在网上搜了一下才发现以前做过一样的题
如果一个整数的各个数字之和能被3或9整除,那么这个数就一定能被3或9整除
我们先用三位数证明:
一个三位数abc可写成:100a+10b+c
因为a+b+c=3k
所以:
99a+9b+(a+b+c)=99a+9b+3k=3(33a+3b+k).
.
三位数的百位为A,十位为B,各位为C,那么这个数就可以表示成100A+10B+C.
可以得到
100A+10B+C=99A+9B+(A+B+C)
因为A+B+C可以被9整除.
所以(A+B+C)+(99A+9B)必定也可以被9整除.
即100A+10B+C可以被9整除.
.
其它位数同理.

知道以上知识点写代码就简单了,所以代码就不写了