2749: [HAOI2012]外星人

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 568  Solved: 302
[Submit][Status][Discuss]

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

Source

很好的一道题。

就是要求能phi出多少个2。。。

奇数时要加一(就是刚开始的时候变成偶数时要用一次。)

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define MAXN 100000
 4 #define LL long long
 5 int prime[10010],phi[MAXN+10],tot,f[MAXN+10];
 6 bool vis[MAXN+10];
 7 int read()
 8 {
 9     int s=0,fh=1;char ch=getchar();
10     while(ch<'0'||ch>'9'){if(ch=='-')fh=-1;ch=getchar();}
11     while(ch>='0'&&ch<='9'){s=s*10+(ch-'0');ch=getchar();}
12     return s*fh;
13 }
14 void getEular()
15 {
16     int i,j;
17     phi[1]=1;tot=0;
18     for(i=2;i<=MAXN;i++)
19     {
20         if(vis[i]==false)
21         {
22             prime[++tot]=i;
23             phi[i]=i-1;
24         }
25         for(j=1;j<=tot&&prime[j]*i<=MAXN;j++)
26         {
27             vis[prime[j]*i]=true;
28             if(i%prime[j]==0)
29             {
30                 phi[prime[j]*i]=prime[j]*phi[i];
31                 break;
32             }
33             phi[prime[j]*i]=phi[prime[j]]*phi[i];
34         }
35     }
36 }
37 int main()
38 {
39     freopen("alien.in","r",stdin);
40     freopen("alien.out","w",stdout);
41     int T,i,m,p,q,n;
42     bool flag;
43     LL ans;
44     T=read();
45     getEular();
46     memset(f,0,sizeof(f));//f[i]代表i需要phi多少次才能化为1.(也就是等于能phi多少个2.)
47     f[1]=-1;
48     for(i=2;i<=MAXN;i++)f[i]=f[phi[i]]+1;
49     f[1]++;f[2]++;
50     while(T--)
51     {
52         m=read();ans=0;
53         flag=false;//判断奇数时要加一.
54         for(i=1;i<=m;i++)
55         {
56             p=read();q=read();
57             if(p==2)flag=true;
58             ans+=(LL)f[p]*q;
59         }
60         if(flag==false)ans++;
61         printf("%lld\n",ans);
62     }
63     fclose(stdin);
64     fclose(stdout);
65     return 0;
66 }

View Code

转载于:https://www.cnblogs.com/Var123/p/5296757.html

Bzoj 2749: [HAOI2012]外星人 欧拉函数,数论,线性筛相关推荐

  1. 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )

    整理的算法模板合集: ACM模板 ①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn​)) ②求[1,n]之间每个数的质因数 ...

  2. 【模板题】欧拉函数与线性筛求欧拉函数

    欧拉函数是什么? 定义:对于正整数nnn,欧拉函数是小于或等于nnn的正整数中与nnn互质的数的个数,记作φ(n)\varphi (n)φ(n). φ(1)=1\varphi (1)=1φ(1)=1. ...

  3. jzoj1164-求和【欧拉函数,数论】(筛欧拉函数模板)

    正题 大意 给出一个nnn,求1∼n" role="presentation" style="position: relative;">1∼n1 ...

  4. 素数筛法(传统普通、朴素筛法、埃式筛法、欧拉筛法(线性筛))

    素数筛法(普通.朴素筛法.埃式筛法.欧拉筛法) 1.题目 2.分析 3.代码 传统普通 朴素筛法 朴素筛法(6.14) 埃式筛法 埃式筛法(6.14) 欧拉筛法(线性筛) 欧拉筛法(线性筛 6.14) ...

  5. P2158,jzoj1709-仪仗队【欧拉函数,数论】

    正题 评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P2158 大意 有n∗nn∗nn*n个点,求从(1,1)(1,1)(1 ...

  6. Euler:欧拉函数&素数筛

    一.欧拉函数 欧拉函数是小于x的整数中与x互质的数的个数,一般用φ(x)表示. 通式:   其中p1, p2--pn为x的所有质因数,x是不为0的整数. 比如x=12,拆成质因数为12=2*2*3, ...

  7. AcWing 874. 筛法求欧拉函数(线性筛法求欧拉函数模板)

    给定一个正整数 n,求 1∼n 中每个数的欧拉函数之和. 输入格式 共一行,包含一个整数 n. 输出格式 共一行,包含一个整数,表示 1∼n 中每个数的欧拉函数之和. 数据范围 1≤n≤10^6 输入 ...

  8. 欧拉筛法(线性筛)的学习理解

    前言 在刚接触编程语言时,对于寻找素数,第一时间想到的便是二重循环暴力查找,其复杂度O(n^2),通过循环中只判断到根号n可以优化一些,不过复杂度也达不到预期.在数论的学习中,我学到了埃氏筛法,O(n ...

  9. BZOJ 2190: [SDOI2008]仪仗队( 欧拉函数 )

    假设C君为(0, 0), 则右上方为(n - 1, n - 1). 一个点(x, y) 能被看到的前提是gcd(x, y) = 1, 所以 answer = ∑ phi(i) * 2 + 2 - 1 ...

最新文章

  1. 感受hook里useEffect的执行顺序,hook倒计时
  2. QQ窗口的控制,同步异步打开360网盘,控制360网盘窗口的移动
  3. 充满想象力的 JavaScript 物理和重力实验
  4. Linux环境变量的设置和查看
  5. 牛客网--2019校招--丰收
  6. python—range() 函数—步长为正,左闭右开;步长为负,左开右闭
  7. 毕业论文自动去重软件,内附软件
  8. ios 录音,播放 tips
  9. ZOJ:1003 Crashing Balloon(DFS)
  10. 计算机模拟CS,CS跳跃模拟器电脑版_CS跳跃模拟器手游电脑版_游戏堡
  11. DirextX7。0 SDK 在VC 6.0 环境中使用的注意事项
  12. 移动前端手机输入法自带emoji表情字符处理
  13. spring之aop(前置通知,后置通知,环绕通知,过滤通知,异常通知)
  14. Linux 中CPU占用过高问题
  15. 准备好收集 BreederDAO 徽章了吗?
  16. Java 中的 getResource 方法
  17. PyTorch 简介
  18. Shader学习23——描边+辉光
  19. Windows Server 2022 发布(正式版下载)
  20. 异地工作比例高 最受IT人欢迎的十大工作城市

热门文章

  1. C++实现直接插入排序
  2. Android 自定义Adapter以实现自定义填充ListView的Item
  3. Pytorch自定义Dataset和DataLoader去除不存在和空的数据
  4. Java并发编程—线程间协作方式wait()、notify()、notifyAll()和Condition
  5. Java数据结构—基本数据类型
  6. 快速排序以及基于快排思想的找前k个最大数
  7. Servlet的学习(四)
  8. 数据处理程序的一点经验
  9. [RN] React Native 实现 类似京东 的 沉浸式状态栏和搜索栏
  10. P2370 yyy2015c01的U盘(二分+背包)