中山培訓 2016 7 9

2021-07-14 18:50:53 字數 1643 閱讀 5168

description

為了監視他的n (1 <= n <= 50,000)頭奶牛,farmer john購買了新的監視系統。第i頭奶牛位置在(x_i,y_i),座標為整數,範圍0..1,000,000,000。任意兩頭奶牛的位置不同。 

fj的監視系統有三個攝像頭,每個攝像頭只能監視一條水平線或者垂直線上的所有奶牛。請計算如果fj安裝好這三個攝像頭,能否監視所有的n頭奶牛。也就是說,計算n頭奶牛的位置,是否可以被三條直線「覆蓋」,直線必須是水平線或垂直線。

input

第1行:乙個整數n。 

第2..n+1行:第i+1行包含空格隔開的整數x_i 和y_i,給定第i頭奶牛的位置。

output

第1行:如果使用三個攝像頭,能監視所有的n頭奶牛,請輸出1。否則,輸出0。  

sample input

61 7

0 01 2

2 01 4

3 4sample output

打暴力,對於每個點,都只有橫豎兩種情況,暴力就好。

type

arr=array[0..50000] of boolean;

varb:arr;

x,y:array[0..50000] of longint;

n,i:longint;

procedure dfs(d,x1,y1,num:longint;b:arr);

vari,t,s:longint;

c:arr;

begin

ifn+1=num then

begin

writeln(1);

halt;

end;

ifd>=4 then exit;

c:=b; t:=0; s:=num;

fori:=1 to n do

begin

if(x[i]=x1) and b[i] then

begin

b[i]:=false;

s:=s+1;

end;

if (b[i]=true) and (t=0) then t:=i;

end;

b[t]:=false;

s:=s+1;

dfs(d+1,x[t],y[t],s,b);

b[t]:=true;

b:=c;

c:=b; t:=0; s:=num;

fori:=1 to n do

begin

if(y[i]=y1) and b[i] then

begin

b[i]:=false;

s:=s+1;

end;

if(b[i]=true) and (t=0) then t:=i;

end;

s:=s+1;

b[t]:=false;

dfs(d+1,x[t],y[t],s,b);

b[t]:=true;

end;

begin

readln(n);

fori:=1 to n do

readln(x[i],y[i]);

fori:=2 to n do

b[i]:=true;

dfs(1,x[1],y[1],1,b);

writeln(0);

end.

中山培訓 2016 7 11

description 每個人都知道詹姆斯邦德,著名的007,但很少有人知道很多任務都不是他親自完成的,而是由他的堂弟們吉公尺邦德完成 他有很多堂弟 詹姆斯已經厭倦了把乙個個任務分配給乙個個吉公尺,他向你求助。每個月,詹姆斯都會收到一些任務,根據他以前執行任務的經驗,他計算出了每個吉公尺完成每個任務...

中山培訓第二題 2016 7 7

給你乙個長度為n的陣列,乙個長為k的滑動的窗體從最左移至最右端,你只能見到視窗的k個數,每次窗體向右移動一位,如下表 你的任務是找出視窗在各位置時的max value,min value.input 第1行n,k,第2行為長度為n的陣列 output 2行,第1行每個位置的min value,第2行...

1 17 1 28中山紀念中學培訓總結

這是我第一次來紀中培訓,在這個高手雲集的地方,我感受到了自己的渺小。比我優秀的人多了去了,這讓我意識到人外有人,天外有天,也激發了我奮鬥的動力。在一次次的全力以赴的比賽中,我收穫了新的知識和技巧,即使很疲勞,但這個過程是快樂的。這裡的訓練方式是我前所未見的 早上做比賽,下午講題,晚上改題。所以需要我...