题意 (Codeforces 546D)

给定一个数x=a!b!" role="presentation">x=a!b!x=a!b!的形式,问其中有几个质因数。

分析

数据规模略大,故先作预处理。预处理的时候运用了前缀和和记忆化搜索的思想。

之后就比较简单了。

代码

  1. #include <bits/stdc++.h>
  2. #define MP make_pair
  3. #define PB push_back
  4. #define fi first
  5. #define se second
  6. #define ZERO(x) memset((x), 0, sizeof(x))
  7. #define ALL(x) (x).begin(),(x).end()
  8. #define rep(i, a, b) for (int i = (a); i <= (b); ++i)
  9. #define per(i, a, b) for (int i = (a); i >= (b); --i)
  10. #define QUICKIO \
  11. ios::sync_with_stdio(false); \
  12. cin.tie(0); \
  13. cout.tie(0);
  14. using namespace std;
  15. using ll = long long;
  16. using ull = unsigned long long;
  17. using pi = pair<int,int>;
  18. const int MAXN=5000000;
  19. bool isPrime[MAXN+5];
  20. ll cnt[MAXN+5];
  21. ll getCnt(int x)
  22. {
  23. if(cnt[x]!=-1) return cnt[x];
  24. else
  25. {
  26. if(isPrime[x]) return cnt[x]=1;
  27. for(int i=2;i*i<=x;++i)
  28. {
  29. if(isPrime[i] && x%i==0) return cnt[x]=getCnt(x/i)+1;
  30. }
  31. }
  32. }
  33. ll sum[MAXN+5];
  34. int main()
  35. {
  36. QUICKIO
  37. memset(isPrime,true,sizeof(isPrime));
  38. ZERO(sum);
  39. isPrime[0]=isPrime[1]=false;
  40. rep(i,2,MAXN)
  41. {
  42. if(isPrime[i])
  43. {
  44. for(int j=i*2;j<=MAXN;j+=i)
  45. isPrime[j]=false;
  46. }
  47. }
  48. memset(cnt,-1,sizeof(cnt));
  49. cnt[1]=0;
  50. rep(i,1,MAXN)
  51. {
  52. sum[i]=sum[i-1]+getCnt(i);
  53. //cout<<sum[i]<<endl;
  54. }
  55. //rep(i,1,100) cout<<sum[i]<<" "; cout<<endl;
  56. int t;
  57. scanf("%d",&t);
  58. rep(i,1,t)
  59. {
  60. int a,b;
  61. scanf("%d%d",&a,&b);
  62. printf("%lld\n",sum[a]-sum[b]);
  63. //cout<<" "<<a<<" "<<sum[a]<<" "<<b<<" "<<sum[b]<<endl;
  64. }
  65. //rep(i,1,100) cout<<sum[i]<<" "; cout<<endl;
  66. return 0;
  67. }

