HDU 5626 Clarke and points 求平面最远哈曼顿距离
2016-02-16 13:50
441 查看
题意:根据题意给一个函数能得到一个点的数组,然后求所有点中最远的哈曼顿距离
思路:哈曼顿距离是|Xa-Xb|+|Ya-Yb|,这里看数据就知道不能裸跑,我们可以讨论绝对值内的正负,然后会出现四种情况,整理得到(Xa+Ya)-(Xb+Yb),(Xa-Ya)-(Xb-Yb),(-Xa+Ya)-(-Xb+Yb),(-Xa-Ya)-(-Xb-Yb)
(比赛的时候稍微算了一下,感觉nlogn能过,然后就T了QAQ
这里保存一下每个状态的最大最小就OK了
思路:哈曼顿距离是|Xa-Xb|+|Ya-Yb|,这里看数据就知道不能裸跑,我们可以讨论绝对值内的正负,然后会出现四种情况,整理得到(Xa+Ya)-(Xb+Yb),(Xa-Ya)-(Xb-Yb),(-Xa+Ya)-(-Xb+Yb),(-Xa-Ya)-(-Xb-Yb)
(比赛的时候稍微算了一下,感觉nlogn能过,然后就T了QAQ
这里保存一下每个状态的最大最小就OK了
[code]#include<map> #include<set> #include<queue> #include<stack> #include<math.h> #include<string> #include<vector> #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; typedef long long LL; #define maxn 1000005 #define f(x) (x*1.0) #define inf 0x7fffffff #define maxm maxn*maxn #define min(a,b) (a>b?b:a) #define max(a,b) (a>b?a:b) #define lowbit(x) (x&(-x)) #define cheak(i) printf("%d ",i) #define lson(x) (splay[x].son[0]) #define rson(x) (splay[x].son[1]) #define rfor(i,a,b) for(i=a;i<=b;++i) #define lfor(i,a,b) for(i=a;i>=b;--i) #define mem(a,b) memset(a,b,sizeof(a)) #define mec(a,b) memcpy(a,b,sizeof(b)) struct node { LL x,y; }A[maxn]; LL B[maxn]; long long seed; inline long long rand(long long l, long long r) { static long long mo=1e9+7, g=78125; return l+((seed*=g)%=mo)%(r-l+1); } int main() { int T,i; LL n; scanf("%d",&T); while(T--) { scanf("%lld%lld",&n,&seed); LL Min1=inf,Min2=inf,Min3=inf,Min4=inf,Max1=-inf,Max2=-inf,Max3=-inf,Max4=-inf; rfor(i,1,n) { A[i].x = rand(-1000000000, 1000000000), A[i].y = rand(-1000000000, 1000000000); Min1=min(Min1,A[i].x+A[i].y);Max1=max(Max1,A[i].x+A[i].y); Min2=min(Min2,A[i].x-A[i].y);Max2=max(Max2,A[i].x-A[i].y); Min3=min(Min3,-A[i].x+A[i].y);Max3=max(Max3,-A[i].x+A[i].y); Min4=min(Min4,-A[i].x-A[i].y);Max4=max(Max4,-A[i].x-A[i].y); //printf("%lld %lld\n",A[i].x,A[i].y); } LL ans=0; ans=max(ans,Max1-Min1); ans=max(ans,Max2-Min2); ans=max(ans,Max3-Min3); ans=max(ans,Max4-Min4); printf("%lld\n",ans); } return 0; }
相关文章推荐
- 《梦断代码》读后感(一)
- poj 2892 Tunnel Warfare(线段树)
- 挚爱 泰戈尔
- Windows下Git客户端和Github设置
- Mongodb aggregate timezone 问题
- C中的预编译宏定义
- 将eclipse代码导入到Android Studio
- monkeytalk 启动、关闭 android应用程序 解决方法
- 阿里鱼注册短信发送代码
- SQL中的cast和convert的用法和区别
- 关于java的几个名词
- UIBezierPath精讲
- 如何有效删除Redis中比较大的Hash Key
- 倒计时(团购)
- 根据地址获取经度纬度
- Eclipse开发工具的使用
- 真机IOS8.3以上的文件夹共享
- win7 windows server 2008R2下 https SSL证书安装的搭配(搭配https ssl本地测试环境)
- 错误:HttpServlet was not found on the Java
- JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)