[题目链接]

https://www.lydsy.com/JudgeOnline/problem.php?id=2749

[算法]

首先 , 每次对一个数x进行操作 , 只会使该数减少一个2的因子

那么 , 我们只需考虑每个数可以分解为多少个2 :

设gi表示i可以分解为多少个2

当gi为质数时 : gi = gi-1

否则 , 若gi = ab , 则gi = g(a) + g(b)

线性筛预处理即可

时间复杂度 : O(N + TM)

[代码]

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int MAXP = 1e5 + ;
  4. typedef long long ll;
  5. typedef long double ld;
  6. typedef unsigned long long ull;
  7.  
  8. int tot;
  9. int p[MAXP] , q[MAXP] , f[MAXP] , prime[MAXP];
  10. ll g[MAXP];
  11.  
  12. template <typename T> inline void chkmin(T &x , T y) { x = min(x , y); }
  13. template <typename T> inline void chkmax(T &x , T y) { x = max(x , y); }
  14. template <typename T> inline void read(T &x)
  15. {
  16. T f = ; x = ;
  17. char c = getchar();
  18. for (; !isdigit(c); c = getchar()) if (c == '-') f = -f;
  19. for (; isdigit(c); c = getchar()) x = (x << ) + (x << ) + c - '';
  20. x *= f;
  21. }
  22.  
  23. int main()
  24. {
  25.  
  26. int T;
  27. g[] = ;
  28. for (int i = ; i < MAXP; i++)
  29. {
  30. if (!f[i])
  31. {
  32. f[i] = i;
  33. prime[++tot] = i;
  34. g[i] = g[i - ];
  35. }
  36. for (int j = ; j <= tot; j++)
  37. {
  38. int tmp = i * prime[j];
  39. if (tmp >= MAXP) break;
  40. f[tmp] = prime[j];
  41. g[tmp] = g[i] + g[prime[j]];
  42. if (prime[j] == f[i]) break;
  43. }
  44. }
  45. read(T);
  46. while (T--)
  47. {
  48. int n;
  49. read(n);
  50. ll ans = ;
  51. bool flg = false;
  52. for (int i = ; i <= n; i++)
  53. {
  54. read(p[i]);
  55. read(q[i]);
  56. flg |= (p[i] == );
  57. ans += 1ll * g[p[i]] * q[i];
  58. }
  59. if (!flg) ++ans;
  60. printf("%lld\n" , ans);
  61. }
  62.  
  63. return ;
  64. }

[HAOI 2012] 外星人的更多相关文章

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

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

  2. 大暴力——[HAOI]2012音量调节

    题目:[HAOI]2012音量调节 描述: 问题描述 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经做好了一个列表,里 ...

  3. HAOI 2012 高速公路

    https://www.luogu.org/problem/show?pid=2221 题目描述 Y901高速公路是一条重要的交通纽带,政府部门建设初期的投入以及使用期间的养护费用都不低,因此政府在这 ...

  4. [HAOI 2012]音量调节

    Description 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改 ...

  5. 【HAOI 2012】高速公路

    Problem Description \(Y901\) 高速公路是一条重要的交通纽带,政府部门建设初期的投入以及使用期间的养护费用都不低,因此政府在这条高速公路上设立了许多收费站. \(Y901\) ...

  6. 解题:HAOI 2012 道路

    题面 这题不开O2怎么过=.= 可能这种有关最短路的计数题做多了就有些感觉了...... 以每个点为基准跑出一张最短路图,然后对每个边$(u,v)$统计两个东西.一个$pre[u]$表示到达$u$这个 ...

  7. BZOJ 2750 HAOI 2012 Road 高速公路 最短路

    题意: 给出一个有向图,求每条边有多少次作为最短路上的边(任意的起始点). 范围:n <= 1500, m <= 5005 分析: 一个比较容易想到的思路:以每个点作为起点,做一次SPFA ...

  8. [HAOI 2012] Road

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2750 [算法] 考虑计算每个点对每条边的贡献 对于每个点首先运行SPFA或Dijks ...

  9. [HAOI 2012] 容易题

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2751 [算法] 考虑k = 0的情况 , 根据乘法原理 : Ans = (n * ( ...

随机推荐

  1. apollo 消息分发源代码分析

    1.MessageDispatch消息分发信息 public static final byte DATA_STRUCTURE_TYPE = CommandTypes.MESSAGE_DISPATCH ...

  2. C++风格的强制性类型转换

    显示类型转换 被称为强制类型转换(cast) C风格:(type_id) C++风格:static_cast, dynamic_cast, reinterpret_cast, const_cast 在 ...

  3. mysql flush详解

    http://www.cnblogs.com/ggjucheng/archive/2012/11/07/2758021.html   cnblogs - FLUSH TABLES WITH READ ...

  4. CrtmpServer getApplication注册流程

    最近在研究 CrtmpServer getApplication注册流程,以备查阅 图1. 加载动态库流程 图2配置application流程

  5. git clean

    使用git clean清除未加入版控的数据 作者:Level Up  发布日期:2012-12-21 10:48:10       笔者在使用版本控制软件时,不知为何常常会有些暂存的数据产生.像是下面 ...

  6. windows下搭建hadoopproject(一)

    这里是接着之前的一篇 <hadoop在windows下的环境搭建 >来的~~~ 一.安装文件准备 1:下载好hadoop-1.0.0.tar.gz, 下载地址是https://archiv ...

  7. UVa11234 表达式

    题意:题目意思是给出后缀表达式.能够通过栈来计算表达式的值,即转化为中缀表达式. 然后如果如今不用栈.而是用队列来操作.即每遇到一操作符时.进行两次pop和一次push.(这里注意,先pop出来的作为 ...

  8. mysql 中创建递归函数

    1.在navicat中创建递归函数 BEGIN ) DEFAULT ''; ) default ''; ) default ''; ) default rootId; ; WHILE rootId i ...

  9. 01-bilibilidemo配置

    github-ijkplayer(bilibili)->cd 桌面位置 git clone https://github.com/Bilibili/ijkplayer.git ijkplayer ...

  10. FeatureLayer.MODE_SNAPSHOT限制数量问题

    我在加载FeatureLayer的时候,采用MODE_SNAPSHOT模式,发现有的图层少了一些数据,改回MODE_ONDEMAND又正常. 究其原因,MODE_SNAPSHOT 是一次性将数据从服务 ...