USACO 2 1 順序的分數

2021-07-11 01:57:59 字數 3482 閱讀 5981

description

輸入乙個自然數n  

請寫乙個程式來增序輸出分母小於等於n的最簡真分數 

input

單獨的一行 乙個自然數n(1..160)

output

每個分數單獨佔一行 

最後一行有回車 

sample input

5

sample output

0/1 

1/5 

1/4 

1/3 

2/5 

1/2 

3/5 

2/3 

3/4 

4/5 

1/1

解題思路:

先讀入n,用i

從2到n

迴圈,用j從

1到i-1迴圈,如果i和

j是互質關係,就把它儲存進陣列,然後對儲存進去的分數進行排序,最後按要求輸出即可。

程式:
var
a:array[0..10000,1..2] of longint;
n:longint;

procedure init;
var

f:array[1..200]of boolean;

i,j:longint;

begin

fillchar(f,sizeof(f),true);

readln(n);

for i:=2 to n do

if f[i] then

begin

j:=i*2;

while j<=n do

begin

f[j]:=false;

j:=j+i;

end;

end;

end;

procedure qsort(l,r:longint);
var

i,j:longint;

k:real;

begin

if l>=r then exit;

i:=l;

j:=r;

k:=a[(i+j) div 2,1]/a[(i+j) div 2,2];

repeat

while a[i,1]/a[i,2]

while a[j,1]/a[j,2]>k do dec(j);

if i<=j then

begin

a[0]:=a[i];a[i]:=a[j];a[j]:=a[0];

inc(i);dec(j);

end;

until i>j;

qsort(i,r);

qsort(l,j);

end;

procedure pai(x:longint);
var

i,j,k:longint;

begin

for i:=1 to x do

begin

k:=0;

for j:=1 to x-1 do

if a[j,1]/a[j,2]>a[j+1,1]/a[j+1,2] then

begin

a[0]:=a[j];a[j]:=a[j+1];a[j+1]:=a[0];

k:=1;

end;

if k=0 then exit;

end;

end;

function pd(x,y:longint):boolean;
var

i,z:longint;

begin

if x>y then z:=x

else z:=y;

for i:=2 to z do

if (x mod i=0)and(y mod i=0) then exit(false);

exit(true);

end;

procedure main;
var

i,j,ans:longint;

begin

ans:=0;

writeln('0/1');

for i:=2 to n do

for j:=1 to i-1 do

if (pd(i,j)) or (j=1) then

begin

inc(ans);

a[ans,1]:=j;

a[ans,2]:=i;

end;

pai(ans);

for i:=1 to ans do

writeln(a[i,1],'/',a[i,2]);

writeln('1/1');

end;

begin
init;
main;
end.

USACO2 1 解題報告

usaco2.1主要內容是圖論。其中有幾道題是要用深搜做的。而另外幾道題則是利用模擬的方法來完成簡單圖論。總體來說難度還是比較小的,算是最基礎的演算法吧。uasco 題解思路 可以列舉分子和分母,然後判斷他們的最小公約數是不是1 1 其實就是判斷是否互質 如果是的話就將這個分數加入到結構體裡面,儲存...

USACO 2 1 健康的好斯坦奶牛 DFS

description 農民john以擁有世界上最健康的奶牛為驕傲。他知道每種飼料中所包含的的牛所需的最低的維他命量是多少。請你幫助農夫餵養他的牛,以保持他們的健康,使餵給牛的飼料的種數最少。給出牛所需的最低的維他命,輸出餵給牛需要哪些種類的飼料,且所需的種類數最少。input 第1行 乙個整數v ...

USACO 2 1 健康的好斯坦奶牛 DFS

description 農民john以擁有世界上最健康的奶牛為驕傲。他知道每種飼料中所包含的的牛所需的最低的維他命量是多少。請你幫助農夫餵養他的牛,以保持他們的健康,使餵給牛的飼料的種數最少。給出牛所需的最低的維他命,輸出餵給牛需要哪些種類的飼料,且所需的種類數最少。input 第1行 乙個整數v ...