外星人(bzoj 2749)
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)的更多相关文章
- Bzoj 2749: [HAOI2012]外星人 欧拉函数,数论,线性筛
2749: [HAOI2012]外星人 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 568 Solved: 302[Submit][Status][ ...
- 【BZOJ 2749】 2749: [HAOI2012]外星人 (数论-线性筛?类积性函数)
2749: [HAOI2012]外星人 Description Input Output 输出test行,每行一个整数,表示答案. Sample Input 1 2 2 2 3 1 Sample Ou ...
- BZOJ 2749 HAOI 2012 外星人 数论 欧拉函数
题意: 给出一个数,给出的形式是其分解质因数后,对应的质因数pi及其次数qi,问对这个数不停求phi,直至这个数变成1,需要多少次.(多组数据) 范围:pi <= 1e5,qi <= 1e ...
- bzoj 2749 - 外星人
Description 给定一个数的标准分解\(N= \prod_{i=1}^n p_i^{q_i}\) 其中\(p_i \le 10^5, q_i \le 10^9\) 求最小的\(x\)使得\(\ ...
- BZOJ 2749 [HAOI2012]外星人
题解:对每一个>2的质数分解,最后统计2的个数 注意:如果一开始没有2则ans需+1,因为第一次求phi的时候并没有消耗2 WA了好几遍 #include<iostream> #in ...
- bzoj 2749 杂题
我们可以发现,phi(x)与x相比,相当于x的每个质因子-1后再分解质因数,添加到现有的质因子中,比如质因子13相当于将13变成12,然后分解成2*2*3,再将2的质数+2,3的指数+1,除了质因子2 ...
- 【bzoj2749】[HAOI2012]外星人
2749: [HAOI2012]外星人 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 677 Solved: 360[Submit][Status][ ...
- 2749: [HAOI2012]外星人
首先像我一样把柿子画出来或者看下hint 你就会发现其实是多了个p-1这样的东东 然后除非是2他们都是偶数,而2就直接到0了 算一下2出现的次数就好 #include<cstdio> #i ...
- BZOJ2749: [HAOI2012]外星人
2749: [HAOI2012]外星人 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 377 Solved: 199[Submit][Status] ...
随机推荐
- 《毛毛虫组》【Alpha】Scrum meeting 1
第一天 日期:2019/6/14 1.1 今日完成任务情况以及遇到的问题. 今日完成任务情况: (1)根据数据库设计时的E-R图将创建的表进行检查确保功能的正确实现. (2)进行公共类的设计,设计出程 ...
- JavaScript中数组的使用
---恢复内容开始--- 创建数组 1,通过 var arr1 = [1,2,3] 2通过使用 var arr2 = new Array(1,2,3) 在这里创造的数组实际上都是一个对象,然后把对象的 ...
- Git下的gitignore规则介绍
匹配模式前/代表项目根目录 匹配模式最后加/代表是目录 匹配模式前加!代表取反 (忽略文件夹,但不忽略文件夹下的某个文件) *代表任意个字符 ? 匹配任意一个字符 **匹配多级目录 node_modu ...
- 【markdown】图片的处理
1st: ![tip](link) 2ed: ![tip][id] [id]:base64string 本地图片 先把本地图片文件转换成base64位编码 然后把 link 替换成生成的base64编 ...
- 爬虫制作入门学习笔记2:[转]python爬虫实例项目大全
WechatSogou [1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. DouBanSpider [2]- ...
- perl-basic-数据类型&引用
我觉得这一系列的标题应该是:PERL,从入门到放弃 USE IT OR U WILL LOSE IT 参考资料: https://qntm.org/files/perl/perl.html 在线per ...
- LeetCode(234) Palindrome Linked List
题目 Given a singly linked list, determine if it is a palindrome. Follow up: Could you do it in O(n) t ...
- HDU:2255-奔小康赚大钱(KM算法模板)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2255 奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others) Mem ...
- UVa 10655 Contemplation! Algebra 矩阵快速幂
题意: 给出\(p=a+b\)和\(q=ab\),求\(a^n+b^n\). 分析: 这种题目关键还是在于构造矩阵: \(\begin{bmatrix} 0 & 1 \\ -(a+b) &am ...
- 在win2003下apache2.2无法加载php5apache2_4.dll
昨天在一台win2003的服务器上配置apache和PHP, 我在apache的配置文件httpd.conf里添加 LoadModule php5_module "D:/php-5.4.23 ...