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
.gif.bmp)
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 ...
随机推荐
- Linux命令——监视相关
1.netstat 用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Membershi ...
- 检查mysql数据库是否存在坏表脚本
#!/bin/bash #此脚本的主要用途是检测mysql服务器上所有的db或者单独db中的坏表 #变量说明 pass mysql账户口令 name mysql账号名称 data_path mysql ...
- PHP 文字,图片水印,缩略图,裁切成小图(大小变小)
文字水印基本思路:1.用getimagesize()获取图片的信息(as:大小,属性等):2.根据图片信息用imagecreatefromjpeg ()/imagecreatefromgif/imag ...
- 响应式页面字体用什么单位:rem
html:62.5%//10pxbody:1.4rem;//14px... <!doctype html> <html> <head> <title>a ...
- 操作系统和Python的发展历程
一:操作系统的发展历史: 操作系统:什么是操作系统?我们首先想到的是电脑,,也就是所谓的Windows8,Windows7,或者XP系统和Windows10,当然也包括我们手机的安卓系统或者IPhon ...
- Ubuntu启动项设置——之update-rc.d 命令使用
http://blog.csdn.net/typ2004/article/details/38712887 apache2.nginx.redis这些服务安装之后,会随开机启动,当这些服务并不需要时, ...
- Swift(二,元组,可选类型,类型转化)
一,首先,元组是Swift中特有的,OC中没有元组相关类型,具体怎么用,看下面的例子吧 //1.使用元组来定义一组数据 let infoTuple = (,1.8) let nameTuple = i ...
- shell脚本学习积累笔记(第一篇)
(1)首先,今天在执行shell脚本./test.sh时抛出“/bin/sh^M: bad interpreter: No such file or directory”的异常,百度后,才知道这是由于 ...
- 排名第一、第二的OCR软件
排名第一.第二的OCR软件 第一:ABBYY FineReader OCR世界排名第一,在俄罗斯获国际科技大奖奖超过卡巴斯基! 不仅仅只是文字识别,还能表格识别,版面还原,字体识别,文档结构 ...
- Ubuntu 14.04安装Chromium浏览器并添加Flash插件Pepper Flas
转自Ubuntu 14.04安装Chromium浏览器并添加Flash插件Pepper Flash Player Chromium谷歌的开源浏览器将不再支持Netscape浏览器插件API,Adobe ...