题目名称 332. [NOI 2002]机器人M号
输入输出 robot.in/out
难度等级 ★★★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 GravatarBYVoid 于2009-05-19加入
开放分组 全部用户
提交状态
分类标签
NOI 递推 数学 数论
分享题解
通过:29, 提交:50, 通过率:58%
Gravatarmikumikumi 100 0.003 s 0.29 MiB C++
GravatarCydiater 100 0.003 s 0.31 MiB C++
Gravatarcstdio 100 0.003 s 0.32 MiB C++
Gravatarkito 100 0.004 s 0.25 MiB C++
Gravatar.Xmz 100 0.004 s 0.33 MiB C++
GravatarQhelDIV 100 0.004 s 0.35 MiB C++
Gravatar荡漾 100 0.005 s 0.32 MiB C++
Gravatar二价氢 100 0.006 s 0.30 MiB C++
GravatarZXCVBNM_1 100 0.007 s 0.32 MiB C++
Gravatarkito 100 0.008 s 0.31 MiB C++
关于 机器人M号 的近10条评论(全部评论)
膜拜楼上神犇。
Gravatarkito
2016-08-13 19:34 3楼
那个k<=1000是用来吓人的么= =还以为是什么n^2logn之类的╮(╯▽╰)╭
题中缺少p和e的范围:2<=p<10000,1<=e<=1000000
欧拉是个积(基)性函数= =
Gravatarcstdio
2013-05-21 20:05 2楼
忘了学者不可能有1,实现的时候过分的数学化,没考虑1这个机器人,因为1这个机器人在题目中很特殊,所以最后要答案
要-1
GravatarQhelDIV
2013-01-09 20:41 1楼

332. [NOI 2002]机器人M号

★★★☆   输入文件:robot.in   输出文件:robot.out   简单对比
时间限制:1 s   内存限制:128 MiB

【问题描述】

3030年,Macsy正在火星部署一批机器人。

第1秒,他把机器人1号运到了火星,机器人1号可以制造其他的机器人。

第2秒,机器人1号造出了第一个机器人——机器人2号。

第3秒,机器人1号造出了另一个机器人——机器人3号。

之后每一秒,机器人1号都可以造出一个新的机器人。第m秒造出的机器人编号为m。我们可以称它为机器人m号,或者m号机器人。


机器人造出来后,马上开始工作。m号机器人,每m秒会休息一次。比如3号机器人,会在第6,9,12,……秒休息,而其它时间都在工作。

机器人休息时,它的记忆将会被移植到当时出生的机器人的脑中。比如6号机器人出生时,2,3号机器人正在休息,因此,6号机器人会收到第2,3号机器人的记忆副本。我们称第2,3号机器人是6号机器人的老师。

如果两个机器人没有师徒关系,且没有共同的老师,则称这两个机器人的知识是互相独立的。注意:1号机器人与其他所有机器人的知识独立(因为只有1号才会造机器人),它也不是任何机器人的老师。


一个机器人的独立数,是指所有编号比它小且与它知识互相独立的机器人的个数。比如1号机器人的独立数为0,2号机器人的独立数为1(1号机器人与它知识互 相独立),6号机器人的独立数为2(1,5号机器人与它知识互相独立,2,3号机器人都是它的老师,而4号机器人与它有共同的老师——2号机器人)。

新造出来的机器人有3种不同的职业。对于编号为m的机器人,如果能把m分解成偶数个不同奇素数的积,则它是政客,例如编号15;否则,如 果m本身就是奇素数或者能把m分解成奇数个不同奇素数的积,则它是军人,例如编号 3, 编号165。其它编号的机器人都是学者,例如编号2, 编号6, 编号9。


第m秒诞生的机器人m号,想知道它和它的老师中,所有政客的独立数之和,所有军人的独立数之和,以及所有学者的独立数之和。可机器人m号忙于工作没时间计算,你能够帮助它吗?

为了方便你的计算,Macsy已经帮你做了m的素因子分解。为了输出方便,只要求输出总和除以10000的余数。


【输入文件】

输入文件的第一行是一个正整数k(1<=k<=1000),k是m的不同的素因子个数。

以下k行,每行两个整数,pi, ei,表示m的第i个素因子和它的指数(i = 1, 2, …, k)。p1, p2, …, pk是不同的素数,m=p1^e1 * p2^e2 * ... * pk^ek。所有素因子按照从小到大排列,即p1


【输出文件】

输出文件包括三行。

第一行是机器人m号和它的老师中,所有政客的独立数之和除以10000的余数。

第二行是机器人m号和它的老师中,所有军人的独立数之和除以10000的余数。

第三行是机器人m号和它的老师中,所有学者的独立数之和除以10000的余数。


【样例输入】

3
2 1
3 2
5 1

【样例输出】

8
6
75

【样例说明】

m=2*3*3*5=90。90号机器人有10个老师,加上它自己共11个。其中政客只有15号;军人有3号和5号;学者有8个,它们的编号分别是:2,6,9,10,18,30,45,90。