Luogu P1648 看守
Luogu P1648 看守
题意简述
有n个d维的点,输出这些点两两之间曼哈顿距离中的最大值
数据范围
n<=1e6,d<=4
思路
暴力?时间复杂度O(\(n^2d\))
考虑这样的一个式子
\]
因为我们是求最大值,那么,我们把绝对值去掉似乎也无妨
对于每一个点,记录\(2^d\)个数,每一个二进制数就表示当这一维取正/负时的取值
例如
如果这个点的坐标为(1,2,3)那么000就表示 -1-2-3=-6 ,001就表示 -1-2+3=0
我们不难发现,当两个二进制数每一位恰好相反时,把这两个值加起来就表示一个“曼哈顿距离”(去掉了绝对值)
因为d非常小,所以我们可以对于每一个点枚举\(2^d\)个状态,然后对于每一类状态记录一个最大值
统计答案是把相反的两个加起来即可
代码
#include<bits/stdc++.h>
using namespace std;
const int sz=1e6+1;
int n,d;
int cnt,ans;
int a[sz][5];
int f[16][sz];
int main(){
scanf("%d%d",&n,&d);
for(int i=1;i<=n;i++) for(int j=1;j<=d;j++) scanf("%d",&a[i][j]);
cnt=1<<d;
for(int i=0;i<cnt;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=d;k++){
if(i&1<<(k-1)) f[i][j]+=a[j][k];
else f[i][j]-=a[j][k];
}
for(int i=1;i<cnt;i++){
int l=INT_MAX,r=INT_MIN;
for(int j=1;j<=n;j++){
l=min(l,f[i][j]);
r=max(r,f[i][j]);
}
ans=max(ans,r-l);
}
printf("%d",ans);
}
Luogu P1648 看守的更多相关文章
- 【题解】Luogu P1648 看守
原题传送门:P1648 看守 这题目让求得的是d维( d <=4 )空间中n个点( 2 <= N <= 1000000 )之间最大的哈曼顿距离 模拟,emm,能拿30分,不错 因为d ...
- 【洛谷】P1648 看守 (数学)
题目链接 直接暴力搞\(O(n^2)\)显然是布星滴. 试想,若是一维,最远距离就是最大值减最小值. 现在推广到二维,因为有绝对值的存在,所以有四种情况 \((x1+y1) - (x2+y2), (x ...
- P1648 看守
传送门 以二维的两个点\((x1,y1),(x2,y2)\)为例,那么他们之间的曼哈顿距离肯定为一下四个之一\((x1-x2)+(y1-y2)\),\((x2-x1)+(y1-y2)\),\((x1- ...
- Luogu 魔法学院杯-第二弹(萌新的第一法blog)
虽然有点久远 还是放一下吧. 传送门:https://www.luogu.org/contest/show?tid=754 第一题 沉迷游戏,伤感情 #include <queue> ...
- luogu p1268 树的重量——构造,真正考验编程能力
题目链接:http://www.luogu.org/problem/show?pid=1268#sub -------- 这道题费了我不少心思= =其实思路和标称毫无差别,但是由于不习惯ACM风格的题 ...
- [luogu P2170] 选学霸(并查集+dp)
题目传送门:https://www.luogu.org/problem/show?pid=2170 题目描述 老师想从N名学生中选M人当学霸,但有K对人实力相当,如果实力相当的人中,一部分被选上,另一 ...
- [luogu P2647] 最大收益(贪心+dp)
题目传送门:https://www.luogu.org/problem/show?pid=2647 题目描述 现在你面前有n个物品,编号分别为1,2,3,--,n.你可以在这当中任意选择任意多个物品. ...
- Luogu 考前模拟Round. 1
A.情书 题目:http://www.luogu.org/problem/show?pid=2264 赛中:sb题,直接暴力匹配就行了,注意一下读入和最后一句话的分句 赛后:卧槽 怎么只有40 B.小 ...
- [Swust OJ 402]--皇宫看守(树形dp)
题目链接:http://acm.swust.edu.cn/problem/402/ Time limit(ms): 5000 Memory limit(kb): 65535 Description ...
随机推荐
- .net WCF WF4.5 状态机、书签与持久化
想看源码请直接翻到最后,使用方式如下图 如果同时需要多个书签可以直接在需要的位置创建书签,会认为是同一个实例. 若需要实现的效果是同时需要好几个部门审核,那么只要在对应的位置同时创建多个书签即可. 编 ...
- Webbench、ab命令:做压力测试的工具和性能的监控工具
DDOS攻击:???DDOS概述:分布式拒绝服务(DDoS:Distributed Denial of Service)攻击,指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目 ...
- css横线中间放图片或者文字
效果图: 先贴代码 HTML: <div class="forshow middle"> <div class="flex"></ ...
- 配置SQLServer,允许远程连接
需要别人远程你的数据库,首先需要的是在一个局域网内,或者连接的是同一个路由器,接下来就是具体步骤: (一)首先是要检查SQLServer数据库服务器中是否允许远程链接.其具体操作为: (1)打开数据库 ...
- KafKa记录
- 安装 Tesserocr (填坑)
参考: https://www.imooc.com/article/45278?block_id=tuijian_wz
- James 3.1服务器的安装与搭建
参考:1. ububtu下基于docker安装配置Apache James 3.1.0: https://blog.csdn.net/bonwei/article/details/83061372 2 ...
- 莫烦scikit-learn学习自修第三天【通用训练模型】
1. 代码实战 #!/usr/bin/env python #!_*_ coding:UTF-8 _*_ import numpy as np from sklearn import datasets ...
- 关于 flask 实现数据库迁移以后 如何根据创建的模型类添加新的表?
在此之前 我们先说一下常规的flask运用第三方扩展来实现数据库的迁移的三个步骤以及每步的目的. 数据库的迁移的三个步骤:(cd 到run.py所在路径) python run.py db init ...
- web攻擊
一.dos攻擊 向服務器發送數量龐大的合法數據,讓服務器分不清是不是正常請求,導致服務器接收所有的請求.海量的數據請求會使得服務器停止服務和拒絕服務. 防禦:阿里云或其它資源服務器有專門web應用防火 ...