中山培训 2016.7.9
来源:互联网 发布:淘宝最受欢迎的产品 编辑:程序博客网 时间:2024/04/27 18:48
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
6
1 7
0 0
1 2
2 0
1 4
3 4
Sample Output
1
打暴力,对于每个点,都只有横竖两种情况,暴力就好。
type
arr=array[0..50000] of boolean;
var
b: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.9
- 中山培训第四题 2016.7.9
- 中山培训 2016.7.11
- 中山培训 2016.7.11
- 中山培训 2016.7.11
- 中山培训第一题 2016.7.7
- 中山培训第二题 2016.7.7
- 中山培训(三题)
- 中山培训第三题(未解决)
- 据中山电商培训相中山电商培训
- 2016.7总结 培训 培训+培训
- 出差中山
- 中山题解
- “百所中山爱心书屋”第9站将在东明县城关镇朱口小学举行
- “百所中山爱心书屋”第9站将在东明县城关镇朱口小学举行
- 泪洒中山
- 中山移动两日行
- 中山五桂山印象
- HDU 4778 Gems Fight!【博弈+DP】
- 【bzoj1823】[JSOI2010]满汉全席 2-sat
- python 调用数据库
- 算法 把二叉查找树转变成排序的双向链表
- HYSBZ 2243 树链剖分
- 中山培训 2016.7.9
- linux中断分层技术分析
- shell学习笔记
- 向文件中添加行
- lua脚本对utf8字符串过滤中文字符
- 保存文件
- 利用JQuery制作一个瀑布流
- JS回调函数全解析教程
- Android进阶----使用AES+RSA对http请求进行加密