【HAOI2012】外星人】的更多相关文章

2749: [HAOI2012]外星人 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 568  Solved: 302[Submit][Status][Discuss] Description Input Output 输出test行,每行一个整数,表示答案. Sample Input 1 2 2 2 3 1 Sample Output 3 HINT Test<=50 Pi<=10^5,1<=Q1<=10^9 Source 很好的一道…
2749: [HAOI2012]外星人 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 377  Solved: 199[Submit][Status] Description   Input   Output 输出test行,每行一个整数,表示答案. Sample Input 122 23 1 Sample Output 3 HINT Test<=50 Pi<=10^5,1<=Q1<=10^9 Source 题解: 终于把这题搞掉了.…
2749: [HAOI2012]外星人 Description Input Output 输出test行,每行一个整数,表示答案. Sample Input 1 2 2 2 3 1 Sample Output 3 HINT Test<=50 Pi<=10^5,1<=Q1<=10^9 Source [分析] 额,一开始还看不懂题目..phi的x表示phi的x阶函数,即phi[phi[phi[...phi[N]]]]],x个phi... 然后不会做... 我们先来熟悉一下欧拉函数 2-…
2749: [HAOI2012]外星人 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 677  Solved: 360[Submit][Status][Discuss] Description Input Output 输出test行,每行一个整数,表示答案. Sample Input 1 2 2 2 3 1 Sample Output 3       [题解]   注意到只有phi[2]=1,所以每个数最终都是要经过phi[2]=1这一步变为1…
不妨把求φ抽象成把将每个位置上的一个小球左移一格并分裂的过程,那么即求所有球都被移到1号格子的步数. 显然要达到1必须先到达2.可以发现每次分裂一定会分裂出2号位的球,因为2以外的质数一定是奇数.以及,每次移动至多将一个2号位的球移至1号位. 于是我们只要数出每个位置能将几个球分裂至2号位就可以了.注意初始时若2号位没有球答案要+1. 这个数数可以用线性筛搞定.n为质数则有f[n]=f[n-1],否则有f[n]=f[prime]+f[n/prime]. (挤进bzoj前1k了www #inclu…
题目大意: 告诉你一个数n,求满足φ^x(n)=1的x. 思路: 首先我们可以发现满足φ(n)=1的数只有2,也就是说你得到最终的结果,最后一步肯定是φ(2). 同时,可以发现φ(φ(2^k))=φ(2^(k-1)),因为1~2^k中间有且仅有奇数与2^k互质,个数是2^(k-1)个. φ是个积性函数,也就是说φ(n)=φ(p1^q1)*φ(p2^q2)*...*φ(pm^qm). 对于只有一种质因数的n, φ(n)=φ(p^q)=p^q*(1-1/p)=(p-1)*(p^q-1). 因此我们可…
http://172.20.6.3/Problem_Show.asp?id=1524 大概可以算一个结论吧,欧拉函数在迭代的时候,每次迭代之后消去一个2,每个非2的质因子迭代一次又(相当于)生成一个2(质因子-1变成2的倍数),所以统计总共能生成的2的个数即可. 生成的2的个数可以线性筛求出,x为质数时x中2的个数=x-1中2的个数,x不为质数时其中2的个数为其分为任意两因子后这两因子中2的个数相加(因为同一个质数拆解出2的个数不因其指数改变,所有质因数无论指数为多少其每个出现都需要拆解,质数的…
题目链接 还是本宝宝写题解的一贯习惯 $ :$ 先吐槽吐槽这道题$……$ 相信不少同学第一眼一定没有看懂题.(因为我也没看懂) ~~初中~~数学知识: 对于函数 $ f(x)$ 有 $f^{-1}(x)$ 为该函数的反函数. 而当 $ n∈N^{*} $ 时, $f^{n}(x)$ 表示$f(x)$ 的 $n$阶导数. 于是本宝宝看到这题后~~一脸懵逼~~炸了: 喵 $ ?$ $ $ $ !$  出题人您来告诉我欧拉函数怎么求导$ !$ $ $ $ !$ $ $ $ !$ 看一眼题解,才知道$……
首先像我一样把柿子画出来或者看下hint 你就会发现其实是多了个p-1这样的东东 然后除非是2他们都是偶数,而2就直接到0了 算一下2出现的次数就好 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using namespace std; typedef long lo…
题解:对每一个>2的质数分解,最后统计2的个数 注意:如果一开始没有2则ans需+1,因为第一次求phi的时候并没有消耗2 WA了好几遍 #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int u=200000; int T; int m; long long ans; long long a[u+10]; void Div(int n,long lo…