Dzzq的离散数学教室1

链接:https://www.nowcoder.com/acm/contest/96/D
来源:牛客网

zzq的离散数学教室1
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

离散数学中有种名叫“哈斯图”的东西。

在这题中,你们需要计算的是一些正整数在偏序关系“整除”下的哈斯图的边数。用大白话讲,在偏序关系“整除”下的哈斯图,就是把一个个正整数看成一个个图的节点,某些节点之间有边。连边的规则是这样的:对于任意两个正整数a和b(a<b)来说,如果b%a==0,并且不存在一个正整数c(a<c<b),使得条件b%c==0和c%a==0同时成立,那么我们就在节点a和节点b之间连一条边。

现在问题是,给你们2个数L,R(1<=L,R<=1e6)。求由L,L+1,L+2...R这R-L+1个正整数在偏序关系“整除”下的哈斯图的边数。

比如L=1,R=4,节点的组合有(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)。组合(1,2),(1,3),(2,4)可以连边。(1,4)因为中间存在c=2,不符合连边条件。所以当L=1,R=4的时候,这个哈斯图有3条边。

输入描述:

多组输入,不超过1000组数据每组数据一行,包含2个正整数L和R,中间由空格分开。

输出描述:

每组数据输出一行,包含一个整数表示哈斯图的边数。
示例1

输入

1 4
4 10
1 10

输出

3
2
11

备注:

哈斯图(英语Hasse发音为/ˈhæsə/,德语: /ˈhasə/)、在数学分支序理论中,是用来表示有限偏序集的一种数学图表,它是一种图形形式的对偏序集的传递简约。具体的说,对于偏序集合(S,≤),把S的每个元素表示为平面上的顶点,并绘制从x到y向上的线段或弧线,只要y覆盖x(就是说,只要x < y并且没有z使得x < z < y)。这些弧线可以相互交叉但不能触及任何非其端点的顶点。带有标注的顶点的这种图唯一确定这个集合的偏序。

b=xc,c=ya;所以b=xya,要是不存在c,要么x=1,要么y=1,即xy是个素数,因为只有素数才满足乘积为本身只有一种情况,就是1和它本身。比如:(L=1,R=10)1,2,3,4,5,6,7,8,9,10中(先要素数打表:2,3,5,7,11,13……),分别取乘素数,最大使得ai(ai是序列的数)*一个素数<=R。10/2=5,则s=5;10/3=3,则s=5+3=8;10/5=2,则s=8+2=10;10/7=1;s=11;

 1 #include<cstdio>
 2 #include<string.h>
 3 #include<algorithm>
 4 #include<queue>
 5 using namespace std;
 6 #define ll long long
 7 int prime[1000005],x=0;
 8 bool is[1000005];
 9 void init()
10 {
11     memset(is,1,sizeof(is));
12     for(int i=2;i<1000005;i++)//i的上限不能太小
13     {
14         if(is[i])
15         {
16             prime[x++]=i;
17             for(int j=i+i;j<1000005;j+=i)
18                 is[j]=0;
19         }
20     }
21     x--;
22     //printf("%d\n",x);
23 }
24 int main()
25 {
26     init();
27     int L,R;
28     while(~scanf("%d%d",&L,&R))
29     {
30         ll ans=0;
31         for(int i=x;i>=0;i--)
32         {
33             int t=R/prime[i];
34             if(t-L>=0)ans+=t-L+1;
35         }
36         printf("%lld\n",ans);
37     }
38     return 0;
39 }

