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 ...
随机推荐
- 将表单数据转换为json代码分享
<body> <form action="#" method="post" id="form1"> <inpu ...
- MHA高可用及读写分离
一.MHA简介 二.工作流程 三.MHA架构图 四.MHA工具介绍 五.基于GTID的主从复制 六.部署MHA 七.配置VIP漂移 八.配置binlog-server 九.MySQL中间件Atlas
- redis的配置文件解释
redis的守护进行 守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程.它是一个生存期较长的进程,通常独立 于控制终端并且周期 ...
- rabbitmq 配置
1, 安装 apt-get install rabbitmq-server -y 2, 打开管理页面 sudo rabbitmq-plugins enable rabbitmq_management ...
- phonegap-plugin-contentsync
一.API 1.ContentSync.sync(options) options.src : 字符串类型 (必选项)远程托管内容的URL.更新一个生产环境下的APP,常使用HTTPS option ...
- DOSD用scratch的方式训练通用目标检测,性能很高
推荐一篇今年ICCV上基于DenseNet的general object detection的工作.这是目前已知的第一篇在完全脱离ImageNet pre-train模型的情况下使用deep mode ...
- BZOJ2040[2009国家集训队]拯救Protoss的故乡——模拟费用流+线段树+树链剖分
题目描述 在星历2012年,星灵英雄Zeratul预测到他所在的Aiur行星在M天后会发生持续性暴雨灾害,尤其是他们的首都.而Zeratul作为星灵族的英雄,当然是要尽自己最大的努力帮助星灵族渡过这场 ...
- Codeforces Round #459 Div. 1
C:显然可以设f[i][S]为当前考虑到第i位,[i,i+k)的状态为S的最小能量消耗,这样直接dp是O(nC(k,x))的.考虑矩阵快速幂,构造min+转移矩阵即可,每次转移到下一个特殊点然后暴力处 ...
- PHP——base64的图片转为文件图片
前言 网上很多,真的是有毒吧,一个那么简单至于写的乱七八糟的嘛,醉了. 代码 具体都写注释中了,不懂的可以评论或者私信我 public function upload() { //接收前台的值 $ba ...
- Mysql partition by
一,看原表 select * from `user`; 二,查询同组年级最大的 select username ,SUBSTRING_INDEX( GROUP_CONCAT(age order by ...