「日常训练」 Soldier and Number Game (CFR304D2D)的更多相关文章

  1. 「日常训练」 Soldier and Traveling (CFR304D2E)

    题意 (CodeForces 546E) 对一个无向图,给出图的情况与各个节点的人数/目标人数.每个节点的人只可以待在自己的城市或走到与他相邻的节点. 问最后是否有解,输出一可行解(我以为是必须和答案 ...

  2. 「日常训练」 Soldier and Cards (CFR304D2C)

    题意 (Codeforces 546C) 按照指定的规则打牌,问谁胜或无穷尽. 分析 又是一条模拟,用set+queue(这里手写了)处理即可.注意到两种局势"1 234"和&qu ...

  3. 「日常训练」Soldier and Badges (CFR304D2B)

    题意 (Codeforces 546B) 问对一个序列最少需要增减几个1能使其彼此不同. 分析 模拟处理.需要注意的是,尽管题目中说了an<=3000,问题是,如果一群a全是3000呢(滑稽), ...

  4. 「日常训练」ZgukistringZ(Codeforces Round #307 Div. 2 B)

    题意与分析(CodeForces 551B) 这他妈哪里是日常训练,这是日常弟中弟. 题意是这样的,给出一个字符串A,再给出两个字符串B,C,求A中任意量字符交换后(不限制次数)能够得到的使B,C作为 ...

  5. 「日常训练」 Fire!(UVA-11624)

    与其说是训练不如说是重温.重新写了Java版本的代码. import java.util.*; import java.math.*; import java.io.BufferedInputStre ...

  6. 「日常训练」COMMON 约数研究(HYSBZ-1968)

    题意与分析 感谢https://www.cnblogs.com/Leohh/p/7512960.html的题解.这题话说原来不在我的训练范围,正好有个同学问我,我就拿来做做.数学果然不是我擅长的啊,这 ...

  7. 「日常训练」 Mike and Fun (CFR305D2B)

    题意(CodeForces 548B) 每次对01矩阵中的一位取反,问每次操作后,单列中最长连续1的长度. 分析 非常非常简单,但是我当时训练的时候WA了四次...无力吐槽了,人间 不值得.jpg 代 ...

  8. 「日常训练」Common Subexpression Elimination(UVa-12219)

    今天做的题目就是抱佛脚2333 懂的都懂. 这条题目干了好几天,最后还是参考别人的代码敲出来了,但是自己独立思考了两天多,还是有收获的. 思路分析 做这条题我是先按照之前的那条题目(The SetSt ...

  9. 「日常训练」Magic Stones(CodeForces-1110E)

    题意 给定两个数组c和t,可以对c数组中的任何元素变换\(c_i\)​成\(c_{i+1}+c_{i-1}-c_i\)​,问c数组在若干次变换后能否变换成t数组. 分析 这种魔法题目我是同样的没做过. ...

随机推荐

  1. 【转】Android总结之drawable(hdpi,mdpi,ldpi)文件夹的使用

    做Android有段时间了,但是好多细节还没有深入理解,关于Android中drawable文件夹的使用理解的就不是很深入. Android为开发者提供了两种解决适配问题的方法,第一种方式是使用dip ...

  2. ZOJ 1610 Count the Colors【题意+线段树区间更新&&单点查询】

    任意门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1610 Count the Colors Time Limit: 2 ...

  3. PHP设计模式——装饰器模式

    <?php /** * 装饰器模式 * 如果已有对象的部分内容或功能发生变化,但是不需要修改原始对象的结构,应使用装饰器模式 * * 为了在不修改对象结构的前提下对现有对象的内容或功能稍加修改, ...

  4. Android学习笔记_69_android 支付宝之网页支付和快捷支付

    参考资料: https://b.alipay.com/order/productDetail.htm?productId=2013080604609654 https://b.alipay.com/o ...

  5. java 注解annotation的使用,以及反射如何获取注解

     一.注解基本知识 1.元注解 元注解是指注解的注解.包括  @Retention @Target @Document @Inherited四种. 1. Annotation型定义为@interfac ...

  6. Storm 中drpc调用

    package storm.starter; import backtype.storm.Config; import backtype.storm.LocalCluster; import back ...

  7. EntityFramework Code-First-------领域类配置之DataAnnotations

    EF Code-First提供了一个可以用在领域类或其属性上的DataAnnotation特性集合,DataAnnotation特性会覆盖默认的EF约定. DataAnnotation存在于两个命名空 ...

  8. 在Azure上部署Sqlserver网络访问不了的问题

    最近在部署Azure虚拟机的时候,一直访问不了网络数据库,一搜资料才知道,Azure默认是不打开入网规则的,需要手动设置. 在 Windows 防火墙中为数据库引擎的默认实例打开 TCP 端口 在“开 ...

  9. HTML表格和表单

    <table>格式: 注意:1. 合并单元格:COLSPAN(跨列)ROWSPAN(跨行) 2.cellspacing属性定义单元格之间的间距(以像素为单位). cellpadding属性 ...

  10. ETO的公开赛T5《猎杀蓝色空间号》题解

    这道题别看题面这么长,其实题意很简单 就是让你求从起点开始的最长合法区间 合法的要求有两个:兜圈子和直飞 且这两个条件相互独立 (也就是说兜圈子的末尾不会对下面可能出现的直飞造成影响) 举个例子: 1 ...