题目描述

输入

输出

样例输入

3
2 1
3 2
5 1

样例输出

8
6
75


题解

语文题+数论+dp

花了大段讲述什么叫mu,什么叫phi,只是新定义的mu将2看作有平方因子,新定义的phi(1)=0。

要求的就是mu值为1的数的phi值之和、所有mu值为-1的phi值之和、以及所有mu值为0的phi值之和。

先只考虑前两种,此时无论质因子有多少个,能够使用的只有1个。如果p不是2,那么就有两种情况:使用和不使用。使用的话,素数个数+1,也就是mu变为相反数。

又因为phi是积性函数,所以之前的phi的和乘上p-1就是新得到的phi值和。

用一个类似于dp的思想求出这两个答案,最后由于∑phi(d)(d|m)=m,那么三种答案之和应该为m-1(因为题目中说1不算做约数),所以m-1减去前两种即可得到第三种。

处理ans1和ans2的时候应该先把phi1当作1处理,然后再减掉。

#include <cstdio>
#include <algorithm>
#define mod 10000
using namespace std;
int pow(int x , int y)
{
int ans = 1;
while(y)
{
if(y & 1) ans = ans * x % mod;
x = x * x % mod , y >>= 1;
}
return ans;
}
int main()
{
int k , m = 1 , i , p , e , ans1 = 1 , ans2 = 0 , t;
scanf("%d" , &k);
while(k -- )
{
scanf("%d%d" , &p , &e) , m = m * pow(p , e) % mod;
if(p != 2) t = ans1 , ans1 = (ans1 + ans2 * (p - 1)) % mod , ans2 = (ans2 + t * (p - 1)) % mod;
}
ans1 = (ans1 - 1 + mod) % mod;
printf("%d\n%d\n%d\n" , ans1 , ans2 , (m - ans1 - ans2 - 1 + 2 * mod) % mod);
return 0;
}

【bzoj1408】[Noi2002]Robot 数论+dp的更多相关文章

  1. 【BZOJ1408】[Noi2002]Robot DP+数学

    [BZOJ1408][Noi2002]Robot Description Input Output Sample Input 3 2 1 3 2 5 1 Sample Output 8 6 75 HI ...

  2. BZOJ 1408: [Noi2002]Robot

    1408: [Noi2002]Robot Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 510  Solved: 344[Submit][Status][ ...

  3. 洛谷$P5366\ [SNOI2017]$遗失的答案 数论+$dp$

    正解:数论$dp$ 解题报告: 传送门$QwQ$ 考虑先质因数分解.所以$G$就相当于所有系数取$min$,$L$就相当于所有系数取$max$ 这时候考虑,因为数据范围是$1e8$,$1e8$内最多有 ...

  4. [NOI2002] Robot 解题报告(数论+DP)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1408 Description 3030年,Macsy正在火星部署一批机器人. 第1秒,他 ...

  5. 【bzoj1408】 Noi2002—Robot

    http://www.lydsy.com/JudgeOnline/problem.php?id=1408 (题目链接) 题意 定义了3种数,分别求这3种数的φ的和,其中φ(1)=0. Solution ...

  6. UVALive - 6916 Punching Robot Lucas+dp

    题目链接: http://acm.hust.edu.cn/vjudge/problem/96344 Punching Robot Time Limit: 1000MS64bit IO Format: ...

  7. 数论+DP HDOJ 4345 Permutation

    题目传送门 题意:一个置换群,经过最少k次置换后还原.问给一个N个元素,在所有的置换群里,有多少个不同的k. 分析:这道题可以转化成:N = Σ ai ,求LCM ( ai )有多少个不同的值.比如N ...

  8. HDU 4576 Robot(概率dp)

    题目 /*********************复制来的大致题意********************** 有N个数字,M个操作, 区间L, R. 然后问经过M个操作后落在[L, R]的概率. * ...

  9. HDU 5656 CA Loves GCD (数论DP)

    CA Loves GCD 题目链接: http://acm.hust.edu.cn/vjudge/contest/123316#problem/B Description CA is a fine c ...

随机推荐

  1. python_28_dictionary补充

    #update:合并两个字典,如果有交叉就覆盖更新,没有交叉的就创建 info={ 'stu1101':'Liu Guannan', 'stu1102':'Wang Ruipu', 'stu1103' ...

  2. ifup/ifdown ethX 和 ifconfig ehtX up/down的区别

    相同点:[启用]和[禁止]网卡 ifup  ethX 和 ifconfig  ethX  up               用来启用网卡设备 ifdown  ethX 和 ifconfig  ethX ...

  3. Linux环境下使用xampp配置php开发环境

    XAMPP (Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包.这个软件包原来的名字是LAMPP,但是为 了避免误 解,最新的几个版本就改名为 XAMPP 了.它可以在Win ...

  4. 01_14_Struts2_结果类型_result_type

    01_14_Struts2_结果类型_result_type 1. result类型 result类型 说明 dispatcher 默认服务端转发jsp chain 服务端action转发 redir ...

  5. Oracle 字符串处理函数

    字符串处理函数 ① substr(string,a,b)/substr(string,a) string 为字符串,string 表示需要截取的字符串. a.b 均为整型数字,a 表示开始截取的位置, ...

  6. java连接MySQL数据库操作步骤

    package com.swift; //这里导入的包是java.sql.Connection而不是com.mysql.jdbc.Connection import java.sql.Connecti ...

  7. iOS多播Delegate类——GCDMulticastDelegate用法小结

    iOS中通常的delegate模式只能有一个被委托的对象,这样当需要有多个被委托的对象时,实现起来就略为麻烦,在开源库XMPPFramework中提供了一个GCDMulticastDelegate类, ...

  8. POI Excel 插入新的行,下面的行动态移动

    在做Excel 模板时,会有遇到  模板行数不固定,如下图  需要在行次4下面再插入一行:注意:(插入的行如果是下面空白行,需要创建行) 解决方法是使用shifRows方法,第1个参数是指要开始插入的 ...

  9. restful api 规范

  10. C程序设计语言 -- 运算符优先级

    1. 运算符分类 算术运算符            [+, -,*, /, % , ++, --] 关系运算符             [>,  >=, <, <=] 相等性运 ...