Bzoj 2749: [HAOI2012]外星人 欧拉函数,数论,线性筛
2749: [HAOI2012]外星人
Time Limit: 3 Sec Memory Limit: 128 MB
Submit: 568 Solved: 302
[Submit][Status][Discuss]
Description
Input
Output
输出test行,每行一个整数,表示答案。
Sample Input
2
2 2
3 1
Sample Output
HINT
Test<=50 Pi<=10^5,1<=Q1<=10^9
Source
很好的一道题。
就是要求能phi出多少个2。。。
奇数时要加一(就是刚开始的时候变成偶数时要用一次。)
- #include<bits/stdc++.h>
- using namespace std;
- #define MAXN 100000
- #define LL long long
- int prime[],phi[MAXN+],tot,f[MAXN+];
- bool vis[MAXN+];
- int read()
- {
- int s=,fh=;char ch=getchar();
- while(ch<''||ch>''){if(ch=='-')fh=-;ch=getchar();}
- while(ch>=''&&ch<=''){s=s*+(ch-'');ch=getchar();}
- return s*fh;
- }
- void getEular()
- {
- int i,j;
- phi[]=;tot=;
- for(i=;i<=MAXN;i++)
- {
- if(vis[i]==false)
- {
- prime[++tot]=i;
- phi[i]=i-;
- }
- for(j=;j<=tot&&prime[j]*i<=MAXN;j++)
- {
- vis[prime[j]*i]=true;
- if(i%prime[j]==)
- {
- phi[prime[j]*i]=prime[j]*phi[i];
- break;
- }
- phi[prime[j]*i]=phi[prime[j]]*phi[i];
- }
- }
- }
- int main()
- {
- freopen("alien.in","r",stdin);
- freopen("alien.out","w",stdout);
- int T,i,m,p,q,n;
- bool flag;
- LL ans;
- T=read();
- getEular();
- memset(f,,sizeof(f));//f[i]代表i需要phi多少次才能化为1.(也就是等于能phi多少个2.)
- f[]=-;
- for(i=;i<=MAXN;i++)f[i]=f[phi[i]]+;
- f[]++;f[]++;
- while(T--)
- {
- m=read();ans=;
- flag=false;//判断奇数时要加一.
- for(i=;i<=m;i++)
- {
- p=read();q=read();
- if(p==)flag=true;
- ans+=(LL)f[p]*q;
- }
- if(flag==false)ans++;
- printf("%lld\n",ans);
- }
- fclose(stdin);
- fclose(stdout);
- return ;
- }
Bzoj 2749: [HAOI2012]外星人 欧拉函数,数论,线性筛的更多相关文章
- JZYZOJ1524 [haoi2012]外星人 欧拉函数
http://172.20.6.3/Problem_Show.asp?id=1524 大概可以算一个结论吧,欧拉函数在迭代的时候,每次迭代之后消去一个2,每个非2的质因子迭代一次又(相当于)生成一个2 ...
- BZOJ-2190 仪仗队 数论+欧拉函数(线性筛)
今天zky学长讲数论,上午水,舒爽的不行..后来下午直接while(true){懵逼:}死循全程懵逼....(可怕)Thinking Bear. 2190: [SDOI2008]仪仗队 Time Li ...
- BZOJ 2818: Gcd [欧拉函数 质数 线性筛]【学习笔记】
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 4436 Solved: 1957[Submit][Status][Discuss ...
- Poj 2478-Farey Sequence 欧拉函数,素数,线性筛
Farey Sequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14291 Accepted: 5647 D ...
- 洛谷UVA12995 Farey Sequence(欧拉函数,线性筛)
洛谷题目传送门 分数其实就是一个幌子,实际上就是求互质数对的个数(除开一个特例\((1,1)\)).因为保证了\(a<b\),所以我们把要求的东西拆开看,不就是\(\sum_{i=2}^n\ph ...
- 欧拉函数(线性筛)(超好Dong)
欧拉函数:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) . #include <bits/stdc++.h> using namespace std; cons ...
- BZOJ2186 [Sdoi2008]沙拉公主的困惑 【数论,欧拉函数,线性筛,乘法逆元】
2186: [Sdoi2008]沙拉公主的困惑 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 5003 Solved: 1725 [Submit] ...
- [bzoj2226][Spoj5971]LCMSum_欧拉函数_线性筛
LCMSum bzoj-2226 Spoj-5971 题目大意:求$\sum\limits_{i=1}^nlcm(i,n)$ 注释:$1\le n\le 10^6$,$1\le cases \le 3 ...
- 【BZOJ2749】【HAOI2012】外星人[欧拉函数]
外星人 Time Limit: 3 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description Input Output 输出te ...
随机推荐
- SCNU省选校赛第二场B题题解
今晚的校赛又告一段落啦,终于"开斋"了! AC了两题,还算是满意的,英语还是硬伤. 来看题目吧! B. Array time limit per test 2 seconds me ...
- ASP.NET缓存 Cache
缓存介绍 如果每次进入页面的时候都查询数据库生成页面内容的话,如果访问量非常大,则网站性能会非常差,而如果只有第一次访问的时候才查询数据库生成页面内容,以后都直接输出内容,则能提高系统性能,这样无论多 ...
- WPF页面跳转
WPF页面跳转有两种:一种是windows,另外一种是page 1:windows页面跳转windows 页面跳转相信学过winform编程的哥们都知道,先实例化该窗体然后show一下就可以了.eg ...
- oracle 查看表的定义
select t.table_name 表名, c.comments 字段名称, t.column_name 字段编码, t.data_type || '(' || to_char(t.data_le ...
- python【第二十篇】Django表的多对多、Ajax
1 创建多对多表的方式有两种 1.1 方式一:自定义关系表 class Host(models.Model): nid = models.AutoField(primary_key=True) hos ...
- NDK_ROOT找不到的解决方法 MACOS
只要在Eclipse上进行配置就行了,看图说话
- asp.net mvc 发送邮箱验证码
public ActionResult Index() { /*第一种,利用Google的smtp来发送邮件*/ SmtpClient client = ); Random Rdm = new Ran ...
- 在 IIS MIME 类型中添加 md 扩展名
最近在了解 Knowledge Base (知识库)的内容,对两个平台比较感兴趣,一个是 Raneto,一个是 MDwiki,两者都是使用md文件作为内容存储. 需要注意的是,使用IIS部署网站后,需 ...
- php自学笔记1
PHP(Personal Home Page的缩写,现已更名Hypertext Preprocessor“超文本预处理器”)静态web开发:html,内容一成不变动态web开发: php(Zend). ...
- App - 版本控制
/** 版本判断 ***/ NSString *versionKey = @"CFBundleVersion"; // 上一次使用版本号(存储在沙盒中的版本号) NSString ...