jzoj1161-机器人M号【欧拉函数,dp】

正题


大意

因为题目比较gou,所以就直接放题目了

机器人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的余数。


解题思路

首先一个机器人m的独立数是φ(m)\varphi(m)φ(m)而老师的数量就是他的因数数量-2,然后把M分解为
p1e1×p2e2×p3e3...×pkekp1^{e1}\times p2^{e2}\times p3^{e3}...\times pk^{ek}p1e1×p2e2×p3e3...×pkek
然后
φ(m)=p1e1×p2e2...×pkek×(1−1p1)×(1−1p2)...×(1−1pk)\varphi(m)=p1^{e1}\times p2^{e2}...\times pk^{ek}\times (1-\frac{1}{p1})\times (1-\frac{1}{p2})...\times (1-\frac{1}{pk})φ(m)=p1e1×p2e2...×pkek×(1p11)×(1p21)...×(1pk1)
之后
φ(m)=(p1−1)p1e1−1×(p2−1)p2e2−1...×(pk−1)pkek−1\varphi(m)=(p1-1)p1^{e1-1}\times (p2-1)p2^{e2-1}...\times (pk-1)pk^{ek-1}φ(m)=(p11)p1e11×(p21)p2e21...×(pk1)pkek1
然后我们就可以发现政客的独立数就是在M的奇质因数中选择偶数个不同的乘起来的欧拉函数,军人就是选奇数个。然后学者就是M所以的独立数减去政客和军人。
选数我们可以用dp
f[imod2][0]f[i\ mod\ 2][0]f[i mod 2][0]表示在M因子中只包含前i个的政客的欧拉函数
f[imod2][1]f[i\ mod\ 2][1]f[i mod 2][1]表示在M因子中只包含前i个的政客的欧拉函数
然后进行动态转移
f[imod2][0]=f[(i+1)mod2][0]+f[(i+1)mod2][1]∗(p−1)f[i\ mod\ 2][0]=f[(i+1)\ mod\ 2][0]+f[(i+1)\ mod\ 2][1]*(p-1)f[i mod 2][0]=f[(i+1) mod 2][0]+f[(i+1) mod 2][1](p1)
f[imod2][1]=f[(i+1)mod2][1]+f[(i+1)mod2][0]∗(p−1)f[i\ mod\ 2][1]=f[(i+1)\ mod\ 2][1]+f[(i+1)\ mod\ 2][0]*(p-1)f[i mod 2][1]=f[(i+1) mod 2][1]+f[(i+1) mod 2][0](p1)
最后计算φ(m)\varphi(m)φ(m)减去最后的政客独立数总和和军人独立数总和


代码

