老曹的憂鬱

2021-07-14 11:17:07 字數 3195 閱讀 2106

題目描述:

我們的主角——老曹,現在十分憂鬱。原因是他在玩乙個困難的遊戲。

遊戲規則如下:

有(n+1)*n/2個圓盤,在平面上擺成了乙個變長為n個圓盤的等邊三角形。每個圓盤上標有乙個小寫字母(『a』_』z』),如下圖所示。

對於每個字母,當我們可以由標為這個字母的圓盤為頂點,構成等邊三角形時,我們稱這個字母為不和諧的。例如途中的a和c。

現在給你n和這個等邊三角形上的字母,要求哪些字母是不和諧的。

輸入資料:
第一行:乙個整數,n(1<=n<=12)

第二行:(n+1)*n/2個小寫字母

樣例輸入1:

3 aaaaaa

樣例輸入2:

3 abcdef

輸出資料:
第一行:乙個整數,n(1<=n<=12)

第二行:(n+1)*n/2個小寫字母

樣例輸出1:

a 樣例輸出2:

harmonious  

其實這道題很簡單……

以第乙個點為原點建立平面直角座標系,圓形半徑為1如圖:

每乙個點都可以算出下一層的兩個點的座標

紅線長度為1,藍線長度為2,綠線可以根據勾股定理算出。

在座標生成完後,列舉三個點,用勾股定理算出三條邊的距離,判斷即可。

要注意精度

var

i,j,k,n,m:longint;

x,y,z:real;

a:array[1.

.500,1.

.2] of real;

b:array[0.

.500] of char;

bz:array['a'..'z'] of

boolean;

c:char;

l:boolean;

begin

readln(n);

m:=((n+1)*n) div 2;

for i:=1

to m do

begin

read(b[i]);

end;

a[1,1]:=0;

a[1,2]:=0;

x:=sqrt(sqr(2)-sqr(1));

for i:=1

to n-1 do

begin

for j:=1

to i do

begin

inc(k);

a[k+i,2]:=a[k,2]-x;

a[k+i,1]:=a[k,1]-1;

a[k+i+1,2]:=a[k,2]-x;

a[k+i+1,1]:=a[k,1]+1;;

end;

end;

for i:=1

to m do

for j:=1

to m do

for k:=1

to m do

begin

if (i<>j) and (j<>k) and (i<>k) then

begin

if (i=42) and (j=33) and (k=34) then

begin

write;

end;

if a[i,1]=a[j,1] then

begin

x:=abs(a[i,2]-a[j,2]);

endelse

begin

if a[j,2]=a[i,2] then

begin

x:=abs(a[i,1]-a[j,1]);

endelse x:=sqrt(sqr(abs(a[i,1]-a[j,1]))+sqr(abs(a[i,2]-a[j,2])));

end;

if a[i,1]=a[k,1] then

begin

y:=abs(a[i,2]-a[k,2]);

endelse

begin

if a[k,2]=a[i,2] then

begin

y:=abs(a[i,1]-a[k,1]);

endelse y:=sqrt(abs(sqr(abs(a[i,1]-a[k,1]))+sqr(abs(a[i,2]-a[k,2]))));

end;

if a[j,1]=a[k,1] then

begin

z:=abs(a[j,2]-a[k,2]);

endelse

begin

if a[k,2]=a[j,2] then

begin

z:=abs(a[j,1]-a[k,1]);

endelse z:=sqrt(abs(sqr(abs(a[j,1]-a[k,1]))+sqr(abs(a[j,2]-a[k,2]))));

end;

x:=trunc((x-0.000000)*1000000);

y:=trunc((y-0.000000)*1000000);

z:=trunc((z-0.000000)*1000000);

if (x=y) and (y=z) then

begin

if (b[i]=b[j]) and (b[j]=b[k]) then

begin

bz[b[i]]:=true;

end;

end;

end;

end;

for c:='a' to

'z' do

begin

if bz[c] then

begin

write(c);

l:=true;

end;

end;

if l=false then

begin

writeln('harmonious');

end;

end.

老曹的憂鬱

description 我們的主角 老曹,現在十分憂鬱。原因是他在玩乙個困難的遊戲。遊戲規則如下 有 n 1 n 2個圓盤,在平面上擺成了乙個變長為n個圓盤的等邊三角形。每個圓盤上標有乙個小寫字母 a z 如下圖所示。對於每個字母,當我們可以由標為這個字母的圓盤為頂點,構成等邊三角形時,我們稱這個字...

1313 老曹騎士 TJ

老曹騎士 standard io time limits 1000 ms memory limits 65536 kb detailed limits description 我們的主角 老曹隕落於西洋棋棋盤,成為了一位老曹騎士,於是,他開始走 日 字型路線。在一張n n的棋盤上,有k只 的河蟹,騎...

平淡的憂鬱

憂鬱似乎是屬於貴族的氣質,對於疲於奔命的窮人來說,憂鬱就近乎等同於鬱悶了。我窮,但我沒有疲於奔命,我很慶幸自己有一許平淡的憂鬱。平淡的憂鬱,就像現在這種感覺,心情是輕鬆的,思維是理智的,可以平和地記下這段簡單的文字。挫折,失落。憂鬱不再平淡,心情變得糟糕,情緒變得失控,思維變得混亂,感覺自己就是乙個...