题目描述

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

在这题中,你们需要计算的是一些正整数在偏序关系“整除”下的哈斯图的边数。用大白话讲,在偏序关系“整除”下的哈斯图,就是把一个个正整数看成一个个图的节点,某些节点之间有边。连边的规则是这样的:对于任意两个正整数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)。这些弧线可以相互交叉但不能触及任何非其端点的顶点。带有标注的顶点的这种图唯一确定这个集合的偏序。

解题思路:

比赛的时候看到这道题的时候,我想 卧槽,离散数学的东西哎,我之前没学过,先放放吧。然后到比赛结束也没咋碰这题。

我觉得有些时候,我还是不怎么静下心来分析问题,因为只有分析,你才能找到解决问题的方法。

我在网上看了一下整除的高斯图该怎么画,然后我就按照那样画了画

我们以1,2,3,4,5,6,7,8,9,10为例,我们能得到满足b%a==0,并且不存在一个正整数c(a<c<b),使得条件b%c==0和c%a==0同时成立的边有

1--2  2--4 3--6 4--8 5--10

1--3 2--6 3--9

1--5 2--10

1--7

我们能从中找到一个规律就是 如果a,b 满足b%a==0且不存在正整数c使得 b%c==0&&c%a==0的话,b/a是一个素数,

从上面的这些关系中我们就知道

1--2  2--4 3--6 4--8 5--10 //2

1--3 2--6 3--9//3

1--5 2--10//5

1--7//7

在1到10中,以2为乘积素数的边有5条,以3为乘积的边有3条,以5为乘积的边有2条,以7为乘积的边为1条,这些边,我们可以拿10/素数就能得到。如果我们是从1出发的话,那很好算,只需要拿相应的素数除一下就是个数了,然后我们求和一下。但是如果不是从1出发的尼,比如是从4到10那么对于每一个素数,留下来的边还有

4--8 5--10//2

//3

//5

//7

然而我们知道以2为乘积的边有5条的,留下了2条符合题意的,那么我们就可以知道当你边数大于等于下边界的时候,我们就可以拿这个边数减去(l-1)个 然后累加求和就行了。

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxn=1e6+10;
int n,num[maxn],cnt,vis[maxn],l,r;
void find(){cnt=0;memset(vis,1,sizeof(vis));vis[1]=0;long long i,j;for(i=2;i<maxn;i++){if(vis[i]){num[cnt++]=i;}for(j=0;j<cnt&&num[j]*i<maxn;j++){vis[num[j]*i]=0;}    }
}
int main(){int i,j;find();while(scanf("%d%d",&l,&r)!=EOF){int ans=0;for(i=0;i<cnt;i++){int k=r/num[i];if(k>=l) ans+=(k-l+1);else break;}printf("%d\n",ans);}return 0;
}

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

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

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

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

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

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

    点击打开链接 解析: 这里其实就是每一个组合(L,R) R=L*k (k是一个质数),所以我们只要找到i*k<R的这个最大的k,k在素数表的下标就是他的答案了 这道题你遍历[L,R]区间即使用了 ...

  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年长沙理工大学第十三届程序设计竞赛 D-zzq的离散数学

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

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

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

最新文章

  1. python中bytearray和java中byte[]的区别_Python经典面试题:说说Python中xrange和range的区别?...
  2. Apache Dubbo 2.7.7 发布!升级 fastjson 等依赖!
  3. HashMap的存储过程
  4. 《犯罪心理学》读书笔记(part3)--影响犯罪心理形成发展的外部因素
  5. Android studio导入项目提示The same input jar [*.jar] is specified twice
  6. 【最短路】【Dijkstra】【图论】最小花费(jzoj 2125)
  7. static变量的作用(转)
  8. C++ ---------- map的使用
  9. requestparam注解_源码剖析@ApiImplicitParam对@RequestParam的required属性的侵入性
  10. 【大数据之路-阿里巴巴大数据实践】第一篇 数据技术篇
  11. 基于自抗扰控制的压力环控制算法研究
  12. 自变量/解释变量/因变量/响应变量/协变量等变量相关概念探析
  13. 如何进行 360 评估
  14. 对于2019全国高速公路视频联网工作实施方案的理解:视频上云网关与省级视频云平台
  15. mysql简单数据库定期备份
  16. 推荐 3 个非常好用的谷歌插件
  17. 什么是自动化测试框架?这就是自动化测试框架。
  18. 学习记录:RGBA格式数据加边框
  19. UltraEdit 下载|UltraEdit破解版下载|UltraEdit 注册码
  20. 计算机网络中什么叫总衰耗_计算机网络中争用期怎么算?

热门文章

  1. argc参数和argv参数简述
  2. bootstrap之navbar样式
  3. SwiftUI iOS 精品工具条组件之 05 浮雕效果滚动工具条(教程含源码)
  4. mysql 怎么将0女1男_MySQL自定义函数(0显示为女1显示为男
  5. xtrabackup备份mysql_xtrabackup备份和恢复MySQL
  6. [SPFA负环]虚空之遗
  7. java keycode列表_event.keyCode对照表
  8. 循环神经网络 递归神经网络_CNTK-递归神经网络
  9. C语言:如何让printf输出更加美化(用游戏英雄属性作例子)
  10. Ubuntu16.04更新源