[ NOI 2002 ] Robot
\(\\\)
Description


\(\\\)
Solution
垃圾语文题毁我青春
这题其实就是重定义了俩函数....
首先 \(\varphi(1)=0\) 。
然后 \(2\) 在计算 \(\mu\) 的时候不算做质因子,含 \(2\) 的数 \(\mu\) 值 \(=0\) 。
求 \(m\) 的所有因数中 , \(\mu=1,-1,0\) 的 \(\varphi\) 值之和。
\(\\\)
先考虑 \(\mu=1,-1\) 的答案。
根据 \(\mu\) 的定义,此时所有所求的数字都满足,分解质因数每一个质因数的质数至多为 \(1\) 。
然后 **仅对于这些数 ** 欧拉函数就有了一个新的计算公式:
\]
发现这是一个质数集合选哪些的问题。
注意到每次多选一个质数,所有的数字答案都乘上了相同的数,所以可以直接求答案。
用一种类似动规的写法,依次考虑每一个位置选或不选。
记\(ans_1\)表示选奇数个质因子,\(ans_2\) 表示选偶数个质因子的答案。
\]
可以思考一下加号连接的含义。
\(\\\)
然后就只需要解决 \(\mu=0\) 的部分了。
关于欧拉函数其实有一个等式
\]
然后问题解决,答案就是 \(m-ans_1-ans_2-1\),之所以多减掉一个 \(1\) 是因为 \(\varphi(1)=0\) 。
\(\\\)
Code
#include<cmath>
#include<cstdio>
#include<cctype>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define mod 10000
#define R register
#define gc getchar
using namespace std;
inline int rd(){
int x=0; bool f=0; char c=gc();
while(!isdigit(c)){if(c=='-')f=1;c=gc();}
while(isdigit(c)){x=(x<<1)+(x<<3)+(c^48);c=gc();}
return f?-x:x;
}
inline int qpow(int x,int t){
int res=1;
while(t){
if(t&1) (res*=x)%=mod;
(x*=x)%=mod; t>>=1;
}
return res;
}
int n,m=1,p,cnt,tmp,ansodd,anseven=1;
int main(){
int n=rd();
for(R int i=1;i<=n;++i){
p=rd(); cnt=rd();
(m*=qpow(p,cnt))%=mod;
if(p>2){
tmp=ansodd;
(ansodd+=anseven*(p-1))%=mod;
(anseven+=tmp*(p-1))%=mod;
}
}
printf("%d\n%d\n%d\n",(anseven-1+mod)%mod,ansodd,((m-anseven-ansodd)%mod+mod)%mod);
return 0;
}
[ NOI 2002 ] Robot的更多相关文章
- NOI 2002 荒岛野人
人生第一次做NOI的题祭!!! 大概是NOI最简单的一道题 克里特岛以野人群居而著称.岛上有排列成环行的M个山洞.这些山洞顺时针编号为1,2,…,M.岛上住着N个野人,一开始依次住在山洞C1,C2,… ...
- NOI 2002 营业额统计 (splay or fhq treap)
Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每 ...
- 【BZOJ】1407 NOI 2002 荒岛野人Savage
拓展欧几里得入门题 两个野人若要走到同一个洞穴,设他们走了x步,则p[i]*x+c[i]≡p[j]*x+c[j](mod ans),ans即答案: 移项得到(p[i]-p[j])*X+ansY=c[j ...
- NOI 2002 贪吃的九头龙
树形dp #include<bits/stdc++.h> #define N 305 using namespace std; struct LEB{ int to,nxt,w; }e[N ...
- [ NOI 2002 ] 银河英雄传说
\(\\\) Description 有 \(n\) 列战场,每一列一开始只有一个战舰,编号就是对应的战场编号. 有 \(m\) 次操作: \(M_{i,j}\) :把 \(i\) 所在的一整列接在 ...
- [NOI 2002] 银河英雄传说 (带权并查集)
题目描述 公元五八○一年,地球居民迁至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争.泰山压顶 ...
- 【NOI 2002】 银河英雄传说
[题目链接] https://www.luogu.org/problemnew/show/P1196 [算法] 并查集 [代码] #include<bits/stdc++.h> using ...
- 【NOI 2002 银河英雄传说】【带权并查集】
题面 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集*在巴米利恩星域爆发战争.泰山压顶集 ...
- Vijos 1523 贪吃的九头龙 【树形DP】
贪吃的九头龙 背景 安徽省芜湖市第二十七中学测试题 NOI 2002 贪吃的九头龙(dragon) Description:OfficialData:OfficialProgram:Converted ...
随机推荐
- 使用Post方法模拟登陆爬取网页(转)
使用Post方法模拟登陆爬取网页 最近弄爬虫,遇到的一个问题就是如何使用post方法模拟登陆爬取网页.下面是极简版的代码: import java.io.BufferedReader; impor ...
- 电脑无线WIFI怎么共享给手机
点屏幕右下角的那个小电脑(网络)标志,里面有打开网络和共享中. 选左上角管理无线网络——选择添加. 选择创建临时网络——点击下一步——输入网络名称. 安全类型选择WEP——安全密钥为10位数字——然后 ...
- JAVA 小程序之ATM
一个JAVA的小程序,主要要求有模块化编程的思想,能够把ATM中各个功能独立成为一个一个的方法. ATM主要功能有: 查询余额: 取款: 存款: 修改密码: 退出. 以上功能均由独立的方法给出,具体实 ...
- NA路由①
Cisco设备的端口: 在Cisco的路由器上都有一个带外网管口(Console/AUX): Con口主要用于本地的con线进行本地网管: AUX口主要与Modem连接通过固话 ...
- 用vhd挂载并安装win7且建立分差vhd
准备:硬盘分区激活第一个分区; imagex.exe; install.wim; winpe boot pc 1.cmd命令下,创建主vhd (1)diskpart (打开dis ...
- 《转》 Ceilometer项目源代码分析----ceilometer项目源代码结构分析
感谢朋友支持本博客,欢迎共同探讨交流.因为能力和时间有限,错误之处在所难免,欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/gaoxingnengjisua ...
- 划分问题(dp)
给出一个整数集合 , 将这个集合分成2个 和相等的集合. 思路就是 总和的一半作为一个目标容量,在集合中寻找能否够有元素的和恰好为这个目标容量,也就转化为一个类似01背包问题. 这篇文章讲的比較具 ...
- Android之——jni通用工具方法
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47002207 1.将java字符串转化为c++字符串 /** *工具方法 *将ja ...
- BestCoder Round #56 /hdu5464 dp
Clarke and problem 问题描述 克拉克是一名人格分裂患者.某一天,克拉克分裂成了一个学生,在做题. 突然一道难题难到了克拉克,这道题是这样的: 给你nn个数,要求选一些数(可以不选), ...
- lvm调整分区大小
1 问题 /home分区占用空间比较大,而/var分区比较小,它们位于同一个磁盘上.该系统安装了lvm. 2 减少/home分区空间 2.1 卸载/home umount /home 2.2 检查文件 ...