题目名称 | 1886. [国家集训队 2011] Crash的数字表格 |
---|---|
输入输出 | nt2011_table.in/out |
难度等级 | ★★★ |
时间限制 | 2000 ms (2 s) |
内存限制 | 512 MiB |
测试数据 | 20 |
题目来源 | cstdio 于2014-12-17加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:101, 提交:241, 通过率:41.91% | ||||
神利·代目 | 100 | 1.582 s | 242.97 MiB | C++ |
kito | 100 | 1.885 s | 59.42 MiB | C++ |
Go灬Fire | 100 | 2.377 s | 162.44 MiB | C++ |
mikumikumi | 100 | 2.508 s | 124.29 MiB | C++ |
ONCE AGAIN | 100 | 2.610 s | 124.28 MiB | C++ |
ONCE AGAIN | 100 | 2.614 s | 124.28 MiB | C++ |
L_in | 100 | 2.814 s | 124.29 MiB | C++ |
>.< | 100 | 3.381 s | 93.77 MiB | C++ |
哒哒哒哒哒! | 100 | 3.401 s | 238.73 MiB | C++ |
真呆菌 | 100 | 3.622 s | 57.51 MiB | C++ |
关于 Crash的数字表格 的近10条评论(全部评论) | ||||
---|---|---|---|---|
25题斩
New World
2017-01-04 14:18
7楼
| ||||
被Int64和longlong卡出祥
stone
2016-02-03 21:09
6楼
| ||||
咦?好奇怪啊……为什么筛F(n)的时候对素数定义$F(p) = mod + 1 - p$会挂但是定义成$F(p) = 1 - p$最后再判断正负就是对的?= =
呃我写一下推导过程吧,练练$\LaTeX{}$ …… \begin{align} Ans = & \sum_{a=1}^N \sum_{b=1}^M lcm(a, b) \\ =& \sum_{d=1}^{ \min(N, M)} \sum_{i=1}^{\lfloor {N/d} \rfloor} \sum_{j=1}^{\lfloor {M/d} \rfloor } [\gcd(i, j) = 1] i j d\\ = &\sum_{d=1}^{ \min(N, M)} \sum_{i=1}^{\lfloor {N/d} \rfloor} \sum_{j=1}^{\lfloor {M/d} \rfloor } \sum_{t | i \land t | j} \mu (t) i j d\\ 考虑直接枚举t*d,&用i*d,j*d,\frac{td}{t}分别替换i, j, d;\\ Ans =& \sum_{td=1}^{ \min(N, M)} td \sum_{t | td} \mu (t) t \sum_{i=1}^{\lfloor {N/td} \rfloor } \sum_{j=1}^{\lfloor {M/td} \rfloor } i j \\ 设F(n) = &\sum_{t | n} \mu (t) t ;\\ 则Ans = & \sum_{td=1}^{ \min(N, M)} td F(td) \sum_{i=1}^{\lfloor {N/td} \rfloor } \sum_{j=1}^{\lfloor {M/td} \rfloor } i j \end{align} 再来看F函数: 先直接用定义证明F是积性函数,然后直接套欧拉筛法:
| ||||
回复 @cstring :
是一种论文排版的工具
Asm.Def
2015-02-04 09:44
4楼
| ||||
回复 @Asm.Def :
LATEX是什么。。。。
天一阁
2015-02-04 07:27
3楼
| ||||
我这个SB竟然在用了O(n)线性筛的情况下,拼命把求ans优化到O(sqrt(n))
| ||||
出题人你标程炸了(╯‵□′)╯︵┻━┻
数据已修复 |
nt2011_table.in
输出文件:nt2011_table.out
简单对比
今天的数学课上,$Crash$ 小朋友学习了最小公倍数($Least$ $Common$ $Multiple$)。对于两个正整数 $a$ 和 $b$,$LCM(a, b)$ 表示能同时整除 $a$ 和 $b$ 的最小正整数。例如,$LCM(6, 8) = 24$。
回到家后,$Crash$ 还在想着课上学的东西,为了研究最小公倍数,他画了一张 $N*M$ 的表格。每个格子里写了一个数字,其中第 $i$ 行第 $j$ 列的那个格子里写着数为 $LCM(i, j)$。一个 $4*5$ 的表格如下:
看着这个表格,$Crash$ 想到了很多可以思考的问题。不过他最想解决的问题却是一个十分简单的问题:这个表格中所有数的和是多少。当 $N$ 和 $M$ 很大时,$Crash$ 就束手无策了,因此他找到了聪明的你用程序帮他解决这个问题。由于最终结果可能会很大,$Crash$ 只想知道表格里所有数的和 $mod$ $20101009$ 的值。
输入的第一行包含两个正整数,分别表示 $N$ 和 $M$。
输出一个正整数,表示表格中所有数的和 $mod$ $20101009$ 的值。
4 5
122
$30\%$ 的数据满足 $N, M\le 10^3$。
$70\%$ 的数据满足 $N, M\le 10^5$。
$100\%$ 的数据满足 $N, M\le 10^7$。
$2011$ 中国国家集训队命题答辩