博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 2749 - 外星人
阅读量:5354 次
发布时间:2019-06-15

本文共 1543 字,大约阅读时间需要 5 分钟。

Description

给定一个数的标准分解\(N= \prod_{i=1}^n p_i^{q_i}\)

其中\(p_i \le 10^5, q_i \le 10^9\)

求最小的\(x\)使得\(\varphi^x(N) = 1\) 即求这个数进行多少次\(\varphi\)后得到1

Analysis

\(\varphi\)的性质还是经常与2有关的

比若说任意\(\varphi\)两次就一定会除掉一个因子2

所以\(\varphi\)的次数为\(O(\log)\)

此题就是利用类似这样的性质

\(\varphi\)的次数为只与过程中\(2\)的总数有关

(1) 如果存在\(2\), 每次只能恰好消掉一个

(2) 对于一个奇质数因子, \(\varphi\)以下会产生至少一个\(2\), 以及若干个新的奇质数

(3) 只要奇质数还存在, 该回合内就会产生至少一个2

(4) 消完\(2\)需要的次数\(=\)因此\(2\)产生的次数 \(\ge\) 进行的回合数

(5) 最后会剩下\(2^q\), 恰好\(q\)步消完

于是我们之用求出产生2的次数即可,设为 \(f(n)\)

\(f(2)=1\)

\(f(奇质数) = f(奇质数-1)\)

\(f(pq) = f(p) + f(q)\)

特别的当\(N\)不含2因子时, 需要一步来产生2, 然后2才开始不断的消, 所以答案+1

Code

#include 
#include
#include
#include
#include
#include
#define rep(i,a,b) for (int i = (a); i <= (b); ++i)using namespace std;const int M = 1e5 + 7;typedef long long LL;inline int ri(){ int x = 0; bool f = 1; char c = getchar(); for (; !isdigit(c); c = getchar()) if (c == '-') f = 0; for (; isdigit(c); c = getchar()) x = x*10+c-48; return f ? x : -x;}int tcas, n;int prime[M], cnt;bool notprime[M];int f[M];void init(){ notprime[1] = 1; for (int i=2; i
= M) break; int t = prime[j] * i; notprime[t] = 1; f[t] = f[i] + f[prime[j]]; if (i % prime[j] == 0) break; } }}int main(){ tcas = ri(); init(); while (tcas--){ n = ri(); LL ans = 0, havtwo = 0; rep (i, 1, n){ int x = ri(), y = ri(); ans += 1LL * f[x] * y; havtwo |= (x == 2); } if (!havtwo) ans++; printf("%lld\n", ans); } return 0;}

转载于:https://www.cnblogs.com/acha/p/7522910.html

你可能感兴趣的文章
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>
迷宫问题
查看>>
【FZSZ2017暑假提高组Day9】猜数游戏(number)
查看>>
泛型子类_属性类型_重写方法类型
查看>>
对闭包的理解
查看>>
练习10-1 使用递归函数计算1到n之和(10 分
查看>>
Oracle MySQL yaSSL 不明细节缓冲区溢出漏洞2
查看>>
Code Snippet
查看>>
zoj 1232 Adventure of Super Mario
查看>>
组合数学 UVa 11538 Chess Queen
查看>>
oracle job
查看>>
Redis常用命令
查看>>
[转载]电脑小绝技
查看>>
windos系统定时执行批处理文件(bat文件)
查看>>