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

br>
0<=beginlevel<=maxlevel

/*
这道题的60分暴力分还是很良心的。
观察题目给出的式子,我们可以发现phi(x)一定是偶数,则每次变换都会产生一些2,由此可以推断最后的答案就是2的个数。
我们设f(x)为最终答案,g(x)为x的分解过程中产生的2的个数则可以得到以下式子:
g(x)=f(x)+1 (x是奇数)
g(x)=f(x) (x是偶数)
g(x)=g(phi(x))+1
g(p^q)=q*g(p-1)
那么就可以利用线性筛来解决这个问题
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define N 100010
#define lon long long
using namespace std;
int mark[N],prime[N],num,phi[N],g[N];
void get_prime(){
phi[]=;
for(int i=;i<N;i++){
if(!mark[i]) prime[++num]=i,phi[i]=i-;
for(int j=;j<=num&&prime[j]*i<N;j++){
mark[i*prime[j]]=;
if(i%prime[j]==){
phi[i*prime[j]]=phi[i]*prime[j];
break;
}
else phi[i*prime[j]]=phi[i]*(prime[j]-);
}
}
for(int i=;i<N;i++) g[i]=g[phi[i]]+;
}
int main(){
get_prime();
int T;scanf("%c",&T);
while(T--){
int m,flag=;lon ans=;
scanf("%c",&m);
for(int i=;i<=m;i++){
int p,q;scanf("%c%c",&p,&q);
if(p==){
flag=;
ans+=(lon)q;
}
else ans+=(lon)q*(lon)g[p-];
}
if(!flag) ans++;
cout<<ans<<endl;
}
return ;
}

外星人(bzoj 2749)的更多相关文章

  1. Bzoj 2749: [HAOI2012]外星人 欧拉函数,数论,线性筛

    2749: [HAOI2012]外星人 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 568  Solved: 302[Submit][Status][ ...

  2. 【BZOJ 2749】 2749: [HAOI2012]外星人 (数论-线性筛?类积性函数)

    2749: [HAOI2012]外星人 Description Input Output 输出test行,每行一个整数,表示答案. Sample Input 1 2 2 2 3 1 Sample Ou ...

  3. BZOJ 2749 HAOI 2012 外星人 数论 欧拉函数

    题意: 给出一个数,给出的形式是其分解质因数后,对应的质因数pi及其次数qi,问对这个数不停求phi,直至这个数变成1,需要多少次.(多组数据) 范围:pi <= 1e5,qi <= 1e ...

  4. bzoj 2749 - 外星人

    Description 给定一个数的标准分解\(N= \prod_{i=1}^n p_i^{q_i}\) 其中\(p_i \le 10^5, q_i \le 10^9\) 求最小的\(x\)使得\(\ ...

  5. BZOJ 2749 [HAOI2012]外星人

    题解:对每一个>2的质数分解,最后统计2的个数 注意:如果一开始没有2则ans需+1,因为第一次求phi的时候并没有消耗2 WA了好几遍 #include<iostream> #in ...

  6. bzoj 2749 杂题

    我们可以发现,phi(x)与x相比,相当于x的每个质因子-1后再分解质因数,添加到现有的质因子中,比如质因子13相当于将13变成12,然后分解成2*2*3,再将2的质数+2,3的指数+1,除了质因子2 ...

  7. 【bzoj2749】[HAOI2012]外星人

    2749: [HAOI2012]外星人 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 677  Solved: 360[Submit][Status][ ...

  8. 2749: [HAOI2012]外星人

    首先像我一样把柿子画出来或者看下hint 你就会发现其实是多了个p-1这样的东东 然后除非是2他们都是偶数,而2就直接到0了 算一下2出现的次数就好 #include<cstdio> #i ...

  9. BZOJ2749: [HAOI2012]外星人

    2749: [HAOI2012]外星人 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 377  Solved: 199[Submit][Status] ...

随机推荐

  1. VIM+ctags+cscope用法

    使用vim + cscope/ctags,就能够实现Source Insight的功能,可以很方便地查看分析源代码.   关键词: vim, cscope, ctags, tags   1. 查看vi ...

  2. SSL免费证书申请以及nginx配置https流程记录

    设置https需要ssl 证书,可以通过FreeSSL[https://freessl.org/]申请. 流程记录: 输入域名,如 http://www.youdias.xin 选择品牌,如Let's ...

  3. destoon去除编辑器替换图片删除原图功能,删除信息删除相关图片功能

    去除这些功能会造成大量垃圾图片,但是客户存在大量复制内容,其中图片一样,为了防止客户替换其中一个图片或者删除信息 造成其他复制信息图片丢失 去除文章模型级联图片功能. 对应模块class.php se ...

  4. paper:synthesizable finit state machine design techniques using the new systemverilog 3.0 enhancements之fsm1各种style的timing/area比较

    整体说,一般还是用2段式,再加上output encodecd/default -X技巧.

  5. java的重载(overload) (2013-10-11-163 写的日志迁移

    有以下几点: 1.方法名相同. 2.方法的 参数类型.个数.顺序至少有一项不同. 3.方法的返回类型可以不同. 4.方法的修饰符可以不同. 5.仅返回类型和修饰符不同也不可以构成重载.   ----- ...

  6. 图解Disruptor框架(二):核心概念

    图解Disruptor框架(二):核心概念 概述 上一个章节简单的介绍了了下Disruptor,这节就是要好好的理清楚Disruptor中的核心的概念.并且会给出个HelloWorld的小例子. 在正 ...

  7. 收集的有关mdk 3的使用方法

      收集来自网络上的有关mdk3的一些使用方法以及技巧(持续更新) b beacon泛洪攻击 -f 指定wifi名称的文件夹 -n 加上wifi名称 -w Fake WEP encrypted sta ...

  8. selection problem-divide and conquer

    思路: 随机选取列表中的一个值v,然后将列表分为小于v的,等于v的,大于v的三组.对于k<=left.size()时, 在left中执行selection:落在中间的,返回v:k>left ...

  9. python模块之sys

    sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxi ...

  10. Linux压缩与归档

    文件的压缩     aaaaaabbbbccc压缩成为6a4b3c     压缩工具:     gzip/gunzip: .gz后缀         只能压缩文件,不能压缩目录,因其不具备归档功能   ...