Dzzq的離散數學教室解析

2021-12-30 01:42:04 字數 1520 閱讀 5813

離散數學中有種名叫「哈斯圖」的東西。

在這題中,你們需要計算的是一些正整數在偏序關係「整除」下的哈斯圖的邊數。用大白話講,在偏序關係「整除」下的哈斯圖,就是把乙個個正整數看成乙個個圖的節點,某些節點之間有邊。連邊的規則是這樣的:對於任意兩個正整數a和b(a

現在問題是,給你們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,中間由空格分開。每組資料輸出一行,包含乙個整數表示哈斯圖的邊數。示例11 4

4 10

1 103

211哈斯圖(英語hasse發音為/hs/,德語: /has/)、在數學分支序理論中,是用來表示有限偏序集的一種數學圖表,它是一種圖形形式的對偏序集的傳遞簡約。具體的說,對於偏序集合(s,≤),把s的每個元素表示為平面上的頂點,並繪製從x到y向上的線段或弧線,只要y覆蓋x(就是說,只要x < y並且沒有z使得x < z < y)。這些弧線可以相互交叉但不能觸及任何非其端點的頂點。帶有標註的頂點的這種圖唯一確定這個集合的偏序。

#include

#define inff 0x3f3f3f3f3f3f3f3fll

using namespace std;

struct node

};const int maxn=2e6+7;

long long sum[maxn],dp1[maxn],dp2[maxn];

long long a[maxn];

int n,k,t,cnt=0,prime[maxn];

bool vis[maxn];

void get_prime(){

memset(vis,0,sizeof(vis));

for(int i=2;ib/a:素數

因此可以列舉每個素數(b/a) 看滿足條件的個數;

example :(4-->10)

先考慮1--->10;

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

1--3 2--6 3--9 3 3 3-4+1

1--5 2--10 5 2

1--7 7 1

因此 segma(r/prime[i])

4-->10 的話,最後將小於4的情況剔除就好了最右側就是了;

*/int main (){

int l,r;

get_prime();

while(~scanf("%d %d",&l,&r)){

long long ans=0;

for(int i=0;i

離散數學 筆記

1.復合命題的真值只取決於各原子命題的真值,而與它們的內容 含義無關,與原子命題之間是否有關係無關。2.命題公式 1 重言式 2 矛盾式 3 可滿足式 1.重言式 給定一命題公式,若無論對分量作怎樣的指派,其對應的真值永為真,則稱該命題為重言式或永真式 2.給定一命題公式,若無論對分量作怎樣的指派,...

《離散數學》關係

為什麼要研究乙個關係的演算法?我總是在想這個 難道是現實世界關係的模型對於我們來說,都是數學中研究的關係 關係把世界連線為了乙個巨大的網 一,關係的定義以及性質 從數學的角度來說,關係是笛卡兒的子集,就是乙個二維表,還可以是乙個矩陣,乙個有向圖。關係有一些性質,自反 a,b有相同的父母 對稱 a,b...

離散數學 樹

本人是新人,對樹的概念還是不太清楚,故寫個學習概念的文章,來幫助自己學習樹這一資料結構。定義1.樹是沒有簡單迴路的連通無向圖。定理1.乙個無向圖是樹當且僅當在它的每對頂點間存在唯一簡單迴路。定義2.有根樹是指乙個頂點 指所有節點 作為根並且每條邊的方向都離開根的樹。關於孩子,父母與深度和高度什麼的,...