洛谷 P2118 比例簡化

2022-08-01 11:00:10 字數 965 閱讀 9401

在社交**上,經常會看到針對某乙個觀點同意與否的民意調查以及結果。例如,對某一觀點表示支援的有1498人,反對的有 902人,那麼贊同與反對的比例可以簡單的記為1498:902。

不過,如果把調查結果就以這種方式呈現出來,大多數人肯定不會滿意。因為這個比例的數值太大,難以一眼看出它們的關係。對於上面這個例子,如果把比例記為5:3,雖然與真實結果有一定的誤差,但依然能夠較為準確地反映調查結果,同時也顯得比較直觀。

現給出支援人數a,反對人數b,以及乙個上限l,請你將a比b化簡為a』比b』,要求在a』和b』均不大於l且a』和b』互質(兩個整數的最大公約數是1)的前提下,a』/b』≥ a/b且a』/b』- a/b的值盡可能小。

共一行,包含三個整數a,b,l每兩個整數之間用乙個空格隔開,分別表示支援人數、反對人數以及上限。

共一行,包含兩個整數a』,b』,中間用乙個空格隔開,表示化簡後的比例。

1498 902 10

5 3

對於100%的資料,1 ≤ a ≤ 1,000,000,1 ≤ b ≤ 1,000,000,1 ≤ l ≤ 100,a/b ≤ l1≤a≤1,000,000,1≤b≤1,000,000,1≤l≤100,a/b≤l。

這道題的l範圍是很有良心的,l小於等於100,可以直接列舉分子和分母。可以看出分子分母的列舉範圍都是1到l,之後可以寫乙個最大公約數,判斷分子分母的最大公約數是否為1。然後到了本題的第乙個坑:分子分母的比值要大於a和b的比值。可以將這個式子寫成:現分子*b<=現分母*a。到了最後乙個條件了,使分子分母的比值要盡可能地接近a和b的比值,可以把所有符合上面兩個條件的分子分母在一起比較,選出最優解。

1 #include2

using

namespace

std;

3int

main()422

}23}24 cout<"

"<25return0;

26 }

洛谷 P2118 比例簡化

題目描述 在社交 上,經常會看到針對某乙個觀點同意與否的民意調查以及結果。例如,對某一觀點表示支援的有1498 人,反對的有 902人,那麼贊同與反對的比例可以簡單的記為1498 902。不過,如果把調查結果就以這種方式呈現出來,大多數人肯定不會滿意。因為這個比例的數值太大,難以一眼看出它們的關係。...

洛谷 P2118 比例簡化

在社交 上,經常會看到針對某乙個觀點同意與否的民意調查以及結果。例如,對某一觀點表示支援的有1498 人,反對的有 902人,那麼贊同與反對的比例可以簡單的記為1498 902。不過,如果把調查結果就以這種方式呈現出來,大多數人肯定不會滿意。因為這個比例的數值太大,難以一眼看出它們的關係。對於上面這...

洛谷P2118 比例簡化 暴力

在社交 上,經常會看到針對某乙個觀點同意與否的民意調查以及結果。例如,對某一觀點表示支援的有1498 人,反對的有 902人,那麼贊同與反對的比例可以簡單的記為1498 902。不過,如果把調查結果就以這種方式呈現出來,大多數人肯定不會滿意。因為這個比例的數值太大,難以一眼看出它們的關係。對於上面這...