#include<cstdio>
#define mods 10000
using namespace std;
int n,p,e,f[2][2],m=1;
int ksm(int x,int k)//快速幂
{int ans=1;while (k){if (k&1) ans=(ans*x)%mods;x=x*x%mods;k/=2;}return ans;
}
int main()
{scanf("%d",&n);scanf("%d%d",&p,&e);m=m*ksm(p,e)%mods;if (p==2) f[1][0]=1;else{f[0][0]=1;f[1][0]=(f[0][0]+f[0][1]*(p-1)%mods)%mods;f[1][1]=(f[0][1]+f[0][0]*(p-1)%mods)%mods;}//初始化(sro xjqのdalao orz)for (int i=2;i<=n;i++){scanf("%d%d",&p,&e);m=m*ksm(p,e)%mods;f[i&1][0]=(f[~-i&1][0]+f[~-i&1][1]*(p-1)%mods)%mods;f[i&1][1]=(f[~-i&1][1]+f[~-i&1][0]*(p-1)%mods)%mods;//动态转移}f[n&1][0]--;m=((m-1-f[n&1][0]-f[n&1][1])%mods+mods)%mods;//计算学者printf("%d\n%d\n%d",f[n&1][0],f[n&1][1],m);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324114.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

张老师讲Python~

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号【雄雄的小课堂】。最近我的个人站上线啦&#xff0c;欢迎大家访问http://穆雄雄.com&#xff1b;或者点击文末的“阅读原文”。昨天下午靳老师分享了关于网站部署的内容&#xff0c;今天下午请张炜林上去分享了下他准…

Entity Framework Core 2.0 新特性

一.模型级查询过滤器&#xff08;Model-level query filters&#xff09; ef core2.0包含了一个新特性&#xff0c;我们叫他模型级查询过滤器&#xff08;Model-level query filters&#xff09;。此特性允许使用Linq查询表达式直接定义在实体类型的元数据模型上。这样的过滤器…

SpringCache与Redis

文章目录SpringCache简介常⽤注解Cacheable自定义CacheManager配置和过期时间自定义缓存KeyGenerator常用注解CachePut 和 CacheEvict多注解组合CachingSpringCache简介 ⽂档&#xff1a;https://spring.io/guides/gs/caching/ ⾃Spring 3.1起&#xff0c;提供了类似于Transact…

激动的时刻,终于成啦~

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号&#xff1a;【雄雄的小课堂】。今天&#xff0c;最令我激动的一件事莫过于倾注一周精力的“在线测试”终于可以投入使用了&#xff0c;周二发过一篇文章&#xff0c;是关于在线测试的问题总结&#xff0c;也就是在周二&a…

C#使用Xamarin开发可移植移动应用(4.进阶篇MVVM双向绑定和命令绑定)附源码

今天的学习内容? 今天我们讲讲Xamarin中的MVVM双向绑定,嗯..需要有一定的MVVM基础.,具体什么是MVVM - -,请百度,我就不多讲了 效果如下: 正文 1.简单的入门Demo 这个时间的功能很简单,就是一个时间的动态显示. 我们首先创建一个基础的页面如下: <?xml version"…

由「Metaspace容量不足触发CMS GC」从而引发的思考

转载自 由「Metaspace容量不足触发CMS GC」从而引发的思考 某天早上&#xff0c;毛老师在群里问「cat 上怎么看 gc」。 好好的一个群 看到有 GC 的问题&#xff0c;立马做出小鸡搓手状。 之后毛老师发来一张图。 老年代内存占用情况 图片展示了老年代内存占用情况。 第一个…

P1040,jzoj1167-加分二叉树【树形dp】

前言 没有SPJ坑了我好久qwq 正题 测试连接&#xff1a;https://www.luogu.org/recordnew/lists?uid52918&pidP1040 大意 一颗二叉树的中序遍历是1,2,3...n−2,n−1,n1,2,3...n−2,n−1,n然后给出每个点的值aiai&#xff0c;每个点的分数是 sislsonsrsonaisislsonsrsona…

是现在的钱不值钱还是药太贵!

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号【雄雄的小课堂】。莫名其妙的就感觉身体不舒服&#xff0c;然后越来越严重&#xff0c;打小以来还是第一次遇见这样的&#xff0c;你说是感冒吧&#xff0c;它也不流鼻涕&#xff0c;喉咙也不痛&#xff0c;鼻子也通…

P3951,jzoj5473-小凯的疑惑【数论】(NOIP2017提高组)

#正题 评测记录&#xff1a; https://www.luogu.org/recordnew/show/8283818 大意 两个币值&#xff08;互质正整数&#xff09;&#xff0c;求不能完全&#xff08;需要找零&#xff09;的最贵的东西。 解题思路 首先众所周知axbyc而且a和b互质的正整数&#xff0c;c为正整数…

一次堆外内存泄露的排查过程

转载自 一次堆外内存泄露的排查过程 最近在做一个基于 websocket 的长连中间件&#xff0c;服务端使用实现了 socket.io 协议&#xff08;基于websocket协议&#xff0c;提供长轮询降级能力&#xff09; 的 netty-socketio 框架&#xff0c;该框架为 netty 实现&#xff0c;鉴…

.NET Core 2.0 特性介绍和使用指南

前言 这一篇会比较长&#xff0c;介绍了.NET Core 2.0新特性、工具支持及系统生态&#xff0c;现状及未来计划&#xff0c;可以作为一门技术的概述来读&#xff0c;也可以作为学习路径、提纲来用。 对于.NET Core 2.0的发布介绍&#xff0c;围绕2.0的架构体系&#xff0c;我想…

Lombok MyBatisX

Lombok的使用 [1] 什么是LomBok lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具&#xff0c;简单来说&#xff0c;比如我们新建了一个类&#xff0c;然后在其中写了几个属性&#xff0c;然后通常情况下我们需要手动去建立g…

希望尽快好起来吧~

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。莫名其妙的生病&#xff0c;每天睡觉之前都在祷告&#xff0c;睡一觉明天早上就好了&#xff0c;结果第二天非但没有好&#xff0c;反而还加重了。买的药吃了也无济于事&#xff0c;还渐渐的开始发烧……

2018/7/9-纪中某B组题【jzoj1503,jzoj1158,jzoj1161】

正题 T1&#xff1a;jzoj1503-体育场【带权并查集】 博客链接&#xff1a;https://blog.csdn.net/mr_wuyongcong/article/details/80969720 T2&#xff1a;jzoj1158-荒岛野人【扩欧,gcd,同余方程】 博客链接&#xff1a;https://blog.csdn.net/mr_wuyongcong/article/details…

一次堆外OOM问题的排查过程

转载自 一次堆外OOM问题的排查过程 背景 线上服务有一台机器访问不通&#xff08;一个管理平台),在公司的服务治理平台上查看服务的状况是正常的&#xff0c;说明进程还在。进程并没有完全crash掉。去线上查看机器日志&#xff0c;发现了大量的OOM异常: 017-03-15 00:00:0…

Azure与Scott Guthrie:Azure安全中心和基于角色的访问控制

InfoQ有幸采访了Microsoft执行副总裁Scott Guthrie&#xff0c;请他谈了谈Azure以及他最近的Red Shirt Dev Tours&#xff08;红杉开发之旅&#xff09;【译注1】。昨天我们谈到了Azure提供了自定义仪表盘的功能&#xff0c;它能够使得开发者创建自定义工作任务流程&#xff0c…

什么时候才能都及格呢?

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。今天是周五&#xff0c;又到了周测的时候了&#xff0c;发现现在考试&#xff0c;学生们的抵触情绪不会那么强烈了&#xff0c;以前只要一说啥时啥时考试&#xff0c;下面一片哀嚎声&#xff0c;各种不…

MyBatisPlus(基于starter和Bean方式)

文章目录基于boot-starter方式基于Bean方式基于boot-starter方式 1、【microboot项目】修改配置文件&#xff0c;引入所需要的相关依赖库: dependences.gradle ext.versions [ // 定义所有要使用的版本号springboot : 2.4.3, // SpringBoot版本…

jzoj1013-GCD与LCM【数论】

正题 大意 给出某对数a,b的gcd和lcm&#xff0c;然后求b-a的最小值 解题思路 我们定义A为gcd(a,b)gcd(a,b)&#xff0c;B为lcm(a.b)lcm(a.b)首先我们拿出推lcm的公式 Bab/ABab/A然后移项得 abAB(A≤a,b≤B)abAB(A≤a,b≤B)之后我们就可以枚举了。首先因为只有AA的倍数gcd(a,…

解决Visual Studio For Mac Restore失败的问题

之前就了解到微软出了mac版的VS&#xff0c;没太多的关注&#xff0c;自己也就是使用 DotNet Core SDK VS Code 做一些小demo。 前两天发布了DotNet Core 2.0 &#xff0c;Visual Studio For Mac 7.1 之后&#xff0c;感觉可以装起来用用&#xff0c;把win下面的项目转到Core…