BZOJ 1121: [POI2008]激光发射器SZK

来源:互联网 发布:excel2016数据记录单 编辑:程序博客网 时间:2024/06/05 11:07

1121: [POI2008]激光发射器SZK

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 878  Solved: 729
[Submit][Status][Discuss]

Description

多边形相邻边垂直,边长为整数,边平行坐标轴。要在多边形的点上放一些激光发射器和接收器。满足下列要求: 1发射器和接收器不能放置在同一点; 2发射器发出激光可以沿壁反射,最终到达一个接收器; 3发射器只能沿角平分线发射激光。求:最多可放置多少对发射器和接收器?点数4<=n<=100000

Input

第一行给出一个数字N,代表有多少个点. 下面N行,用来描述点的坐标.其值在[-1000000,1000000]

Output

最多可放置多少对发射器和接收器

Sample Input

10
1 1
3 1
3 -2
-3 -2
-3 0
-1 0
-1 -1
2 -1
2 0
1 0

Sample Output

5


看完题满脸不可做

看看代码长度 结论题??

想一想 难道答案是 n>>1

随手交一发。。。bi——


#include<cmath>#include<ctime>#include<cstdio>#include<cstring>#include<cstdlib>#include<complex>#include<iostream>#include<algorithm>#include<iomanip>#include<vector>#include<string>#include<bitset>#include<queue>#include<map>#include<set>using namespace std;typedef long long ll;inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}return x*f;}void print(int x){if(x<0)putchar('-'),x=-x;if(x>=10)print(x/10);putchar(x%10+'0');}int main(){int n=read();print(n>>1);puts("");return 0;}