2018年长沙理工大学第十三届程序设计竞赛 Dzzq的离散数学教室1相关推荐

  1. 2018年长沙理工大学第十三届程序设计竞赛 D-zzq的离散数学

    链接: https://www.nowcoder.com/acm/contest/96/D 来源:牛客网 题目描述 离散数学中有种名叫"哈斯图"的东西. 在这题中,你们需要计算的是 ...

  2. 2018年长沙理工大学第十三届程序设计竞赛 - zzq的离散数学教室1

    题目链接 zzq的离散数学教室1 题意 离散数学中有种名叫"哈斯图"的东西. 在这题中,你们需要计算的是一些正整数在偏序关系"整除"下的哈斯图的边数.用大白话讲 ...

  3. 长沙理工大学第十三届程序设计竞赛--Dzzq的离散数学教室1

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 离散数学中有种名叫"哈斯图" ...

  4. 牛客 2018年长沙理工大学第十三届程序设计竞赛 G-逃离迷宫

    链接:https://www.nowcoder.com/acm/contest/96/G 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  5. 2018年长沙理工大学第十三届程序设计竞赛 G-逃离迷宫

    题目链接 题目描述: 给你一个n*m的图,地图上'.'代表可以走的地方,而'#'代表陷阱不能走, 'P'代表人物位置,'K'代表钥匙,'E'代表出口.人物一个,钥匙有多个, ('K'的数量<=5 ...

  6. 2018年长沙理工大学第十三届程序设计竞赛

    链接:https://www.nowcoder.com/acm/contest/96#question 持续更新ing,请多多关注~ A.LL 题目描述: "LL是什么?这都不知道的话,别说 ...

  7. 2018年长沙理工大学第十三届程序设计竞赛题解

    链接:https://www.nowcoder.com/acm/contest/96/A 来源:牛客网 "LL是什么?这都不知道的话,别说自己是程序猿啊!"   "lon ...

  8. 牛客网 2018年长沙理工大学第十三届程序设计竞赛 K zzq的离散数学教室2[网络流]

    题意:给一个有向无环图,求最大的点集,x不能到y,且y不能到x. 题解:首先可以知道的是这个是偏序集最大独立集,通过Dilworth定理可以知道是要求最小链划分(最小可交路径覆盖),我们通过网络流优化 ...

  9. 2018年长沙理工大学第十三届程序设计竞赛 D zzq的离散数学教室1

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 离散数学中有种名叫"哈斯图" ...

最新文章

  1. 【好资源】473页斯坦福数学基础:《应用线性代数》(附pdf和ppt下载)
  2. docker 使用挂载运行tomcat
  3. docker镜像指定安装源_Docker 安装与镜像
  4. 基于Kubernetes1.20.1版本开发调试环境搭建
  5. 【CCF】201709-2公共钥匙盒
  6. Maven依赖配置和依赖范围
  7. 前端组件化Polymer入门教程(7)——Local DOM
  8. cookie与session以及他们的常规用途——web开发必须熟知的知识
  9. Xib和StoryBoard的区别
  10. who I am ?
  11. Java 中override、overload、overwrite区别,以及与多态的关系
  12. 数据挖掘导论课后习题答案-第四章
  13. SparkMLlib之01-Spark机器学习库介绍
  14. 搞了三天终于成功跑起来GitHub上的vue-element-admin最新解决办法!(mac系统亲测有效)
  15. 2021年全球便携式电动车辆行业调研及趋势分析报告
  16. FusionCharts简单教程(一)---建立第一个FusionCharts图形
  17. FBI 网站被黑,泄露数据已在 Pastebin 公布
  18. 年度最扎心数据:年入 100 万,却还不起 5000 块的信用卡
  19. 请你说说进程、线程、纤程之间的区别?
  20. vue admin template 侧边栏及顶部栏演示字体样式修改

热门文章

  1. java 打开新页签_java – GWT打开页面在一个新的选项卡
  2. postgresql字符串转数字
  3. 手工删除Oracle 12C数据库实例
  4. install命令详解
  5. 互联网安全内容安全及防护
  6. [C语言编程练习][09]编写一个程序,提示用户输入名和姓,并执行以下操作
  7. 乘法逆元求法的一些总结
  8. 三款软件让你学会怎么识别手写文字内容
  9. 使用 canvas 居中裁剪图片
  10. android keycode 方向键,android KEYCODE列表